Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
V tej vadnici boste izdelali nadzornik zraka, ki spremlja temperaturo, vlažnost in tlak zraka, pri čemer bodo vsi uporabljali Blynk, esp32, DHT22 in BMP180.
Zaloge
- esp32 mikrokrmilnik
- DHT22
- BMP180
1. korak: Namestite Blynk
Za ta projekt boste potrebovali Blynk, da boste lahko rezultate videli v realnem času kjer koli na svetu. Kako nastaviti Blynk, si lahko ogledate v moji prejšnji vadnici.
Korak: Namestite knjižnice
Prva knjižnica, ki jo boste morali namestiti, je knjižnica SparkFun RHT03 Arduino, ki jo lahko prenesete s spletnega mesta https://learn.sparkfun.com/tutorials/rht03-dht22-humidity-and-temperature-sensor-hookup-guide?_ga= 2.53575016.1755727564.1559404402-688583549.1496066940#knjižnica-namestitev. Po prenosu odprite Arduino IDE in pojdite v Sketch> Include Library> Add. ZIP Library … in izberite datoteko.zip, ki ste jo pravkar prenesli.
Druga knjižnica, ki jo morate namestiti, je knjižnica Adafruit BMP085, to lahko namestite tako, da odprete Sketch> Include Library> Manage Libraries … in nato poiščete »BMP085«.
3. korak: Ožičite vezje
Zdaj morate povezati vezje, to je precej enostavno vezje. Glejte sheme vezja zgoraj.
4. korak: Zgradite aplikacijo za Blynk
Potrebovali boste aplikacijo v Blynku, da boste lahko prejemali podatke in vam jih grafično prikazali v aplikaciji. Za njegovo izdelavo uporabite zgornje slike.
Pripomočki:
- 2x merilnika
- 1x vodoravna raven
Nastavitve merilnika temperature:
- Ime: Temperatura
- Barva: oranžna/rumena
- Vhod: V5 0-100
- Oznaka: /pin /° C
Interval osveževanja: 1 s
Nastavitve merilnika vlažnosti:
- Ime: Vlažnost
- Barva: svetlo modra
- Vhod V6 0-100
- Oznaka: /pin /%
- Interval osveževanja: 1 s
Nastavitve ravni tlaka
- Ime: Tlak
- Barva: oranžna/rumena
- Vhod: V7 950-1050
- Obrnjena os: Izklopljeno
- Interval osveževanja: 1 s
5. korak: Naložite kodo
Zdaj smo pripravljeni na kodo. Preden naložite kodo, morate narediti nekaj sprememb, poiščite vrstico char auth = "YourAuthToken"; in zamenjajte YourAuthToken z žetonom za preverjanje pristnosti, ki ste ga zapisali prej, in če uporabljate wifi, poiščite vrstico char ssid = "YourNetworkName"; in zamenjajte YourNetworkName z imenom vašega omrežja in poiščite vrstico char pass = "YourPassword"; in zamenjajte YourPassword z geslom za Wi -Fi. Po tem lahko kodo naložite.
#define BLYNK_PRINT Serijski #include
#vključi
#vključi
#vključi
#vključi
#vključi
/////////////////////
// Pin Definitions // /////////////////////// const int DHT22_DATA_PIN = 27; // DHT22 podatkovni pin const int FLAME_SENSOR_DATA_PIN = 32; // Podatkovni zatič senzorja plamena /////////////////////////// // RHT03 Ustvarjanje predmetov // //////////// /////////////////// RHT03 rht; // Tako nastane objekt RTH03, ki ga bomo uporabili za interakcijo s senzorjem ///////////////////////////// BMP180/BMP085 Ustvarjanje predmetov // //////////////////////////// Adafruit_BMP085 bmp; // V aplikaciji Blynk bi morali dobiti žeton za preverjanje pristnosti. // Pojdite na Nastavitve projekta (ikona matice). char auth = "YourAuthToken"; // Vaše poverilnice WiFi. // Za odprta omrežja nastavite geslo na "". char ssid = "Ime vašega omrežja"; char pass = "Vaša geslo"; Časovnik BlynkTimer; void sendSensor () {int updateRet = rht.update (); if (updateRet == 1) {// Funkcije vlažnosti (), tempC () in tempF () je mogoče poklicati - po // uspešni posodobitvi () - za zadnjo vrednost vlažnosti in temperature // latestHumidity = rht.humidity (); float latestTempC = rht.tempC (); float latestTempF = rht.tempF (); float latestPressure = bmp.readPressure ()/100; Blynk.virtualWrite (V5, najnovejša TempC); Blynk.virtualWrite (V6, najnovejša vlažnost); Blynk.virtualWrite (V7, najnovejši pritisk); } else {// Če posodobitev ni uspela, poskusite odložiti za RHT_READ_INTERVAL_MS ms, preden // poskusite znova. zamuda (RHT_READ_INTERVAL_MS); }} void setup () {// Konzola za odpravljanje napak Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Določite lahko tudi strežnik: //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 ("Ni bilo mogoče najti veljavnega senzorja BMP085/BMP180, preverite ožičenje!"); while (1) {}} // Nastavitev funkcije za klicanje vsakega drugega timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }
Korak 6: Končano
Dobro opravljeno, vezje je zdaj končano in ga lahko postavite na mesto, kjer je napajano, in bo v vaš telefon poslalo podatke o temperaturi, vlažnosti in tlaku!