Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šioje pamokoje jūs sukursite oro monitorių, kuris stebi oro temperatūrą, drėgmę ir slėgį, naudodami „Blynk“, esp32, DHT22 ir BMP180.
Prekės
- esp32 mikrovaldiklis
- DHT22
- BMP180
1 žingsnis: nustatykite „Blynk“
Šiam projektui jums reikės „Blynk“, kad galėtumėte pamatyti rezultatus realiuoju laiku bet kurioje pasaulio vietoje. Kaip nustatyti „Blynk“, galite pamatyti mano ankstesnėje pamokoje.
2 veiksmas: įdiekite bibliotekas
Pirmoji biblioteka, kurią turėsite įdiegti, yra „SparkFun RHT03 Arduino“biblioteka, kurią galite atsisiųsti iš https://learn.sparkfun.com/tutorials/rht03-dht22-humidity-and-temperature-sensor-hookup-guide?_ga= 2.53575016.1755727564.1559404402-688583549.1496066940#biblioteka-diegimas. Atsisiuntę atidarykite „Arduino IDE“ir eikite į Eskizas> Įtraukti biblioteką> Pridėti. ZIP biblioteką … ir pasirinkite ką tik atsisiųstą.zip failą.
Antroji biblioteka, kurią reikia įdiegti, yra „Adafruit BMP085“biblioteka, kurią galite įdiegti eidami į „Eskizas“> „Įtraukti biblioteką“> „Tvarkyti bibliotekas …“, tada ieškokite „BMP085“.
3 žingsnis: prijunkite grandinę
Dabar jums reikia prijungti grandinę, tai yra gana lengva grandinė. Žiūrėkite aukščiau pateiktą grandinės schemą.
4 žingsnis: sukurkite „Blynk“programą
Jums reikės programos „Blynk“, kad galėtumėte gauti duomenis ir juos grafiškai parodyti programoje. Norėdami jį sukurti, naudokite aukščiau esančias nuotraukas.
Valdikliai:
- 2x matuokliai
- 1x horizontalus lygis
Temperatūros matuoklio nustatymai:
- Pavadinimas: Temperatūra
- Spalva: oranžinė/geltona
- Įvestis: V5 0-100
- Etiketė: /pin /° C
Atnaujinimo intervalas: 1 sek
Drėgmės matuoklio nustatymai:
- Pavadinimas: Drėgmė
- Spalva: šviesiai mėlyna
- Įėjimas V6 0-100
- Etiketė: /pin /%
- Atnaujinimo intervalas: 1 sek
Slėgio lygio nustatymai
- Pavadinimas: slėgis
- Spalva: oranžinė/geltona
- Įvestis: V7 950-1050
- Pasukimo ašis: išjungta
- Atnaujinimo intervalas: 1 sek
5 veiksmas: įkelkite kodą
Dabar mes pasiruošę kodui. Prieš įkeldami kodą turėsite atlikti keletą pakeitimų, suraskite eilutę char auth = "YourAuthToken"; ir pakeiskite „YourAuthToken“anksčiau užrašytu „Auth Token“ir, jei naudojate „wifi“, raskite eilutę char ssid = "YourNetworkName"; ir pakeiskite „YourNetworkName“savo tinklo pavadinimu ir raskite eilutę char pass = "YourPassword"; ir pakeiskite „YourPassword“savo „Wi -Fi“slaptažodžiu. Tai atlikę, dabar galite įkelti kodą.
#define BLYNK_PRINT Serial #include
#įtraukti
#įtraukti
#įtraukti
#įtraukti
#įtraukti
/////////////////////
// Smeigtukų apibrėžimai // ///////////////////// const int DHT22_DATA_PIN = 27; // DHT22 duomenų kaištis const int FLAME_SENSOR_DATA_PIN = 32; // Liepsnos jutiklio duomenų smeigtukas /////////////////////////// // RHT03 Objekto kūrimas // ////////// ////////////////// RHT03 rht; // Taip sukuriamas RTH03 objektas, kurį naudosime sąveikai su jutikliu ///////////////////////////// BMP180/BMP085 Objekto kūrimas // //////////////////////////// Adafruit_BMP085 bmp; // „Blynk“programoje turėtumėte gauti „Auth Token“. // Eikite į projekto nustatymus (veržlės piktograma). char auth = "YourAuthToken"; // Jūsų „WiFi“prisijungimo duomenys. // Atviriems tinklams nustatykite slaptažodį į „“. char ssid = "Jūsų tinklo pavadinimas"; char pass = "Jūsų slaptažodis"; „BlynkTimer“laikmatis; void sendSensor () {int updateRet = rht.update (); if (updateRet == 1) {// Drėgmės (), tempC () ir tempF () funkcijas galima iškviesti - po // sėkmingo atnaujinimo () -, kad būtų gautas paskutinis drėgmės ir temperatūros // vertės kintamasis latestHumidity = rht.humidity (); float latestTempC = rht.tempC (); float latestTempF = rht.tempF (); float latestPressure = bmp.readPressure ()/100; Blynk.virtualWrite (V5, latestTempC); „Blynk.virtualWrite“(V6, naujausia drėgmė); „Blynk.virtualWrite“(V7, naujausias slėgis); } else {// Jei atnaujinti nepavyko, pabandykite atidėti RHT_READ_INTERVAL_MS ms prieš // bandydami dar kartą. vėlavimas (RHT_READ_INTERVAL_MS); }} void setup () {// Derinimo pultas Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Taip pat galite nurodyti 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 ("Nepavyko rasti galiojančio BMP085/BMP180 jutiklio, patikrinkite laidus!"); while (1) {}} // Nustatykite funkciją, kuri būtų vadinama kas antrą laikmatį.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }
6 žingsnis: Baigta
Gerai padaryta, grandinė dabar baigta ir dabar gali būti patalpinta toje vietoje, kur ji yra maitinama, ir į jūsų telefoną siųs temperatūros, drėgmės ir slėgio duomenis!