Prezentuję wam kolejne zastosowanie modułu WIFI wraz z wbudowanym kontrolerem arduino. Tym razem zbudujemy na jego podstawie prostą stację pogody, co prawda można budować i zaawansowane stacje z odczytami jakości powietrza, ale żeby nie komplikować, pokażę wam na sam początek najprostszą stację z odczytem temperatury oraz wilgotności powietrza.
Co potrzebujemy?
To co w naszych pozostałych przykładach:
- konwerter z USB na UART (koniecznie z czipem FT232)
Do zakupienia tutaj:
https://nettigo.pl/products/konwerter-usb-uart-ft232-miniusb
Oraz:
- Moduł ESP8266 12F
Do zakupienia tutaj:
https://nettigo.pl/products/modul-wifi-esp8266-12f
A także:
- Czujnik DHT11:
https://allegro.pl/oferta/dht11-czujnik-temperatury-i-wilgotnosci-arduino-10074790278
Schemat połączeń
Co robimy dalej?
- Tworzymy sobie konto na portalu https://blynk.io/
- Instalujemy aplikację Blynk na smartfona i się logujemy na swoje konto: https://play.google.com/store/apps/details?id=cc.blynk
- W aplikacji klikamy na "New project" i wybieramy moduł ESP8266 oraz wpisujemy nazwę swojej aplikacji, po utworzeniu projektu na naszego maila przychodzi token - klucz który wpiszemy do kodu programu
- Dodajemy w nowym projekcie 2 pozycje sekcja Display opcja Gauge - dwa razy to samo dla temperatury oraz wilgotności
- W ustawieniach pierwszej opcji Gauge (krótkie tapnięcie palcem) pojawi się okno z wartościami input, tam wpisujemy wartości od -20 do 60 (taką skalę obsługuje czujnik DHT) input to będzie V6, reading rate 1 sekunda
- Dla wartości wilgotność wpisujemy od 5 do 95, input to będzie V5, reading rate 1 sekunda
Wgrywanie oprogramowania do kontrolera
Jeśli jeszcze nie przygotowałeś programu arduino pod programowanie kontrolera ESP8266, zrób to według tych wskazówek od momentu "Co robimy dalej":
Jeśli masz już gotowy program do współpracy z tym kontrolerem, to wgrywasz ten program (zmień sobie tam wartości TOKENA, NAZWY SIECI WIFI ORAZ HASŁA DO NIEJ):
#define BLYNK_PRINT Serial#include <ESP8266WiFi.h>#include <BlynkSimpleEsp8266.h>#include <DHT.h>#define DHTPIN 2 // What digital pin we're connected to// Uncomment whatever type you're using!#define DHTTYPE DHT11 // DHT 11//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321//#define DHTTYPE DHT21 // DHT 21, AM2301DHT dht(DHTPIN, DHTTYPE);// You should get Auth Token in the Blynk App.// Go to the Project Settings (nut icon).char auth[] = "TWÓJ TOKEN WYGENEROWANY W BLYNK";// Your WiFi credentials.// Set password to "" for open networks.char ssid[] = "NAZWA TWOJEJ SIECI WIFI RUTERA";char pass[] = "HASŁO DO TEJ SIECI";BlynkTimer timer;void setup(){// Debug consoleSerial.begin(9600);Blynk.begin(auth, ssid, pass);// You can also specify server://Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);dht.begin();// Setup a function to be called every secondtimer.setInterval(1000L, sendSensor);}void loop(){Blynk.run();timer.run();}void sendSensor(){float h = dht.readHumidity();float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheitif (isnan(h) || isnan(t)) {Serial.println("Failed to read from DHT sensor!");return;}// You can send any value at any time.// Please don't send more that 10 values per second.Blynk.virtualWrite(V5, h);Blynk.virtualWrite(V6, t);}
Gotowy efekt