Fiókom
TERMÉK KATEGÓRIÁK
01/12/2021 Meteostanica s ukladaním dát na online server pomocou Wemos ESP12

Meteostanica s ukladaním dát na online server pomocou Wemos ESP12

V tomto projekte vytvoríme za pomoci WiFi čipu ESP12 a platformy ThingSpeak online zber dát teploty a vlhkosti vzduchu. Na webový server ThingSpeak je možné pristupovať z ľubovoľného zariadenia, ktoré má prístup k internetu, takže dáta si môžete pozerať prakticky kdekoľvek.

Platforma ThingSpeak je pomerne rozsiahla a okrem jednoduchého logovania (zapisovania) údajov na ich online server, ponúka aj možnosť vykresľovať grafov a rôzne analytické funkcie. V našej aplikácií si takýto online graf vytvoríme z údajov teploty a vlhkosti vzduchu.

1. Potrebný hardvér

  1. ESP12-F WEMOS D1 Mini – hlavná vývojová doska projektu
https://techfun.hu/produkt/vyvojova-doska-esp12-f-wemos-d1-mini/
  1. Senzor teploty a vlhkosti DHT11. Existujú dve varianty, buď ako samostatný modul alebo shield, ktorý je možné jednoducho nasadiť na vývojvú dosku WEMOS
https://techfun.hu/produkt/senzor-teploty-a-vlhkosti-dht11/
https://techfun.hu/produkt/wemos-mini-shield-senzor-teploty-a-vlhkosti-dht11/
  1. 4,7k Ohm rezistor ak používate samostatný DHT senzor
https://techfun.hu/produkt/balenie-rezistorov-20-hodnot-x-20-kusov/
  1. Prepojovacie vodiče
https://techfun.hu/produkt/kabliky-40-kusov-10-cm-m-f/
  1. Kontaktné pole
https://techfun.hu/produkt/nepajive-pole-830-bodov/

2. Blokové zapojenie elektro hardvéru

Pripojte snímač teploty a vlhkosti DHT11 ku ESP12, ako je znázornené na blokovej schéme. Na DHT senzore sú 4 piny (jeden z nich je NC teda not connected – nepripojený), pre použitie je potrebné pripojiť 3 – VCC, GND a dáta. Odporúča sa napájať dátový pin cez pull-up odpor. Na doske ktorú sme použili my, je tento odpor už naspájkovaný. Takže stačí len prepojiť.

3. Inštalácia softvéru v Arduino IDE – knižnice

Na čítanie zo snímače DHT použijeme knižnicu DHT od spoločnosti Adafruit:

https://github.com/adafruit/DHT-sensor-library

Ak chcete používať túto knižnicu tiež si musíte nainštalovať základný balík senzorov od Adafruitu:

https://github.com/adafruit/Adafruit_Sensor

Modul ESP12 síce nie je z rady Arduino, avšak v programovacom prostredí Arduino IDE je možné doinštalovať knižnicu, ktorá umožní programovanie akýchkoľvek čipov ESP12. Knižnicu nájdete na:

https://www.arduino.cc/reference/en/libraries/esp8266-weather-station/

Postup pri inštalovaní knižníc:

  1. Otvorte svoje Arduino IDE a choďte na Sketch > Include Library > Manage Libraries . Mal by sa otvoriť správca knižnice.
  1. Vyhľadajte „ DHT “ vo vyhľadávacom poli a nainštalujte si knižnicu DHT od Adafruit.
  1. Po inštalácii knižnice DHT od spoločnosti Adafruit do vyhľadávacieho poľa zadajte „ Adafruit Unified Sensor “. Posuňte sa úplne nadol, vyhľadajte knižnicu a nainštalujte ju.
  1. Po inštalácií “Adafruit Unified Sensor” nainštalujte knižnicu ESP8266 Weather Station.

4. Kompilácia a nahranie zdrojového kódu

Po inštalácii knižníc reštartujte svoje Arduino IDE. Kód, ktorý skompilujeme a nahráme do Arduino:

include <DHT.h>
#include <ESP8266WiFi.h>
 
// replace with your channel's thingspeak API key and your SSID and password
String apiKey = "1PIYZM63VQ4GAZ7X";        // kľúč API zo stránky ThingSpeak
const char* ssid = "XXX";            //  názov WiFi
const char* password = "XXX";         // heslo WiFi 
const char* server = "api.thingspeak.com";
 
#define DHTPIN D4           // pin na ktorý je snimač pripojeny
#define DHTTYPE DHT11 
 
DHT dht(DHTPIN, DHTTYPE);
WiFiClient client;
 
void setup() 
{
Serial.begin(115200);  // začať komunikáciu medzi PC a ESP12
delay(10);  //počkať 10 milisekúnd
dht.begin(); // začať komunikáciu medzi ESP12 a senzorom DHT11
 
WiFi.begin(ssid, password);
 
Serial.println();  //jednoduché výpisy na konzolu PC
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);  
 
WiFi.begin(ssid, password);
 
while (WiFi.status() != WL_CONNECTED) // overenie či sme pripojení
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
 
}
 
void loop() 
{
 
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))  //pokus o načítanie dát zo senzora
{
Serial.println("Failed to read from DHT sensor!"); // načítanie dát zo senzora neúspešné
return;
}
 
if (client.connect(server,80)) {
String postStr = apiKey;
postStr +="&field1=";
postStr += String(t);
postStr +="&field2=";
postStr += String(h);
postStr += "\r\n\r\n";
 
client.print("POST /update HTTP/1.1\n"); //v takomto formáte posielame údaje na ThingSpeak. Je to definované v ich dokumentácií. Používame HTTP príkaz POST
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
 
Serial.print("Teplota: ");
Serial.print(t);
Serial.print(" Vlhkost: ");
Serial.print(h);
Serial.println("Posielanie dát do Thingspeak");
}
client.stop();
 
Serial.println("Pockaj 20 secs");
// thingspeak potrebuje najmenej 15 sekund medzi meraniami, pockame teda nieco malo naviac, 20 sekund
delay(20000);
}

5. Pripojenie ESP 12 na server ThingSpeak

  1. Otvorte odkaz https://thingspeak.com/
  1. Kliknite na odkaz “Get Started For Free”
  1. Zaregistrujte sa
  1. Potvrďte verifikačný email a prihláste sa do Vášho účtu.
  1. Vo svojom účte odkliknite že tento kanál budete používať pre osobné/nekomerčné účely.
  1. Pre vytvorenie nového kanála, kliknite na “New channel”, a nastavte si tam základné parametre a vstupné údaje
  1. Po vytvorení svojho kanála, pridajte popis a povoľte druhé pole. Pole 1 bude dostávať hodnoty teploty, pole 2 hodnoty vlhkosti. Môžete pridať ďalšie údaje a keď ste vyplnili všetky údaje, ktoré potrebujete stlačte tlačidlo “Save channel”.
  1. Po uložení parametrov, sa Vám vytvoria 2 grafy. Štatistické nastavenia, osi grafu, farbu a ostatné nastavenia si nastavíte pomocou ikony “edit”. 
  1. V okne “API Keys”, môžete nájsť Váš API kľúč (Write API Key), ktorý zadávate do zdrojového kódu.
  1. Po úspešnom zapojení či už hardvérovom alebo softvérovom sa nám začínajú zbierať údaje/namerané hodnoty so snímača, ktoré sa nám zobrazujú na v grafe. 

6. Troubleshooting, update projektu

V prípade nefunkčnosti alebo komplikácií pri spúšťaní projektu nás neváhajte kontaktovať. 

Projekt sa budeme postupom času rozširovať a pridávať nové prvky.

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük