продолжить ->

Решим задачу -> требуется на экранах компьютеров или мобильных устройств, дистанционно, отслеживать (мониторить) изменение какого-либо параметра (температуры, давления, влажности, освещенности, скорости вращения, процент(%) какого-нибудь газа в воздухе, появления признаков движения или звука и пр....) какого-либо объекта или в каком-либо помещении.


        Построим проект решения одного варианта этой задачи:
      а) подключим к плате "ESP32" датчик температуры и давления BMP180 и датчик освещенности (фоторезистор):

      b) напишем программу, согласно которой плата будет читать показания датчиков и передавать их по каналам Bluetooth на экраны устройств с Bluetooth модулями-приемниками;
      c) в этой программе организуем автоматическое включение желтого светодиода (или реле) при уменьшении освещенности ниже определенного уровня И включение красного светодиода (или реле) при повышении температуры выше определенного значения;
      d) предусмотрим в программе также дистанционное включение и выключение зеленого светодиода по командам с экранов устройств с Bluetooth-модулями:

    Программа (внимательно читайте комментарии):
    Все приводимые в этом курсе программы бесплатные, разработаны различными энтузиастами, размещены на различных ресурсах с Интернете, ОПРОБОВАНЫ, отредактированы и ДОПОЛНЕНЫ автором данного курса, и предлагаются в качестве опоры при изучении основ программирования по методу - 'посмотри, пойми, повтори, сделай сам и по-своему'.
    
     //32_BT-180-3leds.ino                                                
    #include <SoftwareSerial.h>
    #include <Adafruit_BMP085.h>
    #include <Wire.h>
    #include <Adafruit_Sensor.h> 
    Adafruit_BMP085 bmp;
    SoftwareSerial ESP_BT(2, 3); // RX, TX
    
     // назначаем пины для светодиодов
    const int led1 =  18;      // g
    const int led2 =  19;      // r
    const int led3 =  15;      // y
     
    void setup() {
      pinMode(led1, OUTPUT); //g
      pinMode(led2, OUTPUT); //r
      pinMode(led3, OUTPUT); //y
      Serial.begin(115200);
       ESP_BT.begin("ESP32_LED"); //даем название BT
     
      if (!bmp.begin()) {  //инициируем датчик, если нет датчика выводим : 
        Serial.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
      }
    }
      
    void loop() {
      float sv = analogRead(34)/10; //датчик освещенности
           if (sv > 215){
           digitalWrite(led3, LOW);  
           } else { //если sv<215 -> зажигается желтый светодиод 
           digitalWrite(led3, HIGH);  
           }
      //выводим данные на экран управляющего компьютера
      Serial.print("t C= ");
      Serial.print(bmp.readTemperature());
      Serial.print(" |P mmHg= ");
      Serial.println(bmp.readPressure() / 100.0F*0.7500634);
      Serial.print(sv);
      Serial.println(" lm");
      //выводим данные на экран Bluetooth-устройства
      ESP_BT.print("t_C= ");
      ESP_BT.print(bmp.readTemperature());
      ESP_BT.print(" |P(mm)= ");
      ESP_BT.println(bmp.readPressure() / 100.0F*0.7500634);
      ESP_BT.print(sv);
      ESP_BT.println(" lm");
      // управление зеленым светодиодом
    int n1;
        n1 = ESP_BT.read();
        if(n1=='G')  {digitalWrite(led1,HIGH); ESP_BT.println(" Gr is ON");}  
        // включаем светодиод:
        if(n1=='g')  {digitalWrite(led1,LOW); ESP_BT.println(" Gr is OFF");}  
        // вЫключаем светодиод:
       
     // автоматическое включение red led, если температура >=29 // 
      if (bmp.readTemperature()>=29) {digitalWrite(led2, HIGH);} 
      else {digitalWrite(led2, LOW);};
     ///////////////////////////////////////////////////////////
     delay(1500); //задержка 1,5 сек.
    }  
     

    Пишем (переносим) эту программу в новый файл в "Arduino IDE":

    Выбираем плату (ESP32 Dev Module), определяем и выбираем 'порт', запускаем компиляцию и затем загрузку файла, после начала загрузки нажимаем и удерживаем 3-4 сек кнопку 'BOOT' на плате, если все нормально -> по окончании загрузки увидим сообщение:

    Теперь открываем "инструменты" и "Монитор порта" и видим данные датчиков (температуры, давления и освещенности):

    Те же данные мы можем увидеть, если раскроем одно из приложений "Bluetooth-терминал" для мобильных Андроид-устройств, например,

    или

    В последнем приложении мы можем дистанционно включать и выключать зеленый светодиод, посылая символы 'G' и 'g' с экрана Bluetooth-устройства.


Итак, мы решили этот вариант задачи по дистанционному (Bluetooth) мониторингу на базе платы "ESP32".

! Используя разобранный ЗДЕСЬ пример, постройте проект автоматического, дистанционного, информирования (на мониторы Bluetooth-устройств) о появлении назапланированного движения в районе наблюдаемого объекта.

Проект [если сделаете(: ] пришлите на E-mail: doo.svl@yandex.ru



продолжить ->