DHT11 > Arduino > MD
Модератор: immortal
-
- Сообщения: 130
- Зарегистрирован: Пн окт 28, 2013 5:06 pm
- Откуда: Молдова
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: DHT11 > Arduino > MD
У Алисы по логам чисто, вообще никакого намёка на обращение к ней.
Я уже пробовал менять скорость обмена данными порта УСБ у Алисы и в скетчах, тоже не помогло.
Я пробовал вставить простую флешку в Алису и она её видит.
Значит Алиса видит УСБ.
Проблема в чемто другом.
Я уже пробовал менять скорость обмена данными порта УСБ у Алисы и в скетчах, тоже не помогло.
Я пробовал вставить простую флешку в Алису и она её видит.
Значит Алиса видит УСБ.
Проблема в чемто другом.
Server: Raspberry Pi 3 B+
OS: Rasbian
OS: Rasbian
-
- Сообщения: 130
- Зарегистрирован: Пн окт 28, 2013 5:06 pm
- Откуда: Молдова
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: DHT11 > Arduino > MD
Для Win32 Транспортом между Ардуиной и Алисой служит ArduinoGW, так может быть в Debian должен быть такойже транспорт и я его не поставил или не настроил.
Server: Raspberry Pi 3 B+
OS: Rasbian
OS: Rasbian
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: DHT11 > Arduino > MD
На самом деле подключение Arduino напрямую к системе это не то, чтобы плохо, но не очень удобно. Обычно контроллеры обращаются к системе по сети, используя какие-то шлюзы (тот же ethernet-shield). Тем не менее, где-то был на форуме аналог ArduinoGW на bash, но что-то не нашёл.annakin писал(а):Для Win32 Транспортом между Ардуиной и Алисой служит ArduinoGW, так может быть в Debian должен быть такойже транспорт и я его не поставил или не настроил.
Вот код, который по идее должен подойти (в блоке 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 -- информация, сотрудничество, услуги
-
- Сообщения: 130
- Зарегистрирован: Пн окт 28, 2013 5:06 pm
- Откуда: Молдова
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: DHT11 > Arduino > MD
Я так понимаю на будет его сразу надо поставить в автозагрузку и кинуть в /etc/init.d/
Server: Raspberry Pi 3 B+
OS: Rasbian
OS: Rasbian
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: DHT11 > Arduino > MD
Для начала проверить работу, а потом да, наверное.annakin писал(а):Я так понимаю на будет его сразу надо поставить в автозагрузку и кинуть в /etc/init.d/
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 130
- Зарегистрирован: Пн окт 28, 2013 5:06 pm
- Откуда: Молдова
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: DHT11 > Arduino > MD
Скрипт работает.
Вот что мне выдаёт скрипт:
На данные в Алисе не меняются.
Шас провёл тест напрямую решил через браузер скормить данные таким методом:
И ничего не меняется, как стояло значение 22.5 так и стоит, значит Алиса не принимает данные даже из браузера, я правельно понимаю ?

Вот что мне выдаёт скрипт:
Код: Выделить всё
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

Server: Raspberry Pi 3 B+
OS: Rasbian
OS: Rasbian
-
- Сообщения: 130
- Зарегистрирован: Пн окт 28, 2013 5:06 pm
- Откуда: Молдова
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: DHT11 > Arduino > MD
При прямом обращений через барузер все свойства данного сенсора обновляются кроме свойства temp.
Server: Raspberry Pi 3 B+
OS: Rasbian
OS: Rasbian
-
- Сообщения: 130
- Зарегистрирован: Пн окт 28, 2013 5:06 pm
- Откуда: Молдова
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: DHT11 > Arduino > MD
Пробовал прямое обращение к сенсору движения и его свойство status меняется при прямом обращении через барузер. А вот именно сенсор температуры и влажности не хочет.
В чем может быть проблема ?
В чем может быть проблема ?
Server: Raspberry Pi 3 B+
OS: Rasbian
OS: Rasbian
-
- Сообщения: 130
- Зарегистрирован: Пн окт 28, 2013 5:06 pm
- Откуда: Молдова
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: DHT11 > Arduino > MD
Всё разобрался, всё работает. Там надо было передавать не переменную temp=30 а t=30
Server: Raspberry Pi 3 B+
OS: Rasbian
OS: Rasbian
- mazahaka7sk
- Сообщения: 54
- Зарегистрирован: Сб фев 20, 2016 8:46 am
- Откуда: Усть-Каменогорс
- Благодарил (а): 8 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: DHT11 > Arduino > MD
У тебя заработала а я уже месяца 2 не могу настроить точнее понять как добавить правельный скетьч для работы потому что нехрена не работаетannakin писал(а):Всё разобрался, всё работает. Там надо было передавать не переменную temp=30 а t=30
вот мой скетч которым я сейчас пользуюсь
СпойлерПоказать
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();
}
}
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();
}
}
спасибо
CONNECT |Группа в VK| ЮТУБ КАНАЛ
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".