Sisällysluettelo:

Rakenna sisäinen IoT -ilmanlaatutunnistin Ei pilviä: 10 vaihetta
Rakenna sisäinen IoT -ilmanlaatutunnistin Ei pilviä: 10 vaihetta

Video: Rakenna sisäinen IoT -ilmanlaatutunnistin Ei pilviä: 10 vaihetta

Video: Rakenna sisäinen IoT -ilmanlaatutunnistin Ei pilviä: 10 vaihetta
Video: On aika viedä asianhallinta pilveen! – Dynasty 10 pilviratkaisuna 2024, Kesäkuu
Anonim
Rakenna sisäinen IoT -ilmanlaatutunnistin ilman pilveä
Rakenna sisäinen IoT -ilmanlaatutunnistin ilman pilveä
Rakenna sisäinen IoT -ilmanlaatutunnistin ilman pilveä
Rakenna sisäinen IoT -ilmanlaatutunnistin ilman pilveä
Rakenna sisäinen IoT -ilmanlaatutunnistin ilman pilveä
Rakenna sisäinen IoT -ilmanlaatutunnistin ilman pilveä
Rakenna sisäinen IoT -ilmanlaatutunnistin ilman pilveä
Rakenna sisäinen IoT -ilmanlaatutunnistin ilman pilveä

Sisä- tai ulkoilman laatu riippuu monista saastelähteistä ja myös säästä.

Tämä laite kaappaa joitain yleisimpiä ja mielenkiintoisimpia parametreja käyttämällä 2 anturisirua.

  • Lämpötila
  • Kosteus
  • Paine
  • Orgaaninen kaasu
  • Mikrohiukkaset

Tässä käytettyjä antureita ovat BME680 lämpötilan, kosteuden, paineen ja orgaanisen kaasun arvojen mittaamiseen ja PMS5003 mikrohiukkasten tiheyden saamiseksi.

HomeDing -kirjaston avulla on helppo rakentaa laite, joka on yhdistetty vain kotiverkkoon ja joka on tavoitettavissa ja hallittavissa millä tahansa verkon selaimella. Sen mukana tulee valikoima elementtejä, jotka mahdollistavat yleisimpien anturisirujen, laitteiden ja muiden palvelujen käytön.

Se tarjoaa myös täydellisen ratkaisun web -puolen isännöimiseen laitteen sisällä sen sijaan, että käyttäisimme pilvipohjaista ratkaisua anturitietojen näyttämiseen ja vuorovaikutukseen laitteen kanssa.

Tarvikkeet

Tämän projektin rakentamiseen tarvitset vain ESP8266 -pohjaisen levyn, kuten nodemcu -kortin ja ilmanlaatua mittaavien anturien sarjan. Tässä projektissa käytetty HomeDing -kirjasto tukee joitakin yleisiä lämpötila-, kosteus-, paine- ja laatuanturipiirejä. Tässä käytetään BMP680 -sirua.

  • USB-pistoke ja mikro-usb-kaapeli virtalähteelle.
  • 1 nodemcu -levy ESP8266 -suorittimella.
  • 1 BME680 -anturikatkaisukortti.
  • 1 PM2.5 ilmahiukkaslaser -anturi, tyyppi PMS5003

BME680 -anturi on helppo vaihtaa DHT22 -anturiin, koska kirjasto tukee myös monia muita.

Vaihe 1: Valmista Arduino -ympäristö ESP8266: lle

Valmista Arduino -ympäristö ESP8266: lle
Valmista Arduino -ympäristö ESP8266: lle
  1. Asenna Arduino IDE: n uusin versio (nykyinen versio 1.8.2).
  2. Asenna esp8266-tuki Asenna Board Managerin avulla. Yksityiskohtaiset ohjeet löydät täältä:
  3. Määritä korttivaihtoehdot NodeMCU 1.0: lle, jossa on 1 Mtavu SPIFFS -tiedostojärjestelmä, kuten kuvakaappauksessa

Vaihe 2: Sisällytä pakolliset kirjastot

Sisällytä pakolliset kirjastot
Sisällytä pakolliset kirjastot

HomeDing -kirjasto perustuu joihinkin yleisiin lisäkirjastoihin antureiden ja näyttöjen toimimiseksi.

Kun asennat HomeDing -kirjaston, näet ponnahdusikkunan, jossa on nämä pakolliset kirjastot, jotka voidaan asentaa automaattisesti, kuten kuvassa näkyy, ja niiden kaikkien asentaminen on helppoa.

Joskus (tuntemattomista syistä) kirjastojen asennus epäonnistuu, joten kaikki tarvittavat kirjastot on asennettava manuaalisesti.

Lisätietoja tarvittavista kirjastoista on dokumentaatiosivustolla osoitteessa

Tässä on luettelo nykyisistä pakollisista kirjastoista:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • ESP8266 ja ESP32 Oled -ohjain SSD1306 -näyttöön
  • Pyörivä kooderi
  • DHT -anturikirjasto ESPx: lle
  • OneWire

PMS5003 -ilmahiukkaslaser -anturi kommunikoi käyttämällä 9600 baudin sarjalinjasignaalia. Tämä signaali kaapataan käyttämällä SoftwareSerial -kirjastoa, joka tulee ESP8266 -työkalujen asennuksen mukana. Älä asenna vanhempaa versiota kirjastoksi.

Vaihe 3: Muokkaa vakioesimerkkiluonnosta

Mukauta vakioesimerkkiluonnosta
Mukauta vakioesimerkkiluonnosta

Vakioesimerkki sisältää jo joitakin yleisimpiä antureita elementteinä, joten vain joitakin kokoonpanoja tarvitaan.

Tämä koskee BME680 -anturia, jota BME680 Element tukee.

PMS5003 -anturi on harvinaisempi ja se on aktivoitava sisällyttämällä PMS -elementti laiteohjelmistoon. Tämä tehdään määrittelemällä #define HOMEDING_INCLUDE_PMS luonnoksen elementtirekisteriosassa

#define HOMEDING_INCLUDE_BME680#define HOMEDING_INCLUDE_PMS

Yksinkertaisuuden lisäämiseksi uuden laitteen lisäämiseksi verkkoon voit lisätä kotisi WiFi -yhteyden SSID: n ja salasanan secret..h -tiedostoon standard.ino -luonnostiedoston viereen. Voit kuitenkin lisätä laitteen verkkoon myös sisäänrakennetun WiFi Managerin avulla ilman tätä kovakoodattua kokoonpanoa.

Nyt kaikki luonnoksen toteuttamiseen liittyvät asiat on tehty ja laiteohjelmisto voidaan koota ja ladata.

Vaihe 4: Lataa verkkokäyttöliittymä

Vakioesimerkki sisältää tietokansion, joka sisältää kaikki web -käyttöliittymän tiedostot.

Ennen kuin lataat nämä tiedostot, voit lisätä tämän artikkelin sisältämät env.json- ja config.json -tiedostot, koska tämä helpottaa asioita.

Näiden tiedostojen sisältö tekee IoT -laitteesta erityisen ja toimii ilmanlaadun anturina. Se selitetään yksityiskohtaisesti tässä tarinassa.

Käytä ESP8266 -tiedoston latausapuohjelmaa ja lataa kaikki tiedostot. Se vaatii uudelleenkäynnistyksen kokoonpanon aktivoimiseksi.

Vaihe 5: Lisää BME680 -anturi

Lisää BME680 -anturi
Lisää BME680 -anturi
Lisää BME680 -anturi
Lisää BME680 -anturi
Lisää BME680 -anturi
Lisää BME680 -anturi

BME680 -anturi kommunikoi kortin kanssa I2C -väylän avulla.

Koska tämä on mahdollisesti jaettu muiden laajennusten kanssa, kuten muut anturit tai näytöt, se on määritetty laitteen tasolla env.json -laitteessa yhdessä laitteen verkon nimen kanssa. Tässä on poimittu näyte laite- ja I2C -asetuksista:

"laite": {

"0": {"name": "airding", "description": "Ilmanlaatuanturi",… "i2c-scl": "D2", "i2c-sda": "D1"}}

Leipäpöydällä näet anturin liitäntäkaapelit: 3.3V = punainen, GND = musta, SCL = keltainen, SDA = sininen

BME680: n määrityksiä voidaan käyttää osoitteessa config.json:

"bme680": {

"bd": {"address": "0x77", "readtime": "10s"}}

Lisäämme toiminnot myöhemmin.

Testaa asetuksia vain selaimella ja avaa https://airding/board.htm. Näet anturin todelliset arvot ja ne päivitetään noin 10 sekunnin välein:

Vaihe 6: Lisää PMS5003 -anturi

Lisää PMS5003 -anturi
Lisää PMS5003 -anturi

Minulla ei ollut anturia, jossa oli leipälautaystävällinen liitin, joten minun piti leikata yksi kaapelin liittimistä liitosraudan avulla kiinnittääksesi sen suoraan nodemcu -levyyn. Näet sen vielä viimeisistä kuvista.

