Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
U ovom vodiču izradit ćete monitor zraka koji prati temperaturu, vlažnost i tlak zraka, a sve pomoću Blynk -a, esp32, DHT22 i BMP180.
Pribor
- esp32 Mikrokontroler
- DHT22
- BMP180
Korak 1: Postavite Blynk
Za ovaj projekt trebat će vam Blynk kako biste rezultate mogli vidjeti u stvarnom vremenu bilo gdje u svijetu. Možete vidjeti kako postaviti Blynk u mom prethodnom vodiču.
Korak 2: Instalirajte knjižnice
Prva biblioteka koju trebate instalirati je SparkFun RHT03 Arduino knjižnica, koju možete preuzeti s https://learn.sparkfun.com/tutorials/rht03-dht22-humidity-and-temperature-sensor-hookup-guide?_ga= 2.53575016.1755727564.1559404402-688583549.1496066940#biblioteka-instalacija. Nakon preuzimanja otvorite Arduino IDE i idite u Sketch> Include Library> Add. ZIP Library … i odaberite.zip datoteku koju ste upravo preuzeli.
Druga biblioteka koju trebate instalirati je Adafruit BMP085 knjižnica, koju možete instalirati tako da odete u Sketch> Include Library> Manage Libraries …, a zatim potražite 'BMP085'.
Korak 3: Ožičite krug
Sada morate spojiti krug, to je prilično jednostavan krug. Pogledajte gornje sheme kola.
Korak 4: Izradite aplikaciju za Blynk
Trebat će vam aplikacija u Blynku kako biste mogli primiti podatke i prikazati vam ih u aplikaciji, grafički. Za njegovu izradu upotrijebite gornje slike.
Widgeti:
- 2x mjerači
- 1x vodoravna razina
Postavke mjerača temperature:
- Naziv: Temperatura
- Boja: Narančasta/Žuta
- Ulaz: V5 0-100
- Oznaka: /pin /° C
Interval osvježavanja: 1 sek
Postavke mjerača vlage:
- Naziv: Vlažnost
- Boja: Svijetlo plava
- Ulaz V6 0-100
- Oznaka: /pin /%
- Interval osvježavanja: 1 sek
Postavke razine tlaka
- Naziv: Tlak
- Boja: Narančasta/Žuta
- Ulaz: V7 950-1050
- Okretna os: Isključeno
- Interval osvježavanja: 1 sek
Korak 5: Prenesite kôd
Sada smo spremni za kod. Prije učitavanja koda morat ćete unijeti nekoliko izmjena, pronaći redak char auth = "YourAuthToken"; i zamijenite YourAuthToken tokenom autorizacije koji ste ranije zapisali, a ako koristite wifi, pronađite redak char ssid = "YourNetworkName"; i zamijenite YourNetworkName svojim imenom mreže i pronađite red char pass = "YourPassword"; i zamijenite svoju lozinku lozinkom za WiFi. Nakon što to učinite, sada možete učitati kôd.
#define BLYNK_PRINT Serijski #include
#uključi
#uključi
#uključi
#uključi
#uključi
/////////////////////
// Pin Definitions // /////////////////////// const int DHT22_DATA_PIN = 27; // DHT22 pin pin const int FLAME_SENSOR_DATA_PIN = 32; // pin podataka senzora plamena /////////////////////////// // RHT03 Stvaranje objekta // //////////// /////////////////// RHT03 rht; // Ovo stvara objekt RTH03, koji ćemo koristiti za interakciju sa senzorom ///////////////////////////// BMP180/BMP085 Stvaranje objekta // ///////////////////////////// Adafruit_BMP085 bmp; // Trebali biste dobiti Auth Token u aplikaciji Blynk. // Idite na Postavke projekta (ikona matice). char auth = "YourAuthToken"; // Vaše WiFi vjerodajnice. // Postavi lozinku na "" za otvorene mreže. char ssid = "Ime vaše mreže"; char pass = "Vaša lozinka"; BlynkTimer mjerač vremena; void sendSensor () {int updateRet = rht.update (); if (updateRet == 1) {// Funkcije vlažnosti (), tempC () i tempF () mogu se pozvati - nakon // uspješnog ažuriranja () - za dobivanje posljednje vlažnosti i temperature // vrijednost pluta latestHumidity = rht.humidity (); float latestTempC = rht.tempC (); float latestTempF = rht.tempF (); float latestPressure = bmp.readPressure ()/100; Blynk.virtualWrite (V5, najnovijiTempC); Blynk.virtualWrite (V6, najnovija vlažnost); Blynk.virtualWrite (V7, najnovijiPritisak); } else {// Ako ažuriranje nije uspjelo, pokušajte odgoditi RHT_READ_INTERVAL_MS ms prije nego // pokušate ponovno. kašnjenje (RHT_READ_INTERVAL_MS); }} void setup () {// Konzola za otklanjanje pogrešaka Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Također možete navesti poslužitelj: //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 ("Nije moguće pronaći važeći BMP085/BMP180 senzor, provjerite ožičenje!"); while (1) {}} // Postavljanje funkcije koja će se zvati svaki drugi timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }
Korak 6: Završeno
Bravo, krug je sada dovršen i sada se može postaviti na mjesto gdje se napaja te će slati podatke o temperaturi, vlažnosti i tlaku na vaš telefon!