DHT11 > Arduino > MD

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: DHT11 > Arduino > MD

Сообщение annakin » Ср июл 01, 2015 3:57 pm

У Алисы по логам чисто, вообще никакого намёка на обращение к ней.
Я уже пробовал менять скорость обмена данными порта УСБ у Алисы и в скетчах, тоже не помогло.
Я пробовал вставить простую флешку в Алису и она её видит.
Значит Алиса видит УСБ.
Проблема в чемто другом.
Server: Raspberry Pi 3 B+
OS: Rasbian
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: DHT11 > Arduino > MD

Сообщение annakin » Ср июл 01, 2015 6:26 pm

Для Win32 Транспортом между Ардуиной и Алисой служит ArduinoGW, так может быть в Debian должен быть такойже транспорт и я его не поставил или не настроил.
Server: Raspberry Pi 3 B+
OS: Rasbian
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: DHT11 > Arduino > MD

Сообщение sergejey » Ср июл 01, 2015 8:51 pm

annakin писал(а):Для Win32 Транспортом между Ардуиной и Алисой служит ArduinoGW, так может быть в Debian должен быть такойже транспорт и я его не поставил или не настроил.
На самом деле подключение Arduino напрямую к системе это не то, чтобы плохо, но не очень удобно. Обычно контроллеры обращаются к системе по сети, используя какие-то шлюзы (тот же ethernet-shield). Тем не менее, где-то был на форуме аналог ArduinoGW на bash, но что-то не нашёл.

Вот код, который по идее должен подойти (в блоке settings надо заменить на свои данные):

Код: Выделить всё

#!/bin/bash

# settings
ARDUINO_PORT=/dev/ttyACM0
ARDUINO_PORT_SPEED=9600
LOCAL_BASE_URL="http://192.168.0.1"


ERROR_COUNTER=0
while : 
do


START_TIME="$(date +%s)"
# main cycle
stty -F $ARDUINO_PORT ispeed $ARDUINO_PORT_SPEED ospeed $ARDUINO_PORT_SPEED cs8 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

#---------------------------------------------------------------------------
while read LINE; do

echo $LINE

PASSED_TIME="$(($(date +%s)-START_TIME))"

# Processing incoming URLs from controller
REGEX='^GET (.+)$'
if [[ $LINE =~ $REGEX ]]
then
URL=$LOCAL_BASE_URL${BASH_REMATCH[1]}
URL=$LOCAL_BAST_URL
echo Getting URL
echo $URL
fi

done < $ARDUINO_PORT

let "ERROR_COUNTER=$ERROR_COUNTER+1"

echo "ERROR COUNTER: $ERROR_COUNTER"

done
#---------------------------------------------------------------------------
echo Cycle stopped. 

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: DHT11 > Arduino > MD

Сообщение annakin » Ср июл 01, 2015 9:04 pm

Я так понимаю на будет его сразу надо поставить в автозагрузку и кинуть в /etc/init.d/
Server: Raspberry Pi 3 B+
OS: Rasbian
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: DHT11 > Arduino > MD

Сообщение sergejey » Чт июл 02, 2015 11:20 am

annakin писал(а):Я так понимаю на будет его сразу надо поставить в автозагрузку и кинуть в /etc/init.d/
Для начала проверить работу, а потом да, наверное.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: DHT11 > Arduino > MD

Сообщение annakin » Чт июл 02, 2015 3:58 pm

Скрипт работает.
Вот что мне выдаёт скрипт:

Код: Выделить всё

GET /objects/?object=TempSensor01&op=m&m=tempChanged&temp=27.0
Getting URL
На данные в Алисе не меняются.
Шас провёл тест напрямую решил через браузер скормить данные таким методом:

Код: Выделить всё

http://192.168.0.100/objects/?object=TempSensor01&op=m&m=tempChanged&temp=25.00  
И ничего не меняется, как стояло значение 22.5 так и стоит, значит Алиса не принимает данные даже из браузера, я правельно понимаю ?
Изображение
Server: Raspberry Pi 3 B+
OS: Rasbian
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: DHT11 > Arduino > MD

Сообщение annakin » Чт июл 02, 2015 5:07 pm

При прямом обращений через барузер все свойства данного сенсора обновляются кроме свойства temp.
Server: Raspberry Pi 3 B+
OS: Rasbian
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: DHT11 > Arduino > MD

Сообщение annakin » Пт июл 03, 2015 11:50 am

Пробовал прямое обращение к сенсору движения и его свойство status меняется при прямом обращении через барузер. А вот именно сенсор температуры и влажности не хочет.
В чем может быть проблема ?
Server: Raspberry Pi 3 B+
OS: Rasbian
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: DHT11 > Arduino > MD

Сообщение annakin » Пт июл 03, 2015 1:19 pm

Всё разобрался, всё работает. Там надо было передавать не переменную temp=30 а t=30
Server: Raspberry Pi 3 B+
OS: Rasbian
Аватара пользователя
mazahaka7sk
Сообщения: 54
Зарегистрирован: Сб фев 20, 2016 8:46 am
Откуда: Усть-Каменогорс
Благодарил (а): 8 раз
Поблагодарили: 10 раз
Контактная информация:

Re: DHT11 > Arduino > MD

Сообщение mazahaka7sk » Пн окт 24, 2016 4:50 pm

