Мы собираем файлы cookie и применяемрекомендательные технологии

Обнаружения протечек воды на базе NodeMCU и Wi-Fi с отправкой SMS-уведомлений - 540 - МТС Exolve

Обнаружения протечек воды на базе NodeMCU и Wi-Fi с отправкой SMS-уведомлений

Защита от протечек воды является важным аспектом безопасности и комфорта в любом доме. Быстрая реакция на утечку может предотвратить серьезные повреждения и затраты на ремонт. В этом проекте мы создадим автономную систему уведомления о протечке воды с использованием микроконтроллера NodeMCU, которая будет отправлять SMS-сообщения при обнаружении утечки.

Для реализации проекта нам потребуются следующие компоненты:
  1. NodeMCU (ESP8266) — микроконтроллер с поддержкой Wi-Fi.
  2. Датчик протечки воды — для обнаружения утечек.
  3. Питание — аккумулятор или блок питания для NodeMCU.
  4. Проводка и разъемы — для соединения компонентов.
  5. Бредборд и провода — для удобства сборки и тестирования.
Подключите датчик протечки воды к одному из цифровых пинов NodeMCU (например, D1):
  • Один вывод датчика соедините с пином D1 на NodeMCU.
  • Второй вывод датчика соедините с GND (землей).
Подключите NodeMCU к источнику питания. Вы можете использовать аккумулятор или блок питания. Убедитесь, что напряжение питания соответствует требованиям вашего NodeMCU.

Приведенный ниже код на языке C++ подключает NodeMCU к Wi-Fi сети, проверяет состояние датчика протечки и отправляет SMS через сервис Exolve при обнаружении утечки.
Код
#include <ESP8266WiFi.h>        // Подключаем библиотеку для работы с Wi-Fi
#include <ESP8266HTTPClient.h>  // Подключаем библиотеку для HTTP-запросов
#include <WiFiClientSecure.h>   // Подключаем библиотеку для HTTPS-запросов

// Замените эти строки на SSID и пароль вашей Wi-Fi сети
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

// Bearer токен для авторизации
const char* bearerToken = "YOUR_BEARER_TOKEN";

// Настройки датчика протечки воды
const int waterSensorPin = D1;
bool sensorState = HIGH;  // Состояние датчика

void setup() {
  // Инициализируем последовательный порт для отладки
  Serial.begin(9600);
  delay(10);

  // Настраиваем пин датчика как вход
  pinMode(waterSensorPin, INPUT_PULLUP);

  // Подключаемся к Wi-Fi сети
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  int currentState = digitalRead(waterSensorPin);
  
  if (currentState == LOW && sensorState == HIGH) {
    sensorState = LOW;
    sendSMS();
  } else if (currentState == HIGH) {
    sensorState = HIGH;
  }
}

void sendSMS() {
  if (WiFi.status() == WL_CONNECTED) {  // Проверяем соединение с Wi-Fi
    WiFiClientSecure client; // Создаем объект WiFiClientSecure
    client.setInsecure(); // Отключаем проверку сертификата (для простоты, не рекомендуется для production)

    HTTPClient http;

    // Устанавливаем URL для POST-запроса
    http.begin(client, "https://api.exolve.ru/messaging/v1/SendSMS");
    http.addHeader("Content-Type", "application/json");
    http.addHeader("Authorization", String("Bearer ") + bearerToken);

    // Формируем JSON-данные
    String jsonPayload = "{\"number\":\"SENDER_NUMBER\",\"destination\":\"RECIPIENT_NUMBER\",\"text\":\"СМС отправленный из NodeMCU: Обнаружена протечка!\"}";

    // Отправляем POST-запрос
    int httpResponseCode = http.POST(jsonPayload);

    if (httpResponseCode > 0) {
      String response = http.getString();
      Serial.println(httpResponseCode);
      Serial.println(response);
    } else {
      Serial.print("Error on sending POST: ");
      Serial.println(httpResponseCode);
    }

    // Завершаем запрос
    http.end();
  } else {
    Serial.println("Error in WiFi connection");
  }
}

Этот проект демонстрирует, как с использованием минимального набора компонентов и простого кода можно создать эффективное устройство для уведомления о протечке воды. С помощью NodeMCU и датчика протечки, а также сервиса отправки SMS через интернет, вы сможете своевременно обнаруживать утечки и предотвращать возможные повреждения имущества.
1
628
Открытая тема
0 баллов

Для того, чтобы оставлять комментарии, необходимо пройти авторизацию

Авторизоваться
Спасибо за статью! Очень хотелось бы увидеть это в виде готовой реализации. Идея имеет большой потенциал:)
moderator
moderator
0 баллов
31 июля 2024 в 14:00