Turinys:
- Prekės
- 1 žingsnis: Paruoškite „Arduino“aplinką ESP8266
- 2 veiksmas: įtraukite reikalingas bibliotekas
- 3 veiksmas: tinkinkite standartinį pavyzdinį eskizą
- 4 veiksmas: įkelkite žiniatinklio vartotojo sąsają
- 5 veiksmas: pridėkite jutiklį BME680
- 6 veiksmas: pridėkite jutiklį PMS5003
- 7 veiksmas: kai kurių tinklo funkcijų pridėjimas
- 8 veiksmas: pridėkite tam tikrą registravimą
- 9 žingsnis: veiksmai
- 10 veiksmas: paveikslėliai ir konfigūracijos failai
Video: Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies: 10 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Vidaus ar lauko oro kokybė priklauso nuo daugelio taršos šaltinių, taip pat nuo oro sąlygų.
Šis įrenginys užfiksuoja kai kuriuos įprastus ir įdomiausius parametrus, naudojant 2 jutiklių lustus.
- Temperatūra
- Drėgmė
- Slėgis
- Organinės dujos
- Mikrodalelės
Čia naudojami jutikliai yra BME680 temperatūros, drėgmės, slėgio ir organinių dujų vertėms gauti, o PMS5003 - norint gauti mikro dalelių tankį.
Naudojant „HomeDing“biblioteką lengva sukurti įrenginį, kuris būtų prijungtas tik prie jūsų namų tinklo ir būtų pasiekiamas bei valdomas bet kuria tinklo naršykle. Komplekte yra elementų, leidžiančių naudoti dažniausiai naudojamus jutiklių lustus, įrenginius ir kitas paslaugas.
Tai taip pat suteikia išsamų sprendimą, kaip įrenginyje patalpinti žiniatinklio pusę, o ne naudoti debesies pagrindu sukurtą sprendimą jutiklių duomenims rodyti ir sąveikauti su įrenginiu.
Prekės
Viskas, ko jums reikia norint sukurti šį projektą, yra ESP8266 plokštė, tokia kaip „nodemcu“plokštė ir jutiklių rinkinys, skirtas oro kokybei matuoti. Šiame projekte naudojama „HomeDing“biblioteka palaiko kai kuriuos įprastus temperatūros, drėgmės, slėgio ir kokybės jutiklių lustus. Čia naudojamas BMP680 lustas.
- USB kištukas ir „micro-usb“kabelis, skirtas maitinti.
- 1 „nodemcu“plokštė su ESP8266 procesoriumi.
- 1 BME680 jutiklio pertraukimo plokštė.
- 1 PM2.5 oro dalelių lazerio jutiklis, tipas PMS5003
BME680 jutiklį lengva pakeisti DHT22 jutikliu, nes juos taip pat palaiko biblioteka.
1 žingsnis: Paruoškite „Arduino“aplinką ESP8266
- Įdiekite naujausią „Arduino IDE“versiją (šiuo metu yra 1.8.2 versija).
- Norėdami įdiegti „esp8266“palaikymą, naudokite „Board Manager“. Išsamią instrukciją rasite čia:
- Nustatykite „NodeMCU 1.0“plokštės parinktis su 1 MB baitų SPIFFS failų sistema, kaip parodyta ekrano kopijoje
2 veiksmas: įtraukite reikalingas bibliotekas
„HomeDing“biblioteka naudoja kai kurias įprastas papildomas bibliotekas, kad jutikliai ir ekranai veiktų.
Įdiegę „HomeDing“biblioteką pamatysite iššokantįjį langą su šiomis reikalingomis bibliotekomis, kurias galima automatiškai įdiegti, kaip parodyta paveikslėlyje, ir jas visas lengva įdiegti.
Kartais (dėl nežinomų priežasčių) bibliotekų diegimas nepavyksta, todėl visas reikalingas bibliotekas reikia įdiegti rankiniu būdu.
Daugiau informacijos apie reikalingas bibliotekas rasite dokumentacijos svetainėje adresu
Tai yra dabartinių reikalingų bibliotekų sąrašas:
- „Adafruit NeoPixel“
- LiquidCrystal_PCF8574.h
- ESP8266 ir ESP32 Oled tvarkyklė SSD1306 ekranui
- „RotaryEncoder“
- DHT jutiklių biblioteka, skirta ESPx
- „OneWire“
PMS5003 oro dalelių lazerio jutiklis palaiko ryšį naudodamas 9600 baudų nuosekliosios linijos signalą. Šis signalas užfiksuojamas naudojant „SoftwareSerial“biblioteką, kuri pateikiama kartu su ESP8266 įrankių įdiegimu. Įsitikinkite, kad senesnė versija nėra įdiegta kaip biblioteka.
3 veiksmas: tinkinkite standartinį pavyzdinį eskizą
Į standartinį pavyzdį jau įtraukti kai kurie dažniau naudojami jutikliai kaip elementai, todėl reikės tik tam tikros konfigūracijos.
Tai taikoma BME680 jutikliui, kurį palaiko „BME680 Element“.
PMS5003 jutiklis yra retesnis ir jį reikia suaktyvinti įtraukiant „PMS Element“į programinę -aparatinę įrangą. Tai daroma apibrėžiant #define HOMEDING_INCLUDE_PMS eskizo elementų registro skiltyje
#define HOMEDING_INCLUDE_BME680#apibrėžti HOMEDING_INCLUDE_PMS
Kad būtų paprasčiau pridėti naują įrenginį prie tinklo, galite pridėti savo namų „WiFi“SSID ir slaptafrazę faile „secrets.h“šalia eskizo „standard.ino“. Bet taip pat galite naudoti integruotą „WiFi“tvarkyklę, kad pridėtumėte įrenginį prie tinklo be šios užkoduotos konfigūracijos.
Dabar viskas, kas susiję su eskizo įgyvendinimu, yra atlikta, o programinę įrangą galima surinkti ir įkelti.
4 veiksmas: įkelkite žiniatinklio vartotojo sąsają
Standartiniame pavyzdyje pateikiamas duomenų aplankas, kuriame yra visi žiniatinklio vartotojo sąsajos failai.
Prieš įkeldami šiuos failus, galbūt norėsite pridėti failų env.json ir config.json, kuriuos rasite šiame straipsnyje, nes tai palengvins.
Šių failų turinys daro IoT įrenginį ypatingą ir veikia kaip oro kokybės jutiklis. Tai išsamiai paaiškinta šioje istorijoje.
Naudokite ESP8266 failų įkėlimo įrankį ir įkelkite visus failus. Norint suaktyvinti konfigūraciją, reikia iš naujo paleisti.
5 veiksmas: pridėkite jutiklį BME680
BME680 jutiklis bendrauja su plokšte, naudodamas I2C magistralę.
Kadangi tai galbūt bendrinama su kitais plėtiniais, pvz., Kitais jutikliais ar ekranais, tai yra sukonfigūruota įrenginio lygiu env.json kartu su įrenginio tinklo pavadinimu. Čia yra ištrauktas įrenginio ir I2C nustatymų pavyzdys:
"prietaisas": {
"0": {"name": "airding", "description": "Oro kokybės jutiklis",… "i2c-scl": "D2", "i2c-sda": "D1"}}
Duonos lentoje galite pamatyti prijungimo kabelius prie jutiklio: 3.3V = raudona, GND = juoda, SCL = geltona, SDA = mėlyna
BME680 konfigūraciją galima naudoti config.json:
"bme680": {
"bd": {"address": "0x77", "readtime": "10s"}}
Veiksmus pridėsime vėliau.
Norėdami išbandyti sąranką, tiesiog naudokite naršyklę ir atidarykite https://airding/board.htm ir pamatysite faktines jutiklio reikšmes ir jos bus atnaujinamos maždaug kas 10 sekundžių:
6 veiksmas: pridėkite jutiklį PMS5003
Aš neturėjau jutiklio su duonai tinkančia jungtimi, todėl turėjau nupjauti vieną iš kabelio jungčių, naudodami lituoklį, kad tiesiogiai pritvirtintumėte jį prie „nodemcu“plokštės. Dar galite tai pamatyti paskutinėse nuotraukose.
Šio jutiklio galia turi būti paimta iš „Vin“, kuris paprastai maitinamas iš USB magistralės. GND yra tas pats, bet taip pat prieinamas prie „Vin“kaiščio.
Duomenys iš jutiklio perduodami standartiniu 9600 baudų nuosekliu formatu, todėl reikia sukonfigūruoti rx ir tx kaiščius ir skaitymo laiką:
"pms": {
"pm25": {"description": "pm25 dalelių jutiklis", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}
Veiksmus pridėsime vėliau.
Norėdami dar kartą išbandyti sąranką, tiesiog paleiskite įrenginį iš naujo ir naudokite naršyklę, atidarykite https://airding/board.htm ir pamatysite tikrąją rodomą jutiklio pm35 vertę ir jie bus atnaujinami maždaug kas 10 sekundžių, tačiau ši vertė paprastai yra nesikeičia dažnai.
Didesnes vertes galite gauti padėję žvakės šviesą šalia jutiklio, nes žvakė gamina daug šių dalelių.
Dabar viską galite įdėti į gražų korpusą, nes visas kitas konfigūracijas ir net programinės įrangos atnaujinimus galima atlikti nuotoliniu būdu.
7 veiksmas: kai kurių tinklo funkcijų pridėjimas
Įjungiamas šis konfigūracijos ištrauka env.json
- programinės įrangos atnaujinimas belaidžiu būdu
- leidžia aptikti tinklą naudojant SSDP tinklo protokolą ir nuskaito dabartinį laiką iš ntp serverio.
{
… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Klausykitės" belaidžio ryšio "OTA naujiniai"}}, "ssdp": {"0 ": {" Gamintojas ":" jūsų vardas "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}
Turėtumėte pritaikyti laiko juostą pagal savo vietą. Jei abejojate, galite naudoti svetainę https://www.timeanddate.com/, kad gautumėte kompensavimą iš UTC/GMT. „2“tinka Vokietijai vasarą.
Taip pat galite pakoreguoti „Ota“slaptažodį, perskaitę instrukcijas, susijusias su išsaugojimo režimu, esančiu dokumentacijoje adresu
Paleidę iš naujo, galite rasti skraidinimo įrenginį tinkle, o gavę atsakymą iš ntp serverio, pasiekiamas vietinis laikas.
8 veiksmas: pridėkite tam tikrą registravimą
Tik faktinės vertės gali būti nepakankamos, todėl galima naudoti dar keletą elementų.
Šioje istorijoje žurnalo elementas ir „NPTTime Element“naudojami jutiklio reikšmių istorijai įrašyti į žurnalo failą, o šio elemento žiniatinklio vartotojo sąsaja gali parodyti ją kaip grafiką.
Ši konfigūracija sukuria du dujų ir dalelių žurnalo elementus:
{
"log": {"pm": {"description": "Žurnalas pm25", "failo pavadinimas": "/pmlog.txt", "fileize": "10000"}, "aq": {"description": " Dujų kokybės žurnalas "," failo pavadinimas ":" /aqlog.txt "," fileize ":" 10000 "}}
9 žingsnis: veiksmai
Dabar turime perkelti faktines vertes į žurnalo elementus naudodami veiksmus. Veiksmai naudoja URL žymėjimą, kad perduotų baidarę ir vertę tiksliniam elementui. Daugelis elementų palaiko skleidžiamus veiksmus tam tikruose įvykiuose, pavyzdžiui, naujos jutiklio vertės fiksavimas.
Veiksmai sukonfigūruoti elemente, kuris skleidžia veiksmus 2 būtini įrašai:
- Įvykis „pms/p25 onvalue“siunčia faktinę vertę elementui log/pm naudodami vertės veiksmą.
- Įvykis „bme680/bd ongas“siunčia faktinę vertę elementui log/pm naudodami vertės veiksmą.
{
"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}
Dabar visi elementai yra sukonfigūruoti.
10 veiksmas: paveikslėliai ir konfigūracijos failai
Štai keletas mano galutinio IoT oro kokybės jutiklio nuotraukų.
Prieš įkeliant konfigūracijos failus reikia pervadinti į *.json (Nr. Txt).
Nuorodos ir nuorodos
- „HomeDing“šaltinio kodo saugykla:
- Dokumentacija:
- Standartinis pavyzdys:
- BME680 elementas:
- PMS elementas:
- Žurnalo elementas:
- „NtpTime“elementas:
Rekomenduojamas:
Patalpų oro kokybės matuoklis: 5 žingsniai (su nuotraukomis)
Patalpų oro kokybės matuoklis: paprastas projektas, skirtas patikrinti jūsų namų oro kokybę. Kadangi pastaruoju metu daug apsistojame/dirbame iš namų, gali būti gera mintis stebėti oro kokybę ir priminti sau, kada laikas atidaryti langą ir įkvėpti gryno oro
Sukurkite savo DYI debesies lempą!: 13 žingsnių
Sukurkite savo DYI debesies lempą!: Kodėl statyti debesies lempą? Nes atrodo nuostabiai! Bent jau taip sako žmonės … Ei! Mano vardas Erikas. Šis projektas atsirado svarstant dovanas, kurias galėčiau padovanoti savo 3 metų seseriai. Debesų lempa yra ir dekoracija, ir specialiai šviesa
Sukurkite paprastą programą savo išmaniajam telefonui (nereikia koduoti): 10 žingsnių
Sukurkite paprastą programą savo išmaniajam telefonui (nereikia kodavimo): ATNAUJINTI: Ši technika yra pasenusi, dabar yra įvairių kitų programų kūrimo būdų. Tai gali nebeveikti. Mano pirmą kartą paskelbtą programą galima atsisiųsti „Android“programoje Turgus čia. Toliau pateikiama trumpa pamoka apie tai, kaip praktiškai bet
Oro kokybės stebėjimas naudojant dalelių fotoną: 11 žingsnių (su nuotraukomis)
Oro kokybės stebėjimas naudojant dalelių fotoną: Šiame projekte PPD42NJ dalelių jutiklis naudojamas matuoti oro kokybę (PM 2,5), esančią ore su dalelių fotonu. Jis ne tik rodo duomenis dalelių konsolėje ir dweet.io, bet ir rodo oro kokybę naudojant RGB šviesos diodą, jį pakeičiant
„AirCitizen“- oro kokybės stebėjimas: 11 žingsnių (su nuotraukomis)
„AirCitizen“- oro kokybės stebėjimas: Sveiki visi! Šiandien mes išmokysime jus, kaip atkurti mūsų projektą: „AirCitizen“, kurį sukūrė „AirCitizenPolytech“komanda!-Iš „OpenAir / What your air?“„AirCitizen“projektų tikslas - suteikti piliečiams galimybę aktyviai vertinti kokybę