всем привет не как не могу привязать датчики к ардуино все перерыл пробывал все коды не работают. точнее работают датчик света датчик протечки а все вместе привязать не могу.
у меня 3 датчика температуры DHT11
4 датчика протечки ну они работают
4 датчика движения
4 датчика огня
датчик воды датчик света и реле включения свету меня работало через этот скрипт а вот все остальное не получаеться привязать помогите
SPOILERSPOILER_SHOW
SPOILERSPOILER_SHOW
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);
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
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
по вашему скрипту получается инсталяция только 6 устройств. SETUP. и я не вижу ни одной библиотеки для работы с датчиком температуры. и еще заранее посмотрите свою ардуинку -у некоторых выходное напряжение не 5 вольт а 3.3. а его не хватает на датчики которые расчитаны на 5 вольт
так я и говорю кто поможет дописать скрипт чтоб добавить туда 3 датчика температуры и настроить мажордомо чтоб он температуру показывал там с датчиков.
DHT11
питания я подаю отдельно на 5 вольт , когда в ардуино заливаешь скетч для проверки датчика он в мониторинг порта выдает температуру .
CONNECT |Группа в VK| ЮТУБ КАНАЛ
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
Всем привет. Господа помогите с глобальной проблемой. Есть сервер построенный на ардуино он обрабатывает все данные и заведует всем происходящим, то есть он заведует собственной сетью в которую внедрены все датчики и модули построенные на радио модулях NRF2401. Так же есть сервер который построен на распберри на котором крутится страница умного дома построенная на AJAX. С этой страницы идут запросы на ардуину в ответ которых она выдает пакет данных типа: P1=xx, P2=xx итд. Можно изменить тип ответа это не проблема. Вопрос вот в чем: как все это прикрутить к majordomo. Тоесть отправку команды на включение или выключение я реализовал, а вот как разобрать ответные данные и распихать куда надо. Я сейчас реализовал так с помощью веб переменных делаю запрос и отфильтровываю конкретную переменную и присваиваю в конкретный объект, из за этого получается кучу запросов так как один запрос получаю одну переменную.
А как все это разобрать в одном запросе, то есть отфильтровать переменные и присвоить в нужные объекты.
Помогите плиииииииииииз!!!!!!!!!!!!!!!
желательно не на словах а кодом или где точно посмотреть как это делается ото кучу перепробовал и прочитал чет не выходит.
Sergey2055 писал(а):Всем привет. Господа помогите с глобальной проблемой. Есть сервер построенный на ардуино он обрабатывает все данные и заведует всем происходящим, то есть он заведует собственной сетью в которую внедрены все датчики и модули построенные на радио модулях NRF2401. Так же есть сервер который построен на распберри на котором крутится страница умного дома построенная на AJAX. С этой страницы идут запросы на ардуину в ответ которых она выдает пакет данных типа: P1=xx, P2=xx итд. Можно изменить тип ответа это не проблема. Вопрос вот в чем: как все это прикрутить к majordomo. Тоесть отправку команды на включение или выключение я реализовал, а вот как разобрать ответные данные и распихать куда надо. Я сейчас реализовал так с помощью веб переменных делаю запрос и отфильтровываю конкретную переменную и присваиваю в конкретный объект, из за этого получается кучу запросов так как один запрос получаю одну переменную.
А как все это разобрать в одном запросе, то есть отфильтровать переменные и присвоить в нужные объекты.
Помогите плиииииииииииз!!!!!!!!!!!!!!!
желательно не на словах а кодом или где точно посмотреть как это делается ото кучу перепробовал и прочитал чет не выходит.
Проще всего сформировать json строку - и в МД её запрашивать и разбирать. Либо моюно так же как вы в расбери ответы забираете (P1=xx, P2=xx) - так и в МД забирать. Чтобы код привести - нужно знать, что у вас имеется. В каком виде эти ответы приходят? Просто на html-странице забиты? Или как они в расбери попадают? Каким кодом запрашиваются, и что конкретно приходит?