annakin писал(а):Всё разобрался, всё работает. Там надо было передавать не переменную temp=30 а t=30
У тебя заработала а я уже месяца 2 не могу настроить точнее понять как добавить правельный скетьч для работы потому что нехрена не работает
вот мой скетч которым я сейчас пользуюсь
СпойлерПоказать
int cycle_counter=0;
char val = 0;
int old_SensorSpalnaD=0;
int old_SensorZalD=0;
int old_SensorKyxnaD=0;
int old_SensorKoridorD=0;
int old_SensorTyaletD=0;
int old_Sensorvodityalet=0;


unsigned int sensorValue = 0;
char buf[80];

// Функция отправки HTTP-запроса на сервер
void sendHTTPRequest() {
Serial.println(buf);
}


void setup()
{

pinMode(2, INPUT); // Датчик движение спальня 2 пин
old_SensorSpalnaD=digitalRead(2);

pinMode(3, INPUT); // Датчик движение зал 3 пин
old_SensorZalD=digitalRead(3);

pinMode(4, INPUT); // Датчик движение кухня 4 пин
old_SensorKyxnaD=digitalRead(4);

pinMode(5, INPUT); // Датчик движение коридор 5 пин
old_SensorKoridorD=digitalRead(5);

pinMode(6, INPUT); // Датчик движение туалет 6 пин
old_SensorTyaletD=digitalRead(6);

pinMode(7, OUTPUT); // реле света спальня 7 пин

pinMode(8, OUTPUT); // реле подсветки кухня 8 пин



pinMode(10, INPUT); // сенсор воды туалет 10 пин
old_Sensorvodityalet=digitalRead(10);



pinMode(12, OUTPUT); // реле 12пин

pinMode(13, OUTPUT); // реле 13 пин

Serial.begin(115200); // Скорость консольного порта 9600 (пригодится для отладки)
}

void loop()
{
{
if (Serial.available() > 0) {
val = Serial.read();
if (val=='B') digitalWrite(7,HIGH); // выключить свет
if (val=='V') digitalWrite(7,LOW); // включить свет
if (val=='Z') digitalWrite(8,HIGH); // выключить свет
if (val=='X') digitalWrite(8,LOW); // включить свет
if (val=='S') digitalWrite(12,HIGH); // выключить свет
if (val=='D') digitalWrite(12,LOW); // включить свет
if (val=='F') digitalWrite(13,HIGH); // выключить свет
if (val=='G') digitalWrite(13,LOW); // включить свет
}
}


int valid_sensor=0;
delay(1000); // задержка в 0.1 сек.
cycle_counter++;

if (cycle_counter>600) {
cycle_counter=0;
}

//движение спальня
Serial.println("G");
int current_SensorSpalnaD=digitalRead(2);
//Serial.println(current_SensorSpalnaD);
if (current_SensorSpalnaD!=(int)old_SensorSpalnaD) {
old_SensorSpalnaD=(int)current_SensorSpalnaD;
sprintf(buf, "GET /objects/?object=SensorSpalnaD&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_SensorSpalnaD);
sendHTTPRequest();
}

//GARAGE GATES SENSOR
Serial.println("H");
int current_SensorZalD=digitalRead(3);
//Serial.println(current_SensorZalD);
if (current_SensorZalD!=(int)old_SensorZalD) {
old_SensorZalD=(int)current_SensorZalD;
sprintf(buf, "GET /objects/?object=SensorZalD&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_SensorZalD);
sendHTTPRequest();
}

//GARAGE GATES SENSOR
Serial.println("L");
int current_SensorKyxnaD=digitalRead(4);
//Serial.println(current_SensorKyxnaD);
if (current_SensorKyxnaD!=(int)old_SensorKyxnaD) {
old_SensorKyxnaD=(int)current_SensorKyxnaD;
sprintf(buf, "GET /objects/?object=SensorKyxnaD&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_SensorKyxnaD);
sendHTTPRequest();
}

//GARAGE GATES SENSOR
Serial.println("N");
int current_SensorKoridorD=digitalRead(5);
//Serial.println(current_SensorKoridorD);
if (current_SensorKoridorD!=(int)old_SensorKoridorD) {
old_SensorKoridorD=(int)current_SensorKoridorD;
sprintf(buf, "GET /objects/?object=SensorKoridorD&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_SensorKoridorD);
sendHTTPRequest();
}

//GARAGE GATES SENSOR
Serial.println("O");
int current_SensorTyaletD=digitalRead(6);
//Serial.println(current_SensorTyaletD);
if (current_SensorTyaletD!=(int)old_SensorTyaletD) {
old_SensorTyaletD=(int)current_SensorTyaletD;
sprintf(buf, "GET /objects/?object=SensorTyaletD&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_SensorTyaletD);
sendHTTPRequest();

}


//GARAGE GATES SENSOR
Serial.println("K");
int current_Sensorvodityalet=digitalRead(10);
//Serial.println(current_Sensorvodityalet);
if (current_Sensorvodityalet!=(int)old_Sensorvodityalet) {
old_Sensorvodityalet=(int)current_Sensorvodityalet;
sprintf(buf, "GET /objects/?object=Sensorvodityalet&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_Sensorvodityalet);
sendHTTPRequest();
}



}
если понимаешь подскажи как добавить в этот скетч получения информации с датчика DHT11
спасибо
CONNECT |Группа в VK| ЮТУБ КАНАЛ
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
Ответить