INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
In hierdie tutoriaal bou u 'n lugmonitor wat die lugtemperatuur, humiditeit en druk monitor, wat almal gebruik maak van Blynk, 'n esp32, 'n DHT22 en 'n BMP180.
Voorrade
- esp32 mikrobeheerder
- DHT22
- BMP180
Stap 1: Stel Blynk op
U benodig Blynk vir hierdie projek, sodat u die resultate intyds oral in die wêreld kan sien. U kan sien hoe u Blynk opstel in my vorige tutoriaal.
Stap 2: Installeer die biblioteke
Die eerste biblioteek wat u moet installeer, is die SparkFun RHT03 Arduino-biblioteek, u kan dit aflaai van https://learn.sparkfun.com/tutorials/rht03-dht22-humidity-and-temperature-sensor-hookup-guide?_ga= 2.53575016.1755727564.1559404402-688583549.1496066940#biblioteek-installasie. Nadat u dit afgelaai het, maak die Arduino IDE oop en gaan na Sketch> Include Library> Add. ZIP Library … en kies die zip -lêer wat u pas afgelaai het.
Die tweede biblioteek wat u moet installeer, is die Adafruit BMP085 -biblioteek. U kan dit installeer deur in Sketch> Biblioteek in te sluit> Biblioteke te bestuur … soek dan 'BMP085'.
Stap 3: Draai die kring om
Nou moet u die kring aansluit, dit is 'n redelik maklike kring. Sien die kringskemas hierbo.
Stap 4: Bou die toepassing vir Blynk
U het die toepassing in Blynk nodig, sodat u die data grafies kan ontvang en in die app kan wys. Gebruik die foto's hierbo om dit te bou.
Widgets:
- 2x meters
- 1x Horisontale vlak
Temperatuurmeterinstellings:
- Naam: temperatuur
- Kleur: oranje/geel
- Invoer: V5 0-100
- Etiket: /pen /° C
Herlaai interval: 1 sek
Humiditeitsinstellings:
- Naam: humiditeit
- Kleur: ligblou
- Invoer V6 0-100
- Etiket: /pin /%
- Herlaai interval: 1 sek
Drukvlak instellings
- Naam: druk
- Kleur: oranje/geel
- Invoer: V7 950-1050
- Draai -as: af
- Herlaai interval: 1 sek
Stap 5: Laai die kode op
Nou is ons gereed vir die kode. Voordat u die kode oplaai, moet u 'n paar veranderinge aanbring; vind die reël char auth = "YourAuthToken"; en vervang YourAuthToken met die Auth Token wat u vroeër neergeskryf het, en vind die lyn char ssid = "YourNetworkName" as u wifi gebruik; en vervang YourNetworkName met u netwerknaam en vind die line char pass = "YourPassword"; en vervang YourPassword met u Wifi -wagwoord. Nadat u dit gedoen het, kan u die kode nou oplaai.
#define BLYNK_PRINT Serial #include
#insluit
#insluit
#insluit
#insluit
#insluit
/////////////////////
// Speldefinisies // ///////////////////////// const int DHT22_DATA_PIN = 27; // DHT22 data pin const int FLAME_SENSOR_DATA_PIN = 32; // Vlam sensor data pen //////////////////////////////// RHT03 skepping van voorwerpe // ////////// ///////////////////// RHT03 rht; // Dit skep 'n RTH03 -voorwerp wat ons sal gebruik om met die sensor te werk Voorwerpskepping // /////////////////////////////// Adafruit_BMP085 bmp; // U moet Auth Token in die Blynk -app kry. // Gaan na die projekinstellings (moer -ikoon). char auth = "YourAuthToken"; // U WiFi -geloofsbriewe. // Stel wagwoord op "" vir oop netwerke. char ssid = "Jou netwerknaam"; char pass = "YourPassword"; BlynkTimer timer; void sendSensor () {int updateRet = rht.update (); if (updateRet == 1) {// Die humiditeit (), tempC () en tempF () funksies kan genoem word - na // 'n suksesvolle opdatering () - om die laaste humiditeit en temperatuur // waarde float te kry latestHumidity = rht.humidity (); float latestTempC = rht.tempC (); float latestTempF = rht.tempF (); float latestPressure = bmp.readPressure ()/100; Blynk.virtualWrite (V5, latestTempC); Blynk.virtualWrite (V6, nuutste Humiditeit); Blynk.virtualWrite (V7, nuutste druk); } anders {// As die opdatering misluk, probeer dan om RHT_READ_INTERVAL_MS ms uit te stel voordat // weer probeer. vertraging (RHT_READ_INTERVAL_MS); }} ongeldige opstelling () {// Ontfoutkonsole Serial.begin (9600); Blynk.begin (auth, ssid, pass); // U kan ook bediener spesifiseer: //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); as (! bmp.begin ()) {Serial.println ("Kan nie 'n geldige BMP085/BMP180 -sensor vind nie, kyk na bedrading!"); terwyl (1) {}} // Stel 'n funksie op wat elke tweede timer.setInterval (1000L, sendSensor) genoem moet word; } leemte -lus () {Blynk.run (); timer.run (); }
Stap 6: klaar
Welgedaan, die kring is nou voltooi en kan nou op 'n plek waar dit aangedryf word, geplaas word en data oor temperatuur, humiditeit en druk na u telefoon stuur!