Tämän anturin virta on otettava Vin -laitteesta, joka saa virtansa normaalisti USB -väylältä. GND on sama, mutta saatavana myös Vin -nastan vieressä.

Tiedot anturista siirretään vakio 9600 baudin sarjamuodossa, joten rx- ja tx -nastat ja lukuaika on määritettävä:

"pms": {

"pm25": {"description": "pm25 hiukkasanturi", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}

Lisäämme toiminnot myöhemmin.

Jos haluat testata asetuksia uudelleen, käynnistä laite uudelleen ja käytä selainta ja avaa https://airding/board.htm. Näet anturin todellisen pm35 -arvon ja ne päivitetään noin 10 sekunnin välein, mutta tämä arvo on normaalisti ei muutu usein.

Voit saada suurempia arvoja asettamalla kynttilän valon anturin viereen, koska kynttilä tuottaa suuren osan näistä hiukkasista.

Nyt voit laittaa kaiken kauniiseen koteloon, koska kaikki muut kokoonpanot ja jopa ohjelmistopäivitykset voidaan tehdä etänä.

Vaihe 7: Joidenkin verkko -ominaisuuksien lisääminen

Seuraava määritys ote env.jsonissa on käytössä

  • laiteohjelmiston päivittäminen langattomasti
  • mahdollistaa verkon tunnistamisen SSDP -verkkoprotokollan avulla ja hakee nykyisen ajan ntp -palvelimelta.

{

… "Ota": {"0": {"portti": 8266, "passwd": "123", "description": "Kuuntele" over the air "OTA -päivitykset"}}, "ssdp": {"0 ": {" Valmistaja ":" nimesi "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}

Sinun pitäisi säätää aikavyöhyke sijaintisi mukaan. Jos olet epävarma, voit käyttää verkkosivustoa https://www.timeanddate.com/ saadaksesi poikkeaman UTC/GMT -ajalta. "2" sopii Saksan kesäaikaan.

Voit myös muuttaa Ota -salasanaa lukemalla tallennusmoodia koskevat ohjeet osoitteessa

Uudelleenkäynnistyksen jälkeen saatat löytää ilmalaitteen verkosta ja kun olet saanut vastauksen ntp -palvelimelta, paikallinen aika on käytettävissä.

Vaihe 8: Lokin lisääminen

Pelkästään todelliset arvot eivät ehkä anna tarpeeksi, joten joitain muita elementtejä voidaan käyttää.

Tässä tarinassa lokielementtiä ja NPTTime -elementtiä käytetään anturien arvojen historian tallentamiseen lokitiedostoon, ja tämän elementin Web -käyttöliittymäkortti voi näyttää sen kaaviona.

Seuraava kokoonpano luo kaksi lokielementtiä kaasulle ja hiukkasille:

{

"log": {"pm": {"description": "Log of pm25", "filename": "/pmlog.txt", "fileize": "10000"}, "aq": {"description": " Kaasun laadun loki "," tiedostonimi ":" /aqlog.txt "," tiedoston koko ":" 10000 "}}

Vaihe 9: Toimet

Toiminnot
Toiminnot

Nyt meidän on siirrettävä todelliset arvot lokielementteihin toimintojen avulla. Toiminnot käyttävät URL -merkintää välittääkseen kay ja arvon kohde -elementille. Monet elementit tukevat lähetystoimintoja tietyissä tapahtumissa, kuten uuden anturiarvon kaappaamisessa.

Toiminnot on määritetty elementille, joka lähettää toimintoja 2 merkintää tarvitaan:

  • On -arvo -tapahtuma pms/p25 lähettää todellisen arvon log/pm -elementille käyttämällä arvotoimintoa.
  • Tapahtuma bme680/bd ongas lähettää todellisen arvon log/pm -elementille käyttämällä arvotoimintoa.

{

"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}

Nyt kaikki elementit on määritetty.

Vaihe 10: Kuvat ja määritystiedostot

Kuvat ja määritystiedostot
Kuvat ja määritystiedostot
Kuvat ja määritystiedostot
Kuvat ja määritystiedostot
Kuvat ja määritystiedostot
Kuvat ja määritystiedostot

Tässä muutama kuva viimeisestä IoT -ilmanlaatuanturistani.

Ladattavat määritystiedostot on nimettävä uudelleen nimeksi *.json (no.txt) ennen lataamista.

Linkit ja viitteet

  • HomeDingin lähdekoodivarasto:
  • Dokumentaatio:
  • Vakioesimerkki:
  • BME680 -elementti:
  • PMS -elementti:
  • Lokielementti:
  • NtpTime Element:

Suositeltava: