Turinys:

Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies: 10 žingsnių
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies: 10 žingsnių

Video: Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies: 10 žingsnių

Video: Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies: 10 žingsnių
Video: Exposing Digital Photography by Dan Armendariz 2024, Lapkritis
Anonim
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies
Sukurkite vidinį IoT oro kokybės jutiklį, nereikia debesies

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

Paruoškite „Arduino“aplinką ESP8266
Paruoškite „Arduino“aplinką ESP8266
  1. Įdiekite naujausią „Arduino IDE“versiją (šiuo metu yra 1.8.2 versija).
  2. Norėdami įdiegti „esp8266“palaikymą, naudokite „Board Manager“. Išsamią instrukciją rasite čia:
  3. Nustatykite „NodeMCU 1.0“plokštės parinktis su 1 MB baitų SPIFFS failų sistema, kaip parodyta ekrano kopijoje

2 veiksmas: įtraukite reikalingas bibliotekas

Įtraukti reikalingas bibliotekas
Įtraukti 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ą

Tinkinkite standartinį pavyzdinį eskizą
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

Pridėkite BME680 jutiklį
Pridėkite BME680 jutiklį
Pridėkite BME680 jutiklį
Pridėkite BME680 jutiklį
Pridėkite BME680 jutiklį
Pridėkite BME680 jutiklį

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

Pridėkite PMS5003 jutiklį
Pridėkite PMS5003 jutiklį

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

Veiksmai
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

Paveikslėliai ir konfigūracijos failai
Paveikslėliai ir konfigūracijos failai
Paveikslėliai ir konfigūracijos failai
Paveikslėliai ir konfigūracijos failai
Paveikslėliai ir konfigūracijos failai
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: