Метеостанция с отправкой данных на ресурс narodmon

Для создания метеостанции на ESP8266 с отправкой данных на сайт narodmon.ru, по протоколам TCP/UDP на narodmon.ru:8283( изменил код на этот протокол из за не до понимания), вам необходимо выполнить следующие шаги:

  • Подключите датчики к ESP8266. В качестве датчиков для метеостанции вы можете использовать, например, DHT11 или DHT22 для измерения температуры и влажности воздуха, а также BMP180 или BME280 для измерения температуры и давления воздуха.
  • Установите библиотеку для работы с датчиками и библиотеку для работы с Wi-Fi на ESP8266. Для установки библиотек вы можете воспользоваться менеджером библиотек в среде Arduino IDE.
  • Настройте подключение к Wi-Fi. Вам необходимо указать SSID и пароль вашей сети Wi-Fi в коде программы.
  • Зарегистрируйтесь на сайте narodmon.ru и получите свой API-ключ. Этот ключ нужен для отправки данных на сервер.
  • Напишите программу для ESP8266, которая будет считывать данные с датчиков, формировать JSON-объект с данными и отправлять его на сервер narodmon.ru по протоколу HTTP. В качестве языка программирования вы можете использовать, например, язык Arduino (C++).

Пример кода для метеостанции на ESP8266 с отправкой данных на сайт narodmon.ru по протоколу TCP/UDP:

#include <DHT.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>


// Настройки Wi-Fi
const char* ssid = "имя_сети";
const char* password = "пароль_сети";
const char* monhost = "narodmon.ru";
const int monPort = 8283;


// Подключение датчиков
#define DHTPIN D2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
Adafruit_BMP085 bmp;

// Основная функция
void setup() {
  // Инициализация последовательного порта
  Serial.begin(9600);
  
  // Инициализация датчиков
  dht.begin();
  bmp.begin();
  
  // Подключение к Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
}

void loop() {
  // Считывание данных с датчиков
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();
  float pressure = bmp.readPressure() / 100.0F;
  WiFiClient client;
  if (client.connect(monhost, monPort)) {
    Serial.println("monconnection");
    // send the HTTP GET request:
 client.print("#");
  client.print(WiFi.macAddress()); // отправляем МАС нашей ESP8266
  client.print("#");
  client.print("ESP8266"); // название устройства
  client.print("#");
  //широта, долгота, высота местоположения прибора
   client.print("58.2785#54.9961\n");
  // влажность
        client.print("#H1#");
        client.print(humidity);        
        client.print("#Влажность\n");
 
  // температура
        client.print("#T1#");
        client.print(temperature);        
        client.print("#Температура\n");
  // Давление
        client.print("#P1#");
        client.print(pressure);
        client.print("#Давление\n");
        // Отправляем конец телеграммы
        client.print("##");
   }
else
    {
      Serial.println("connection failed");
      Serial.println("disconnecting.");
    }
    client.stop();
delay(60000); // 1 минута
}

После загрузки данной программы на ESP8266, метеостанция будет отправлять данные на сервер narodmon.ru каждую минуту. Вы можете изменить время задержки в функции delay() в зависимости от ваших потребностей.

Также обратите внимание, что есть разные способы отправки данных, по протоколу HTTP GET/POST на http(s)://narodmon.ru/get (/post); в формате JSON протоколами TCP/UDP narodmon.ru:8283 или http(s)://narodmon.ru/json; по протоколу HTTP POST на http(s)://narodmon.ru/post; по протоколу MQTT на narodmon.ru:1883 за подробностями на сайт https://narodmon.ru/ , раздел справки.

Оставьте комментарий