Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
V tomto tutoriálu vytvoříte monitor vzduchu, který monitoruje teplotu, vlhkost a tlak vzduchu, vše pomocí Blynk, esp32, DHT22 a BMP180.
Zásoby
- Mikroprocesor esp32
- DHT22
- BMP180
Krok 1: Nastavení Blynk
K tomuto projektu budete potřebovat Blynka, abyste mohli vidět výsledky v reálném čase kdekoli na světě. Jak nastavit Blynk můžete vidět v mém předchozím tutoriálu.
Krok 2: Nainstalujte si knihovny
První knihovna, kterou budete muset nainstalovat, je SparkFun RHT03 Arduino Library, kterou si můžete stáhnout z https://learn.sparkfun.com/tutorials/rht03-dht22-humidity-and-temperature-sensor-hookup-guide?_ga= 2.53575016.1755727564.1559404402-688583549.1496066940#instalace knihovny. Po stažení otevřete Arduino IDE a přejděte do Sketch> Include Library> Add. ZIP Library… a vyberte soubor.zip, který jste právě stáhli.
Druhou knihovnou, kterou musíte nainstalovat, je knihovna Adafruit BMP085, kterou můžete nainstalovat tak, že přejdete do Sketch> Include Library> Manage Libraries … a poté vyhledáte 'BMP085'.
Krok 3: Zapojte obvod
Nyní musíte zapojit obvod, je to docela snadný obvod. Viz schémata zapojení výše.
Krok 4: Sestavte aplikaci pro Blynk
Budete potřebovat aplikaci v Blynku, abyste mohli data přijímat a nechat si je graficky ukázat v aplikaci. K jeho sestavení použijte obrázky výše.
Widgety:
- 2x měřidla
- 1x Horizontální úroveň
Nastavení měřiče teploty:
- Název: Teplota
- Barva: oranžová/žlutá
- Vstup: V5 0-100
- Štítek: /kolík /° C
Interval aktualizace: 1 s
Nastavení vlhkoměru:
- Název: Vlhkost
- Barva: světle modrá
- Vstup V6 0-100
- Štítek: /pin /%
- Interval aktualizace: 1 s
Nastavení úrovně tlaku
- Název: Tlak
- Barva: oranžová/žlutá
- Vstup: V7 950-1050
- Otočná osa: Vypnuto
- Interval aktualizace: 1 s
Krok 5: Nahrajte kód
Nyní jsme připraveni na kód. Před nahráním kódu budete muset provést několik změn, najít řádek char auth = "YourAuthToken"; a nahraďte YourAuthToken autentizačním tokenem, který jste si dříve zapsali, a pokud používáte wifi, najděte řádek char ssid = "YourNetworkName"; a nahraďte YourNetworkName názvem vaší sítě a najděte řádek char pass = "YourPassword"; a nahraďte své heslo heslem Wifi. Poté můžete nyní nahrát kód.
#define BLYNK_PRINT Sériové #zahrnout
#zahrnout
#zahrnout
#zahrnout
#zahrnout
#zahrnout
/////////////////////
// Definice pinů // ///////////////////////// const int DHT22_DATA_PIN = 27; // Datový pin DHT22 const int FLAME_SENSOR_DATA_PIN = 32; // Datový kolík senzoru plamene ///////////////////////////////// Vytvoření objektu RHT03 // //////////// /////////////////// RHT03 rht; // Tím se vytvoří objekt RTH03, který použijeme k interakci se senzorem ///////////////////////////////// BMP180/BMP085 Vytváření objektů // /////////////////////////////// Adafruit_BMP085 bmp; // V aplikaci Blynk byste měli získat Auth Token. // Přejděte do Nastavení projektu (ikona matice). char auth = "YourAuthToken"; // Vaše pověření WiFi. // U otevřených sítí nastavte heslo na „“. char ssid = "YourNetworkName"; char pass = "Vaše heslo"; Časovač BlynkTimer; void sendSensor () {int updateRet = rht.update (); if (updateRet == 1) {// Funkce vlhkosti (), tempC () a tempF () lze volat - po // úspěšné aktualizaci () - pro získání poslední hodnoty vlhkosti a teploty // hodnota latestHumidity = rht.humidity (); float latestTempC = rht.tempC (); float latestTempF = rht.tempF (); float latestPressure = bmp.readPressure ()/100; Blynk.virtualWrite (V5, latestTempC); Blynk.virtualWrite (V6, latestHumidity); Blynk.virtualWrite (V7, latestPressure); } else {// Pokud se aktualizace nezdařila, zkuste zpoždění o RHT_READ_INTERVAL_MS ms před // pokusem znovu. zpoždění (RHT_READ_INTERVAL_MS); }} void setup () {// Debug console Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Můžete také zadat server: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); rht.begin (DHT22_DATA_PIN); if (! bmp.begin ()) {Serial.println ("Nelze najít platný snímač BMP085/BMP180, zkontrolujte zapojení!"); while (1) {}} // Nastavení funkce, která se bude volat každý druhý timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }
Krok 6: Hotovo
Dobře, obvod je nyní kompletní a lze jej nyní umístit na místo, kde je napájen a bude do vašeho telefonu odesílat údaje o teplotě, vlhkosti a tlaku!