1

Topic: Контроль газа на даче.

Решил сделать сигнализацию утечки газа на даче.
Что бы на телефоне было видно,ну и в доме.
С домом проблем нет.Датчик MQ-6,ардуино нано,
и пищалка,или усилок на TDA7052AT/N2.112 поставлю.
Чтобы громко.На телефон тоже выходит нормально,
почти.Со звуком непонятно.Где,как,выбирать звук?
Что за приложения с номерами?Скетч вот такой.
Динамик на телефоне моргает.При нажатии кнопки,ну
или,цифровой выход с датчика.

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

#include <RemoteXY.h>
int buzzer_pin = 10;
int smoke_sensor_pin = A0;

// настройки соединения 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 115200
#define REMOTEXY_WIFI_SSID "RemoteXY"
#define REMOTEXY_WIFI_PASSWORD "---"
#define REMOTEXY_SERVER_PORT 6377
#define REMOTEXY_ACCESS_PASSWORD "==="


// конфигурация интерфейса  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,0,0,14,0,27,0,10,165,1,
  69,0,18,13,25,25,1,66,132,13,
  63,35,27,2,24,67,4,16,46,30,
  10,2,26,11 };
  
// структура определяет все переменные и события вашего интерфейса управления 
struct {

    // output variables
  uint16_t sound_1; // =0 нет звука, иначе ID звука, для примера 1001, смотри список звуков в приложении 
  int8_t level_1; // =0..100 положение уровня 
  char text_1[11];  // =строка UTF8 оканчивающаяся нулем 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////
int button_pin = 5;

void setup() 
{
  RemoteXY_Init (); 
 pinMode(buzzer_pin, OUTPUT);
  pinMode(smoke_sensor_pin, INPUT);  
    pinMode(button_pin, INPUT);
 
  // TODO you setup code
  
}

void loop() 
{ 
{ 
  RemoteXY_Handler ();
  
 
       
  }

  int analogSensor = analogRead(smoke_sensor_pin);
if (analogSensor > 400){
tone(buzzer_pin, 440, 250); 
    delay(250);
    tone(buzzer_pin, 165, 250);
    delay(250);
    tone(buzzer_pin, 440, 250);
    delay(250);
    delay(250);
    
    tone(buzzer_pin, 440, 250);
    delay(250);
    tone(buzzer_pin, 165, 250);
    delay(250);
    tone(buzzer_pin, 440, 250);
    delay(250);
    delay(250);
    
    tone(buzzer_pin, 330, 125);
    delay(125);
    tone(buzzer_pin, 294, 125);
    delay(125);
    tone(buzzer_pin, 262, 125);
    delay(124);
    tone(buzzer_pin, 494, 125);
    delay(125);
    tone(buzzer_pin, 440, 125);
    delay(125);
    tone(buzzer_pin, 494, 125);
    delay(125);
    tone(buzzer_pin, 262, 125);
    delay(125);
    tone(buzzer_pin, 294, 125);
    delay(125);
    
    tone(buzzer_pin, 330, 250);
    delay(250);
    tone(buzzer_pin, 165, 250);
    delay(250);
    tone(buzzer_pin, 440, 250);
    
    delay(500);
  

    } else {
   noTone(buzzer_pin);
 strcpy(RemoteXY.text_1, "/MQ-5/");
  }
int sensorValue1 =analogRead(smoke_sensor_pin);//tblack
 int num = map(sensorValue1, 0, 1023, 0, 100); 
 RemoteXY.level_1 = num; 
 
  if (digitalRead(button_pin) == HIGH)
   {
    RemoteXY.sound_1 = 10;

         }
  else { //Иначе

      RemoteXY.sound_1 = 0;
   }   
       
  
}

https://dropmefiles.com/wcT4O

2

Re: Контроль газа на даче.

Ни каких идей не появилось?
Как все таки заставить петь?

3

Re: Контроль газа на даче.

Замените строчку

RemoteXY.sound_1 = 10;

на

RemoteXY.sound_1 = 1001;

Дополнительная информация доступна тут https://remotexy.com/ru/help/controls/sound/

Для выбора звукового эффекта и определения его идентификатора необходимо в приложении открыть список звуковых эффектов, который находится в «Настройки» / «Список звуков». В списке вы можете прослушать звуковые эффекты, выбрать подходящий, и использовать его идентификатор при разработке программы для контроллера.

4

Re: Контроль газа на даче.

Благодарю.Чего то зацокало.Маленько не то,хотел сирену но пока пойдет.
Вообщим все заработало,но утечки надеюсь не будет.
Код рабочий.

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

#include <RemoteXY.h>
int buzzer_pin = 10;
int smoke_sensor_pin = A0;

// настройки соединения 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 115200
#define REMOTEXY_WIFI_SSID "RemoteXY"
#define REMOTEXY_WIFI_PASSWORD "---"
#define REMOTEXY_SERVER_PORT 6377
#define REMOTEXY_ACCESS_PASSWORD "---"


// конфигурация интерфейса  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,0,0,14,0,27,0,10,165,1,
  69,0,18,13,25,25,1,66,132,13,
  63,35,27,2,24,67,4,16,46,30,
  10,2,26,11 };
  
// структура определяет все переменные и события вашего интерфейса управления 
struct {

    // output variables
  uint16_t sound_1; // =0 нет звука, иначе ID звука, для примера 1001, смотри список звуков в приложении 
  int8_t level_1; // =0..100 положение уровня 
  char text_1[11];  // =строка UTF8 оканчивающаяся нулем 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////
int button_pin = 5;

void setup() 
{
  RemoteXY_Init (); 
 pinMode(buzzer_pin, OUTPUT);
  pinMode(smoke_sensor_pin, INPUT);  
    pinMode(button_pin, INPUT);
 
  // TODO you setup code
  
}

void loop() 
{ 
{ 
  RemoteXY_Handler ();
  
 
       
  }

  int analogSensor = analogRead(smoke_sensor_pin);
if (analogSensor > 400){
tone(buzzer_pin, 440, 250); 
    delay(250);
    tone(buzzer_pin, 165, 250);
    delay(250);
    tone(buzzer_pin, 440, 250);
    delay(250);
    delay(250);
    
    tone(buzzer_pin, 440, 250);
    delay(250);
    tone(buzzer_pin, 165, 250);
    delay(250);
    tone(buzzer_pin, 440, 250);
    delay(250);
    delay(250);
    
    tone(buzzer_pin, 330, 125);
    delay(125);
    tone(buzzer_pin, 294, 125);
    delay(125);
    tone(buzzer_pin, 262, 125);
    delay(124);
    tone(buzzer_pin, 494, 125);
    delay(125);
    tone(buzzer_pin, 440, 125);
    delay(125);
    tone(buzzer_pin, 494, 125);
    delay(125);
    tone(buzzer_pin, 262, 125);
    delay(125);
    tone(buzzer_pin, 294, 125);
    delay(125);
    
    tone(buzzer_pin, 330, 250);
    delay(250);
    tone(buzzer_pin, 165, 250);
    delay(250);
    tone(buzzer_pin, 440, 250);
    
    delay(500);
  

    } else {
   noTone(buzzer_pin);
 strcpy(RemoteXY.text_1, "/MQ-5/");
delay(50);

  }
int sensorValue1 =analogRead(smoke_sensor_pin);//tblack
 int num = map(sensorValue1, 0, 1023, 0, 100); 
 RemoteXY.level_1 = num; 
delay(50);

 
  if (digitalRead(button_pin) == HIGH)
   {
    RemoteXY.sound_1 = 1001;

         }
  else { 

      RemoteXY.sound_1 = 0;
   }   
       
  
}
   

5

Re: Контроль газа на даче.

Для сирены используйте

RemoteXY.sound_1 = 2001; // от 2001 до 2035 - разные сирены

Еще рекомендую в вашем коде избавиться от операторов delay. Из за них будет теряться связь со смартфоном. Например в вашем коде, когда начинает играть подключенный к контроллеру динамик, связь со смартфоном останавливается и прервется по таймауту. Как переделать код на "без delay" можно найти много статей в интернете https://www.google.com/search?q=arduino … 0%B7+delay

6

Re: Контроль газа на даче.

Благодарю.
А с делау,это самое простое.Я даже не "чайник" в этом деле,все методом тыка,
не въезжая для чего, почему.Я пробовал,но,компилятор,ругается.Бросил.
Пусть пока так.На даче перепишем.Целое лето.
Но вроде связь не пропадает.

7

Re: Контроль газа на даче.

Еще раз,благодарю за разработку.Сирена завыла.

8 (edited by jriy18 2020-03-03 05:42:21)

Re: Контроль газа на даче.

Все переделал.Оставил динамик,и сирену в доме.
"delay" убрал,спасибо поиску.
Оставил только цифровой выход датчика.

 

// определение режима соединения и подключение библиотеки 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);
   }
 }
}