piątek, 5 marca 2021

INTELIGENTY DOM Z ARDUINO - stacja pogody z odczytem na smartfonie

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?



  • 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

 Schemat połączeń gotowego projektu






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, AM2301

DHT 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 console
  Serial.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 second
  timer.setInterval(1000L, sendSensor);
}

void loop()
{
  Blynk.run();
  timer.run();
}
void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
  
  if (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







Whatsapp Button works on Mobile Device only

Wpisz czego szukasz i kliknij w ikonkę lupy