Почта
Диск
     

Метеорологические датчики

  1. Датчики температуры и влажности воздуха
  2. Датчики атмосферного давления
  3. Датчики скорости и направления ветра
  4. Датчики аэрозоля
  5. Датчики газа
  6. Дистанционные датчики
  7. Навигационные приемники

Измерение метеопараметров и передача на компьютер по последовательному каналу

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

// Переменная датчика атмосферного давления
Adafruit_BMP085 barometer;

// Переменная датчика температуры/влажности воздуха
DHT dht(0, DHT22);


void setup() {
    Serial.begin(9600);
    delay(10);
    Wire.begin(2, 14); // SDA, SCL
    barometer.begin();
    dht.begin();
}


void loop() {

    // Чтение значений параметров состояния атмосферы
    float S  = dht.readHumidity();
    float T  = dht.readTemperature();
    float P  = barometer.readPressure()*0.0075;
  
    Serial.print("Температура: ");
    Serial.print(T);
    Serial.println(" C");
    Serial.print("Влажность: "); 
    Serial.print(S);
    Serial.println(" %");
    Serial.print("Давление: ");
    Serial.print(P); 
    Serial.println(" мм рт. ст.");

    // Задержка 10 секунд
    delay(10000);  
}
    

Измерение метеопараметров и передача на сервер ThinkSpeak.com

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

const char* ssid     = "XXXXXXXXXXXXX";
const char* password = "XXXXXXXXXXXXX";
const char* server   = "api.thingspeak.com";

Adafruit_BMP085 barometer;
DHT dht(0, DHT22);
WiFiClient client;
String writeAPIKey = "XXXXXXXXXXXXXXXXX";


void setup() {            
    Serial.begin(115200);
    delay(10);
    Wire.begin(2, 14);
    barometer.begin();
    dht.begin();
    WiFi.begin(ssid, password);
    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

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


void loop() {
   
    float S  = dht.readHumidity();
    float T  = dht.readTemperature();
    float P  = barometer.readPressure()/100.0;
  
    if(client.connect(server,80)) {
        String tsData  ="field2=";
        tsData += String(T);
        tsData +="&field3=";
        tsData += String(P);
        tsData +="&field4=";
        tsData += String(S);
        // Формируем строку запроса
        String cmd = "POST /update HTTP/1.1\n";
        cmd += "Host: api.thingspeak.com\n";
        cmd += "Connection: close\n";
        cmd += "X-THINGSPEAKAPIKEY: "+writeAPIKey+"\n";
        cmd += "Content-Type: application/x-www-form-urlencoded\n";
        cmd += "Content-Length: ";
        cmd += tsData.length();
        cmd += "\n\n";
        cmd += tsData;
        client.print(cmd + "\n"); 
 
        Serial.print("Температура: ");
        Serial.print(T);
        Serial.println(" C");
        Serial.print("Влажность: "); 
        Serial.print(S);
        Serial.println(" %");
        Serial.print("Давление: ");
        Serial.print(P); 
        Serial.println(" Па");
    }
    client.stop();

    // Задержка 20 секунд
    delay(20000);  
}
    

Работа с модулем ESP8266 в режиме точки доступа для сканирования WiFi сетей

scanWiFi.ino



Полезная информация