Датчик газа на даче.

Тема в разделе "Глядите, что я сделал", создана пользователем jriy51, 29 фев 2020.

  1. jriy51

    jriy51 Нерд

    Решил сделать сигнализацию утечки газа на даче.
    Что бы на телефоне было видно,ну и в доме.
    .Датчик 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;
       }  
    }




     
     

    Вложения:

    • DSCN5669.JPG
      DSCN5669.JPG
      Размер файла:
      93,2 КБ
      Просмотров:
      280
    • DSCN5670.JPG
      DSCN5670.JPG
      Размер файла:
      80,1 КБ
      Просмотров:
      266
    • DSCN5671.JPG
      DSCN5671.JPG
      Размер файла:
      87 КБ
      Просмотров:
      274
    Daniil нравится это.
  2. Un_ka

    Un_ka Гуру

    Самодельно разведённая схема это усилитель? На фотографии что то не видно ESP8266.
     
  3. jriy51

    jriy51 Нерд

    Маленькая платка,имитатор датчика,просто кнопка.
    Побольше,это сам 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);
       }
    }
    }

     
     

    Вложения:

    • DSCN5672.JPG
      DSCN5672.JPG
      Размер файла:
      107,8 КБ
      Просмотров:
      240
    • DSCN5678.JPG
      DSCN5678.JPG
      Размер файла:
      178,1 КБ
      Просмотров:
      241
    Последнее редактирование: 4 мар 2020
    Daniil и Un_ka нравится это.
  4. jriy51

    jriy51 Нерд

    Запихнул в корпус.По квартире все ОК.
     

    Вложения:

    • DSCN5680.JPG
      DSCN5680.JPG
      Размер файла:
      99,4 КБ
      Просмотров:
      261
    • DSCN5681.JPG
      DSCN5681.JPG
      Размер файла:
      107,6 КБ
      Просмотров:
      253
    • DSCN5682.JPG
      DSCN5682.JPG
      Размер файла:
      109,8 КБ
      Просмотров:
      257
    Un_ka и alp69 нравится это.
  5. Hurdred

    Hurdred Нуб

    возьму на вооружение ваш метод, хочу родителям такое сделать. У них частный дом, уже возраст не тот, чтоб быть шустрым и расторопным. Хочется уберечь и помочь