Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
I denne opplæringen vil du bygge en luftmonitor som overvåker lufttemperatur, fuktighet og trykk, alt ved hjelp av Blynk, en esp32, en DHT22 og en BMP180.
Rekvisita
- esp32 mikrokontroller
- DHT22
- BMP180
Trinn 1: Konfigurer Blynk
Du trenger Blynk for dette prosjektet, slik at du kan se resultatene i sanntid hvor som helst i verden. Du kan se hvordan du konfigurerer Blynk i min forrige opplæring.
Trinn 2: Installer bibliotekene
Det første biblioteket du må installere er SparkFun RHT03 Arduino Library, du kan laste det ned fra https://learn.sparkfun.com/tutorials/rht03-dht22-humidity-and-temperature-sensor-hookup-guide?_ga= 2.53575016.1755727564.1559404402-688583549.1496066940#bibliotek-installasjon. Etter at du har lastet den ned, åpner du Arduino IDE og går til Sketch> Include Library> Add. ZIP Library … og velg.zip -filen du nettopp lastet ned.
Det andre biblioteket du trenger å installere er Adafruit BMP085 -biblioteket. Du kan installere dette ved å gå til Sketch> Include Library> Manage Libraries … og søk deretter etter 'BMP085'.
Trinn 3: Koble opp kretsen
Nå må du koble til kretsen, det er en ganske enkel krets. Se kretsskjemaene ovenfor.
Trinn 4: Bygg programmet for Blynk
Du trenger programmet i Blynk slik at du kan motta dataene og få dem vist deg i appen, grafisk. Bruk bildene ovenfor for å bygge den.
Widgets:
- 2x målere
- 1x Horisontalt nivå
Temp Gauge Innstillinger:
- Navn: Temperatur
- Farge: oransje/gul
- Inngang: V5 0-100
- Etikett: /pin /° C
Oppdateringsintervall: 1 sek
Innstillinger for fuktighetsmåler:
- Navn: Fuktighet
- Farge: Lyseblå
- Inngang V6 0-100
- Etikett: /pin /%
- Oppdateringsintervall: 1 sek
Trykknivåinnstillinger
- Navn: Pressure
- Farge: oransje/gul
- Inngang: V7 950-1050
- Vend aksen: Av
- Oppdateringsintervall: 1 sek
Trinn 5: Last opp koden
Nå er vi klare for koden. Før du laster opp koden må du gjøre noen endringer. Finn linjen char auth = "YourAuthToken"; og erstatt YourAuthToken med Auth Token du skrev ned tidligere, og hvis du bruker wifi, finn linjen char ssid = "YourNetworkName"; og erstatt YourNetworkName med nettverksnavnet ditt og finn linjen char pass = "YourPassword"; og erstatt YourPassword med ditt Wifi -passord. Etter å ha gjort dette kan du nå laste opp koden.
#define BLYNK_PRINT Serial #include
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
/////////////////////
// Pin Definitions // ////////////////////////// const int DHT22_DATA_PIN = 27; // DHT22 data pin const int FLAME_SENSOR_DATA_PIN = 32; // Flammesensordatapinne //////////////////////////////// // RHT03 Object Creation // //////////// ///////////////////// RHT03 rht; // Dette oppretter et RTH03 -objekt, som vi vil bruke til å samhandle med sensoren ///////////////////////////// // BMP180/BMP085 Object Creation // ///////////////////////////////// Adafruit_BMP085 bmp; // Du bør få Auth Token i Blynk -appen. // Gå til prosjektinnstillingene (nøtterikon). char auth = "YourAuthToken"; // WiFi -legitimasjonen din. // Sett passordet til "" for åpne nettverk. char ssid = "Ditt nettverksnavn"; char pass = "YourPassword"; BlynkTimer timer; void sendSensor () {int updateRet = rht.update (); hvis (updateRet == 1) {// Fuktighet (), tempC () og tempF () funksjoner kan kalles - etter // en vellykket oppdatering () - for å få den siste fuktigheten og temperaturen // verdi flyt latestHumidity = rht.fuktighet (); float latestTempC = rht.tempC (); float latestTempF = rht.tempF (); float latestPressure = bmp.readPressure ()/100; Blynk.virtualWrite (V5, latestTempC); Blynk.virtualWrite (V6, latestHumidity); Blynk.virtualWrite (V7, siste trykk); } annet {// Hvis oppdateringen mislyktes, kan du prøve å utsette RHT_READ_INTERVAL_MS ms før // prøve igjen. forsinkelse (RHT_READ_INTERVAL_MS); }} ugyldig oppsett () {// Debug -konsoll Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Du kan også angi server: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); rht.begynner (DHT22_DATA_PIN); if (! bmp.begin ()) {Serial.println ("Kunne ikke finne en gyldig BMP085/BMP180 -sensor, sjekk ledninger!"); mens (1) {}} // Sett opp en funksjon som skal kalles annenhvert timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }
Trinn 6: Ferdig
Godt gjort, kretsen er nå fullført og kan nå plasseres på et sted hvor den er drevet og vil sende temperatur-, fuktighets- og trykkdata til telefonen din!