Spisu treści:

Jeszcze jedna stacja pogodowa Arduino (ESP-01 i BMP280 i DHT11 i OneWire): 4 kroki
Jeszcze jedna stacja pogodowa Arduino (ESP-01 i BMP280 i DHT11 i OneWire): 4 kroki

Wideo: Jeszcze jedna stacja pogodowa Arduino (ESP-01 i BMP280 i DHT11 i OneWire): 4 kroki

Wideo: Jeszcze jedna stacja pogodowa Arduino (ESP-01 i BMP280 i DHT11 i OneWire): 4 kroki
Wideo: Mądry dom za grosze #7 - Inteligentny barometr działający po Wifi za 20zł | DIY 2024, Grudzień
Anonim
Jeszcze jedna stacja pogodowa Arduino (ESP-01 i BMP280 i DHT11 i OneWire)
Jeszcze jedna stacja pogodowa Arduino (ESP-01 i BMP280 i DHT11 i OneWire)

Tutaj możesz znaleźć jedną iterację korzystania z OneWire z bardzo kilkoma pinami ESP-01. Urządzenie utworzone w tej instrukcji łączy się z wybraną siecią Wifi (musisz mieć poświadczenia…) Zbiera dane sensoryczne z BMP280 i DHT11 i wysyła zebrane dane na podany kanał ThingSpeak. Zakładam, że wiesz, jak wgrać szkic do swojego ESP-01, więc nie będę wchodzić w te szczegóły. Bez regulatora napięcia układ musi być zasilany przy maks. 3,3 V DC. Nie dodaje się zbyt wiele tekstu, samouczek powinien być od tego momentu prosty.

Krok 1: Krok 1: BOM

Krok 1: BOM
Krok 1: BOM
Krok 1: BOM
Krok 1: BOM
Krok 1: BOM
Krok 1: BOM
Krok 1: BOM
Krok 1: BOM

Sprzęt komputerowy:

1 x moduł Wifi: ESP-01 (używam wersji 1024 KB)

1 x czujnik ciśnienia i temperatury: BMP280

1 x czujnik wilgotności i temperatury: DHT11

1 x Regulator napięcia AMS1117 (opcjonalnie do bezpośredniego zasilania lub można użyć dowolnego innego, który może regulować napięcie wejściowe do stałego 3,3 V)

Krok 2: Krok 2: Okablowanie

Krok 2: Okablowanie
Krok 2: Okablowanie

ESP-01 VCC do 3.3VESP-01 GND do GNDESP-01 TX do DHT11 DATAESP-01 GPIO0 do BMP280 SDAESP-01 GPIO2 do BMP280 SCLDHT11 VCC do 3.3VDHT11 GND do GNDBMP280 VCC do 3.3VBMP280 GND do GND

Krok 3: Krok 3: Kod

#include #include #include //CHECK #define kopalnia BMP280_ADDRESS działa z (0x76) #include #define DHTPIN 1 //GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3=Rx const char* ssid = "asd "; //TWÓJ SSID WIFI const char* hasło = "asd"; //TWÓJ WIFIPASS const char* host = "api.thingspeak.com"; const char* writeAPIKey = "asd"; //TWÓJ KLUCZ API //DHT11 stuff float temperature_buiten; temperatura pływaka_buiten2; DHT dht(DHTPIN, DHTTYPE, 15); //BMP280 Adafruit_BMP280 bmp; void setup() { //I2C stuff Wire.pins(0, 2); Wire.begin(0, 2); //DHT1 dht.początek(); //BMP280 if (!bmp.begin()) { // Serial.println("Brak BMP280"); // while (1) {} } //Połącz z siecią WiFi WiFi.begin(ssid, hasło); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void loop() { //DHT11 float wilgotność = dht.readHumidity(); temperatura pływaka = dht.odczytajTemperatura(); if (isnan(wilgotność) || isnan(temperatura)) { return; } //BMP280 String t = String(bmp.readTemperature()); String p = String(bmp.readPressure()); //POŁĄCZENIE TCP Klient WiFiClient; const int httpPort = 80; if (!client.connect(host, httpPort)) { return; } String url = "/update?key="; url += writeAPIKey; url += "&field1="; url += Ciąg(temperatura); //DHT11 CELSIUS url += "&field2="; url += Ciąg(wilgotność); //DHT11 WILGOTNOŚĆ WZGLĘDNA url +="&field3="; url +=String(bmp.odczytTemperatura()); //BMP280 CELSIUS url +="&field4="; url +=String(bmp.readPressure()/100); //BMP280 MILLIBAR URL +="&field5="; url +=String(bmp.readAltitude(1013.25)); //MIERNIK BMP280 url +="&field6="; url +=String((temperatura+bmp.odczytajTemperatura())/2); //DHT11 + BMP280 AVERAGE CELSIUS url += "\r\n"; // Wyślij żądanie do serwera client.print(String("GET") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Połączenie: zamknij\r \n\r\n"); opóźnienie (1000); }

Zalecana: