Использование системы в различных ситуациях, вопросы программирования сценариев.
Модератор: immortal
-
mazahaka7sk
- Сообщения: 54
- Зарегистрирован: Сб фев 20, 2016 8:46 am
- Откуда: Усть-Каменогорс
-
Благодарил (а):
8 раз
-
Поблагодарили:
10 раз
-
Контактная информация:
Сообщение
mazahaka7sk » Вс авг 28, 2016 5:35 pm
всем привет не как не могу привязать датчики к ардуино все перерыл пробывал все коды не работают. точнее работают датчик света датчик протечки а все вместе привязать не могу.
у меня 3 датчика температуры DHT11
4 датчика протечки ну они работают
4 датчика движения
4 датчика огня
датчик воды датчик света и реле включения свету меня работало через этот скрипт а вот все остальное не получаеться привязать помогите
int cycle_counter=0;
int val = 0;
int old_garage=0;
int old_entry=0;
int old_movement_1=0;
int old_movement_2=0;
int rainSensePin=A2;
int old_button_1=0;
int old_button_2=0;
int sensorPin = A0;
unsigned int sensorValue = 0;
char buf[80];
// Функция отправки HTTP-запроса на сервер
void sendHTTPRequest() {
Serial.println(buf);
}
void setup()
{
pinMode(2, OUTPUT);
pinMode(4, INPUT); // Датчик гаражной двери на 7-ый пин
old_garage=digitalRead(4);
pinMode(5, INPUT); // Датчик въездных ворот на 8-ый пин
old_entry=digitalRead(5);
pinMode(0, INPUT); // Датчик движения 1
old_movement_1=digitalRead(0);
pinMode(rainSensePin, INPUT); // Датчик движения 2
rainSensePin=digitalRead(A2);
pinMode(8, INPUT); // Кнопка пульта 1
old_button_1=digitalRead(8);
pinMode(9, INPUT); // Кнопка пульта 2
old_button_2=digitalRead(9);
Serial.begin(115200); // Скорость консольного порта 115200 (пригодится для отладки)
}
void loop()
{
{
if (Serial.available() > 0) {
val = Serial.read();
if (val=='B') digitalWrite(2,HIGH); // выключить свет
if (val=='V') digitalWrite(2,LOW); // включить свет
}
}
int valid_sensor=0;
int rainSenseReading = analogRead(rainSensePin);
delay(1000); // задержка в 0.1 сек.
cycle_counter++;
if (cycle_counter>600) {
cycle_counter=0;
}
//GARAGE GATES SENSOR
Serial.println("G");
int current_garage=digitalRead(4);
//Serial.println(current_garage);
if (current_garage!=(int)old_garage) {
old_garage=(int)current_garage;
sprintf(buf, "GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_garage);
sendHTTPRequest();
}
//ENTRY GATES SENSOR
Serial.println("E");
int current_entry=digitalRead(5);
//Serial.println(current_entry);
if (current_entry!=(int)old_entry) {
old_entry=(int)current_entry;
sprintf(buf, "GET /objects/?object=sensorEntry&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_entry);
sendHTTPRequest();
}
//MOVEMENT 1 SENSOR
Serial.println("M1");
int current_movement_1=digitalRead(A0);
//Serial.println(current_movement_1);
if (current_movement_1!=(int)old_movement_1) {
old_movement_1=(int)current_movement_1;
sprintf(buf, "GET /objects/?object=sensorMovement1&op=m&m=switch&status=%i HTTP/1.0", (int)current_movement_1);
sendHTTPRequest();
}
//MOVEMENT 2 SENSOR
Serial.println("M1");
int current_rainSensePin=digitalRead(A2);
//Serial.println(current_rainSensePin);
if (current_rainSensePin!=(int)rainSensePin) {
rainSensePin=(int)current_rainSensePin;
sprintf(buf, "GET /objects/?object=rainSensePin2&op=m&m=switch&status=%i HTTP/1.0", (int)current_rainSensePin);
sendHTTPRequest();
}
//REMOTE BUTTON 1
Serial.println("R1");
int current_button_1=digitalRead(8);
if (current_button_1!=(int)old_button_1 && current_button_1==1) {
delay(2000);
int current_button_1=digitalRead(8);
if (current_button_1==1) {
// long press
sprintf(buf, "GET /objects/?object=remoteButton1&op=m&m=statusChanged&status=%i HTTP/1.0", 2);
} else {
// click
sprintf(buf, "GET /objects/?object=remoteButton1&op=m&m=statusChanged&status=%i HTTP/1.0", 1);
}
old_button_1=(int)current_button_1;
sendHTTPRequest();
}
//REMOTE BUTTON 2
Serial.println("R2");
int current_button_2=digitalRead(9);
if (current_button_2!=(int)old_button_2 && current_button_2==1) {
delay(2000);
int current_button_2=digitalRead(9);
if (current_button_2==1) {
// long press
sprintf(buf, "GET /objects/?object=remoteButton2&op=m&m=statusChanged&status=%i HTTP/1.0", 2);
} else {
// click
sprintf(buf, "GET /objects/?object=remoteButton2&op=m&m=statusChanged&status=%i HTTP/1.0", 1);
}
old_button_2=(int)current_button_2;
sendHTTPRequest();
}
}
в зарание спасибо
и кстати у меня ардуино нано
CONNECT |
Группа в VK|
ЮТУБ КАНАЛ
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
-
mazahaka7sk
- Сообщения: 54
- Зарегистрирован: Сб фев 20, 2016 8:46 am
- Откуда: Усть-Каменогорс
-
Благодарил (а):
8 раз
-
Поблагодарили:
10 раз
-
Контактная информация:
Сообщение
mazahaka7sk » Пн авг 29, 2016 10:45 pm
нет у меня все проводные датчики
все датчики у меня в профиле есть
CONNECT |
Группа в VK|
ЮТУБ КАНАЛ
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
-
mazahaka7sk
- Сообщения: 54
- Зарегистрирован: Сб фев 20, 2016 8:46 am
- Откуда: Усть-Каменогорс
-
Благодарил (а):
8 раз
-
Поблагодарили:
10 раз
-
Контактная информация:
Сообщение
mazahaka7sk » Пн сен 05, 2016 9:10 pm
люди есть кто живой????
CONNECT |
Группа в VK|
ЮТУБ КАНАЛ
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
-
gagarin74
- Сообщения: 330
- Зарегистрирован: Пн апр 06, 2015 9:51 am
-
Благодарил (а):
37 раз
-
Поблагодарили:
22 раза
Сообщение
gagarin74 » Вт сен 06, 2016 12:05 am
по вашему скрипту получается инсталяция только 6 устройств. SETUP. и я не вижу ни одной библиотеки для работы с датчиком температуры. и еще заранее посмотрите свою ардуинку -у некоторых выходное напряжение не 5 вольт а 3.3. а его не хватает на датчики которые расчитаны на 5 вольт
-
mazahaka7sk
- Сообщения: 54
- Зарегистрирован: Сб фев 20, 2016 8:46 am
- Откуда: Усть-Каменогорс
-
Благодарил (а):
8 раз
-
Поблагодарили:
10 раз
-
Контактная информация:
Сообщение
mazahaka7sk » Вт сен 06, 2016 7:44 pm
так я и говорю кто поможет дописать скрипт чтоб добавить туда 3 датчика температуры и настроить мажордомо чтоб он температуру показывал там с датчиков.
DHT11
питания я подаю отдельно на 5 вольт , когда в ардуино заливаешь скетч для проверки датчика он в мониторинг порта выдает температуру .
CONNECT |
Группа в VK|
ЮТУБ КАНАЛ
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
-
VGor
- Сообщения: 32
- Зарегистрирован: Сб янв 23, 2016 12:08 pm
-
Благодарил (а):
1 раз
-
Поблагодарили:
1 раз
Сообщение
VGor » Ср сен 07, 2016 5:56 am
Посмотрите тему ардуино+w5100. Там есть примеры работы с датчиками.
-
Sergey2055
- Сообщения: 73
- Зарегистрирован: Ср авг 31, 2016 7:54 am
-
Благодарил (а):
12 раз
-
Поблагодарили:
1 раз
Сообщение
Sergey2055 » Чт сен 08, 2016 10:07 am
Всем привет. Господа помогите с глобальной проблемой. Есть сервер построенный на ардуино он обрабатывает все данные и заведует всем происходящим, то есть он заведует собственной сетью в которую внедрены все датчики и модули построенные на радио модулях NRF2401. Так же есть сервер который построен на распберри на котором крутится страница умного дома построенная на AJAX. С этой страницы идут запросы на ардуину в ответ которых она выдает пакет данных типа: P1=xx, P2=xx итд. Можно изменить тип ответа это не проблема. Вопрос вот в чем: как все это прикрутить к majordomo. Тоесть отправку команды на включение или выключение я реализовал, а вот как разобрать ответные данные и распихать куда надо. Я сейчас реализовал так с помощью веб переменных делаю запрос и отфильтровываю конкретную переменную и присваиваю в конкретный объект, из за этого получается кучу запросов так как один запрос получаю одну переменную.
А как все это разобрать в одном запросе, то есть отфильтровать переменные и присвоить в нужные объекты.
Помогите плиииииииииииз!!!!!!!!!!!!!!!
желательно не на словах а кодом или где точно посмотреть как это делается ото кучу перепробовал и прочитал чет не выходит.
-
nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
-
Благодарил (а):
121 раз
-
Поблагодарили:
2010 раз
Сообщение
nick7zmail » Чт сен 08, 2016 10:28 am
Sergey2055 писал(а):Всем привет. Господа помогите с глобальной проблемой. Есть сервер построенный на ардуино он обрабатывает все данные и заведует всем происходящим, то есть он заведует собственной сетью в которую внедрены все датчики и модули построенные на радио модулях NRF2401. Так же есть сервер который построен на распберри на котором крутится страница умного дома построенная на AJAX. С этой страницы идут запросы на ардуину в ответ которых она выдает пакет данных типа: P1=xx, P2=xx итд. Можно изменить тип ответа это не проблема. Вопрос вот в чем: как все это прикрутить к majordomo. Тоесть отправку команды на включение или выключение я реализовал, а вот как разобрать ответные данные и распихать куда надо. Я сейчас реализовал так с помощью веб переменных делаю запрос и отфильтровываю конкретную переменную и присваиваю в конкретный объект, из за этого получается кучу запросов так как один запрос получаю одну переменную.
А как все это разобрать в одном запросе, то есть отфильтровать переменные и присвоить в нужные объекты.
Помогите плиииииииииииз!!!!!!!!!!!!!!!
желательно не на словах а кодом или где точно посмотреть как это делается ото кучу перепробовал и прочитал чет не выходит.
Проще всего сформировать json строку - и в МД её запрашивать и разбирать. Либо моюно так же как вы в расбери ответы забираете (P1=xx, P2=xx) - так и в МД забирать. Чтобы код привести - нужно знать, что у вас имеется. В каком виде эти ответы приходят? Просто на html-странице забиты? Или как они в расбери попадают? Каким кодом запрашиваются, и что конкретно приходит?