Решил сделать сигнализацию утечки газа на даче. Что бы на телефоне было видно,ну и в доме. .Датчик MQ-6,ардуино нано, пищалка,или усилок на TDA7052AT/N2.112 поставлю. Чтобы громко.На телефон тоже выходит нормально. Использовал RemoteXY.На столе все работает. Пока думаю как оформить. Код (C++): // определение режима соединения Рё подключение библиотеки RemoteXY #define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT #include <RemoteXY.h> #define soundPin 6 #define PIRPin 7 boolean dir = 1; int frequencyMin = 2500; int frequencyMax = 4500; int FreqSpeed = 4; int frequency = frequencyMin ; // настройки соединения #define REMOTEXY_SERIAL Serial #define REMOTEXY_SERIAL_SPEED 115200 #define REMOTEXY_WIFI_SSID "RemoteXY" #define REMOTEXY_WIFI_PASSWORD "???"//Пароль1свой #define REMOTEXY_SERVER_PORT 6377 #define REMOTEXY_ACCESS_PASSWORD "????"//Пароль2свой // конфигурация интерфейса #pragma pack(push, 1) uint8_t RemoteXY_CONF[] = { 255,0,0,13,0,19,0,10,13,1, 69,0,11,41,42,42,1,67,4,11, 15,40,13,36,0,11 }; // структура определяет РІСЃРµ переменные Рё события вашего интерфейса управления struct { // output variables int16_t sound_1; // =0 нет Р·РІСѓРєР°, иначе ID Р·РІСѓРєР°, для примера 1001, смотри СЃРїРёСЃРѕРє Р·РІСѓРєРѕРІ РІ приложении char text_1[11]; // =строка UTF8 оканчивающаяся нулем // other variable uint8_t connect_flag; // =1 if wire connected, else =0 } RemoteXY; #pragma pack(pop) ///////////////////////////////////////////// // END RemoteXY include // ///////////////////////////////////////////// void setup() { RemoteXY_Init (); { pinMode(soundPin,OUTPUT); pinMode(PIRPin,INPUT); } // TODO you setup code } void loop() { RemoteXY_Handler (); int PIRRead=digitalRead(PIRPin); if (PIRRead==HIGH) Siren(); Reset(); } void Siren() { if(dir==1) {frequency+=FreqSpeed;} if(dir==0) {frequency-=FreqSpeed;} if(frequency>=frequencyMax) {dir=0;} if(frequency<=frequencyMin) {dir=1;} tone(soundPin,frequency); } void Reset() { noTone(soundPin); strcpy(RemoteXY.text_1, "/MQ-5/"); if (digitalRead(PIRPin) == HIGH) { RemoteXY.sound_1 = 2011; } else { RemoteXY.sound_1 = 0; } }
Маленькая платка,имитатор датчика,просто кнопка. Побольше,это сам ESP8266 модуль. И еще.У меня датчик ,почему то,на цифровом выходе при срабатывании выдает 0. пришлось маленько переделать скетч.Заодно пищалку маленько переделал. Усилок поменял на PAM8403 Код (C++): // определение режима соединения Рё подключение библиотеки RemoteXY #define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT #include <RemoteXY.h> #include "pitches.h" int melody[]={NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4}; #define PIRPin 4 int noteDurations[]={4, 8, 8, 4, 4, 4, 4, 4}; // настройки соединения #define REMOTEXY_SERIAL Serial #define REMOTEXY_SERIAL_SPEED 115200 #define REMOTEXY_WIFI_SSID "RemoteXY" #define REMOTEXY_WIFI_PASSWORD "jriy1951" #define REMOTEXY_SERVER_PORT 6377 #define REMOTEXY_ACCESS_PASSWORD "jriy51" // конфигурация интерфейса #pragma pack(push, 1) uint8_t RemoteXY_CONF[] = { 255,0,0,13,0,19,0,10,13,1, 69,0,11,41,42,42,1,67,4,11, 15,40,13,36,0,11 }; // структура определяет РІСЃРµ переменные Рё события вашего интерфейса управления struct { // output variables int16_t sound_1; // =0 нет Р·РІСѓРєР°, иначе ID Р·РІСѓРєР°, для примера 1001, смотри СЃРїРёСЃРѕРє Р·РІСѓРєРѕРІ РІ приложении char text_1[11]; // =строка UTF8 оканчивающаяся нулем // other variable uint8_t connect_flag; // =1 if wire connected, else =0 } RemoteXY; #pragma pack(pop) ///////////////////////////////////////////// // END RemoteXY include // ///////////////////////////////////////////// void setup() { RemoteXY_Init (); { pinMode(PIRPin,INPUT); } // TODO you setup code } void loop() { RemoteXY_Handler (); strcpy(RemoteXY.text_1, "/MQ-5/"); if (digitalRead(PIRPin) == LOW) { RemoteXY.sound_1 = 2015; } else { RemoteXY.sound_1 = 0; } //} int buttonState = digitalRead(PIRPin); if (buttonState == 0){ for (int thisNote=0; thisNote <8; thisNote++){ if (thisNote%3==0){ } else if (thisNote%3==1){ } else if (thisNote%3==2){ } int noteDuration = 1000 / noteDurations [thisNote]; tone(5, melody [thisNote], noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(8); } } }
возьму на вооружение ваш метод, хочу родителям такое сделать. У них частный дом, уже возраст не тот, чтоб быть шустрым и расторопным. Хочется уберечь и помочь