Esimerkki lähdekoodeista Arduinolle, ESP8266:lle, ESP32:lle (Ethernet / WiFi / LoRaWAN): Github-projektin arkisto
Voit kokeilla IoT-kojelautaa laitteistosi kanssa täällä: ON-LINE IoT-hallintapaneeli
Jos olet kiinnostunut verkkosovelluksen lähdekoodeista, ota yhteyttä projektin tekijään englanniksi osoitteessa: martinius96@gmail.com
Arduino Ethernet Wiznet W5100 / W5500 ESP8266 ESP32 Ultraääni HC-SR04 JSN-SR04T Sigfox IoT WiFi OTA ULP

Ohjauslaitteisto - yhteensopivat AVR / ESP-mikro-ohjaimet



Siirtotekniikkamoduulit - Ethernet / Sigfox LPWAN IoT



Yhteensopivat ultraäänietäisyysanturit



Tasomittari - vedenpinnan valvonta kaivossa


Tasomittariprojekti (vesitasomonitori) koostuu keskitetystä verkkoliittymästä, joka kerää tietoja anturisolmuista ja visualisoi ne käyttäjälle. Nykyinen vedenkorkeustieto näkyy kojelaudassa yhdessä kaivon tilavuuteen muuntamisen kanssa, ja käyttäjä voi tarkastella historiallisia vedenkorkeustietoja taulukkomuodossa tai graafisessa visualisoinnissa viivakaavioilla. Responsiivinen verkkokäyttöliittymä mukautuu mihin tahansa näytön ja laitteen resoluutioon. Projektin verkkokäyttöliittymä käyttää PHP:llä kirjoitettua taustaohjelmaa, joka käsittelee HTTP POST -menetelmällä saapuvat tiedot. Taustaosa korjaa mitatun tason todelliseen kaivon tunnetun syvyyden perusteella, laskien kaivon vesitilavuuden ja kaivon halkaisijan. Käyttäjä syöttää järjestelmään kaivon syvyyden ja halkaisijan kaivon mittasuhteiden perusteella. Tiedot lähetetään web-palvelimelle mikro-ohjaimen avulla, joka suorittaa mittauksia 300 sekunnin välein (5 minuuttia) tai LPWAN IoT -verkon Sigfoxin kautta 11 minuutin välein. Sigfoxin käyttö rajoittuu 140 viestiin päivässä. Vedenpinnan mittaus suoritetaan ultraääniantureilla - HC-SR04 tai sen vedenpitävä versio JSN-SR04T. Lisäksi voidaan käyttää muita antureita, joissa on trigger-/Echo-signaalit, kuten RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™.

Tasomittari - kojelauta - tällä hetkellä mitattujen tietojen automaattinen palautus jQueryn kautta

Ultraääniantureiden mittausperiaate perustuu Trigger-signaalin lähettämiseen, jonka pituus on 10 mikrosekuntia (μs). Signaali heijastuu vedenpinnasta ja palaa vastaanottimeen, joka tunnetaan nimellä Echo. Lentoaikamenetelmällä lasketaan aika, joka kuluu signaalin lähettämisen ja vastaanottamisen välillä, mikä mahdollistaa vedenpinnan etäisyyden määrittämisen anturista kaivon yläosaan. Muunnoskaava ottaa huomioon äänen nopeuden 343 m/s lämpötilassa 20 °C. Tärkeä parametri on ultraääniantureiden säteen leveys eli havaintoalue. HC-SR04-anturin havaintoalue on 15°, mikä sopii kapeampiin kaivoihin ja säiliöihin, mutta anturi ei ole vesitiivis ja altistuu korroosiolle kaivon kosteuden takia. Siksi suositellaan sijoittamaan HC-SR04-anturi kaivon yläpuolelle. Vesitiiviin anturin JSN-SR04T havaintoalue on 60°, mikä tekee siitä sopivan laajempaan kaivoon. Kuitenkin säteen leveys laajenee etäisyyden myötä, ja se vaatii suuremman kaivon, kuten halkaisijaltaan 6 metrin kaivon. JSN-SR04T-anturi on huoltovapaa, mutta sen elektronista ohjauskorttia ei saa altistaa kosteudelle. Anturissa on vakioviestintäsuojattu 2,5 metrin kaapeli, ja useita kaapeleita voi kytkeä yhteen jatkamiseksi. Neliömäisen kaivon tapauksessa syötetään sisäänkirjoitetun ympyrän halkaisija keskiarvona, ja tämä muodostaa vesisylinterin viitearvon kaivon tilavuuden laskemiseksi. Virhe kaivon kokonaistilavuudessa on noin 12,5 %. Antureilla mitattava maksimikorkeus (taso) on noin 400–450 cm (tietolomakkeesta saatu tieto).

Muita integroitavia vedenkorkeusantureita (sinun on luotava oma laiteohjelmisto):
  • Laser (LiDAR)
  • Hydrostaattinen (upotettava)
  • Sähköstaattinen (kapasitiivinen / induktiivinen)
  • Paine (ero / kompensoivalla ilmanpaineanturilla)
  • Optinen
  • Mekaaninen (kelluke)
  • Magneettinen (halli)
  • Mikroaaltouuni (tutka)
  • Ultraääni – toinen lähtötyyppi (UART, RS-232, virtasilmukka, Modbus TCP / RTU, M-bus, RS-485, PROFINET, CAN)
  • Huomautus: Jos vedenkorkeus lasketaan uudelleen mikro-ohjaimen puolelta, sinun on asetettava kaivon syvyydeksi 0 cm verkkoliittymässä.

  • Web-käyttöliittymän esittelyvideo - Tasomittari:



    Ultraäänianturit sopivat mm:


    • Kaivetut kaivot
    • Septikot ja jätealtaat
    • Purot ja järvet
    • Muoviset sadevesisäiliöt
    • Lujuus (massatäyttömittaus)
    • Säiliöt (jätevalvonta, keräysastioiden täyttö)
    • Kattilat (puun, pellettien, hiilen, puuhakkeen valvonta)
    • Kaivot ja kellarit (tulva-/pohjavesivalvonta)
    • Tuotanto (tuotteiden havaitseminen, niiden korkeus ja lukumäärä, haavamateriaalin korkeus)
    • Pysäköintipaikat (vapaiden ja varattujen pysäköintipaikkojen havaitseminen)

    Ultraäänianturit eivät sovellu:


    • Poratut kaivot (havaitsemisominaisuuksien vuoksi - leveä säde)
    • Putket ja putket (ilmaisuominaisuuksien vuoksi - laaja säde)
    • Kaivoihin, joissa on sivujoki (pyörteinen pinta vaimentaa ultraääntä, mittaus on mahdotonta / portaittain)
    • Paikoissa, joissa lämpötila muuttuu äkillisesti (lämpötila vaikuttaa äänen etenemisaikaan, joten jopa paikallaan oleva taso näyttää vaihtelevan)
    • Tyhjiösäiliöt (mittaus ei mahdollista)
    Ultraäänietäisyysantureiden tunnistusominaisuudet - MATLAB-skriptit visualisointia varten:
  • HC-SR04.m ladata
  • JSN-SR04T.m ladata

  • Plug n' play firmware - Ultra Low Power / StandBy


    Käännetty laiteohjelmisto ladattavissa välittömästi mikro-ohjaimeen (ei vaadi kirjaston asennusta).
    Laiteohjelmiston nimi Firmware-toiminto ESP8266 ESP32
    Ultra Low Power

    Laiteohjelmisto ULP-sovelluksiin, joissa virrankulutus on alhainen (katso kytkentäkaavio). Laiteohjelmisto latautuu automaattisesti mukana toimitetun ESPTOOL-työkalun kautta, jota ajetaan .bat-skriptillä (skriptissä on vaihdettava ESP-kortin COM-portti). Kun laiteohjelmisto on ladattu ja oletettu, että ESP:ssä ei ole tallennettuna edellisen projektin SSID:tä ja salasanaa, WiFiManager käynnistyy, jota käytetään olemassa olevan WiFi-verkon määrittämiseen. ESP alkaa lähettää avointa WiFi-verkkoa SSID -> AP-tilassa Hladinomer_AP. Kun asiakas (Windows / Android / iOS) on yhdistetty, Captive-portaali alkaa 192.168.4.1 (asiakas tulee uudelleenohjata automaattisesti). WiFiManagerin avulla voit valita kantaman sisällä olevan WiFi-verkon verkkoliittymässä ja asettaa salasanan. Kun ESP on yhdistetty määritettyyn WiFi-verkkoon ja IPv4 on määritetty annetulta alueelta, Captive Portal sammuu ja ESP pysyy STA-Station-tilassa. Sen jälkeen anturisolmu alkaa lähettää tietoja verkkoliittymän tasomittariin . Kun seuraavan kerran käynnistät anturisolmun, Captive Portal ja WiFiManager eivät enää käynnisty, koska WiFi-verkon asetukset säilyvät pysyvästi. Tietojen lähettämisen jälkeen mikro-ohjain siirtyy syvään lepotilaan - Deep Sleep. Xtens-pääprosessori on sammutettu lepotilassa. ESP8266 herätetään WAKE-ajastimen kautta (GPIO16:n ja RST:n välissä hyppääjä vaaditaan), ESP32 RTC-ajastimen kautta.

    ESP8266 laiteohjelmisto ESP32 laiteohjelmisto
    StandBy

    Mikro-ohjaimen StandBy-tilan laiteohjelmisto, joka lähettää säännöllisin väliajoin (5 min) vedenpinnan mittauksia web-palvelimelle ja samalla ylläpitää yhteyttä LAN-verkon tukiasemaan. Laiteohjelmisto latautuu automaattisesti mukana toimitetun ESPTOOL-työkalun kautta, jota ajetaan .bat-skriptillä (skriptissä on vaihdettava ESP-kortin COM-portti). Kun laiteohjelmisto on ladattu ja oletettu, että ESP:ssä ei ole tallennettuna edellisen projektin SSID:tä ja salasanaa, WiFiManager käynnistyy, jota käytetään olemassa olevan WiFi-verkon määrittämiseen. ESP alkaa lähettää avointa WiFi-verkkoa SSID -> AP-tilassa Hladinomer_AP. Kun asiakas (Windows / Android / iOS) on yhdistetty, Captive-portaali alkaa 192.168.4.1 (asiakas tulee uudelleenohjata automaattisesti). WiFiManagerin avulla voit valita kantaman sisällä olevan WiFi-verkon verkkoliittymässä ja asettaa salasanan. Kun ESP on yhdistetty määritettyyn WiFi-verkkoon ja IPv4 on määritetty annetulta alueelta, Captive Portal sammuu ja ESP pysyy STA-Station-tilassa. Sen jälkeen anturisolmu alkaa lähettää tietoja verkkoliittymän tasomittariin . Kun seuraavan kerran käynnistät anturisolmun, Captive Portal ja WiFiManager eivät enää käynnisty, koska WiFi-verkon asetukset säilyvät pysyvästi.

    ESP8266 laiteohjelmisto ESP32 laiteohjelmisto

    Tasomittarin toimintaperiaate - Lohkokaavio


    Hladinomer do žumpy, septiku, studne, princíp merania - ultrazvukový senzor vzdialenosti

    Verkkokäyttöliittymä käyttää trigonometriaa kaivon mitattavissa olevan maksimisyvyyden arvioimiseen tunnetulla kaivon halkaisijalla (toinen parametri kaivon tilavuuden laskemiseen). Käyttäjä voi verkkokäyttöliittymän avulla laskea, mihin kaivon maksimisyvyyteen kukin anturi sopii ominaisuuksiensa perusteella. Projekti on suunniteltu erittäin helppokäyttöiseksi, jopa maallikoille, jotka eivät tiedä, mikä anturi sopii parhaiten heidän kaivoonsa. Käytetyllä mikro-ohjaimella on keskeinen rooli järjestelmässä. Projektissa on mahdollista käyttää Arduino-alustaa (Uno / Mega) versiossa R3 identtisellä liittimellä, joka voidaan liittää ICSP-liitännän kautta kommunikoivaan Ethernet-suojaan. Lisäksi on mahdollista käyttää Ethernet-moduuleja ja liittää ne suoraan mikro-ohjaimen laitteiston SPI-nastoihin. Tuetut Ethernet-moduulit ovat Wiznet W5100, W5500, USR-ES1 ja MicroChip ENC28J60. Kaikki nämä tarjoavat HTTP-yhteyden web-palvelimeen. Lisäksi Espressif Systemsin WiFi-mikro-ohjaimet ESP8266 ja ESP32 ovat tuettuja. Mikro-ohjaimilla on useita toimintatiloja, kuten StandBy, StandBy + OTA (laitteisto-ohjelmiston etälataus LAN-verkon kautta) ja syvä lepotila ULP-sovelluksille - Deep Sleep. ESP8266:n lepotilassa vaaditaan fyysinen hyppyjohdin GPIO16:n ja RST:n välille - katso kytkentäkaavio. Molemmat ESP-alustat mahdollistavat salatun viestinnän web-palvelimen kanssa HTTPS-protokollan kautta. ESP32 voidaan käyttää myös PHY Ethernet -moduulin LAN8720 kanssa RMII-liitännän kautta, ja se tukee HTTP- ja HTTPS-yhteyttä. Molemmat ESP-alustat käyttävät upotettua varmenteen myöntäjää (CA) verkkopalvelimen toimialueelle. Varmenne on upotettu mikro-ohjainten lähdekoodiin .pem-muodossa, jotta se ei vie tilaa RAM-muistissa. Varmenne on voimassa 10-20 vuotta, mikä eliminoi tarpeen sen toistuvalle uusimiselle. Kaivon nykyiset vedenkorkeus- ja vesimäärätiedot ovat saatavilla JSON-muodossa verkkoliittymästä. Tasomittariprojekti voidaan integroida MQTT:n kautta kotiautomaatiojärjestelmiin kuten Hassio, Domoticz ja Loxone, näyttämään vedenpinta omassa kojelaudassa esimerkiksi Grafanassa. Tämän jälkeen on mahdollista suorittaa osajärjestelmän ohjausta (kastelu, kotitalousvesilaitoksen aktivointi) verkkorajapinnasta saatavien kaivon vedenkorkeustietojen perusteella.

    Ohjelmistototeutukset Arduinolle, ESP8266:lle, ESP32:lle (vaatii kirjaston asennuksen): Saatavilla täältä

    Saatavilla olevat kirjastot mikro-ohjaimille (Arduino / ESP)


    Kirjaston arkisto (.zip) laajenna muotoon C:/Users/[User]/Documents/Arduino/libraries
    Kirjaston nimi Kirjaston toiminto ladata
    NewPing

    AVR-mikro-ohjainkirjasto (ATmega) Arduino Uno / Nano / Mega. Se mahdollistaa mittausten suorittamisen ultraäänietäisyysantureilla RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™.

    ladata
    NewPingESP8266

    Kirjasto ESP8266- ja ESP32-mikrokontrollereille. Se mahdollistaa mittausten suorittamisen ultraäänietäisyysantureilla RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™.

    ladata
    Ethernet2

    AVR-mikro-ohjainkirjasto (ATmega) Arduino Uno / Nano / Mega. Se mahdollistaa tiedonsiirron Ethernet-moduulin Wiznet W5200 - W5500 kanssa SPI-liitännän kautta.

    ladata
    Ethernet3

    AVR-mikro-ohjainkirjasto (ATmega) Arduino Uno / Nano / Mega. Se mahdollistaa tiedonsiirron Ethernet-moduulin Wiznet W5500 V2 - USR-ES1 kanssa SPI-liitännän kautta.

    ladata
    UIPEthernet

    AVR-mikro-ohjainkirjasto (ATmega) Arduino Uno / Nano / Mega. Se mahdollistaa tiedonsiirron Microchipin Ethernet-moduulin ENC28J60 kanssa SPI-liitännän kautta.

    ladata

    Sivustoille, joilla ei ole kiinteää Internet-peittoa, on mahdollista hyödyntää LPWAN IoT -verkkoa, kuten Sigfox. Tällä hetkellä tämä esineiden internet -verkko kattaa suurimman osan Etelä-Suomesta, ja sen kantavuus laajenee lähivuosina koko Suomeen. Sigfox-teknologian avulla voit lähettää pieniä määriä jopa 12 tavun kokoisia viestejä. Tasomittariprojektissa lähetetään 4 tavun vedenkorkeusarvo (UINT_32). Koska Sigfox sallii enintään 140 viestin lähettämisen päivässä, tiedonsiirtoväli on pidennetty 11 minuuttiin. Hyötykuormasanomia voidaan täydentää erilaisilla järjestelmätiedoilla, kuten GEO-tiedot (pituusaste / leveysaste) GPS-palvelun Sigfox Atlas -tietoihin perustuen, RSSI (Received Signal Strength), viestin numero ja muut. Projektissa käytetty viestintämoduuli on Sigfox WISOL 868MHz UART LPWAN -modeemi. Tämä modeemi kommunikoi AT-komentojen kautta UART-liitännän kautta, joka on emuloitu mikro-ohjaimissa ohjelmistolla. Tietoliikenne siirtyy nopeudella 9600 baud/s. WISOL-modeemissa on integroitu u.FL-liitin PCB-moduuliin antenniliitäntää varten, mikä vähentää merkittävästi peittoa jopa sisällä tai varjossa ulkona. Onnistunut tiedonsiirto edellyttää kahden, edullisesti kolmen tai useamman BTS-aseman peittoa. BTS lähettää lähetetyt tiedot Sigfox-taustajärjestelmään, jossa tehdään tarvittava takaisinsoitto tiedon vastaanottamisen jälkeen. Takaisinsoitto tekee HTTP- tai HTTPS-pyynnön toimialueelle, jossa verkkosovellus on käynnissä, käyttäen POST-menetelmää ja sopivasti koodattua hyötykuormaa, jota verkkosovelluksen taustaohjelma odottaa.


    Suomen kattavuus LPWAN IoT Sigfox -verkon kautta:


    Suomen IoT LPWANin kattavuus Sigfox-verkolla - tasomittari kaivoon

    Sigfox-taustapuhelun takaisinsoittoasetus verkkosovellusten testausta varten

    Tasomittari:
  • Callbacks --> Custom --> New
  • Kirjoitamme Custom payload konfiguraatioon: cislo1::uint:16
  • Kirjoitamme URL-malliin: http://arduino.clanweb.eu/studna_s_prekladom/data.php (tai verkkopalvelimesi muu URL-osoite, jossa projekti suoritetaan), mahdollisuus käyttää HTTPS:ää
  • Valitse HTTP-menetelmässä: POST
  • Lisäämme runkoon (viestin runkoon):
  • hodnota={customData#cislo1}&token=123456789
  • Valitse vaihtoehto Sisältötyypissä: application/x-www-form-urlencoded

  • Kuvakaappauksia tasomittariprojektin verkkoliittymästä


    Vesikaivotason monitori - webapp - pääsivu - Viimeisimmät mitatut arvot automaattisella päivityksellä - AJAX Vesikaivotason monitori - webapp - Historialliset mitatut tiedot aikaleimalla Vesikaivotason valvonta - Record, minimaalinen, maksimiarvo päivässä, viikossa, kuukaudessa Vesikaivotason valvonta - kaavio vedenpinnasta ajassa - viikko / vuosi

    Anturisolmujen UART-lähtö - FreeRTOS - ESP32:


    ESP32 - FreeRTOS - ESP-IDF - mittaus ja tiedonsiirto web-palvelimelle HTTP, POST-siirtomenetelmän kautta ESP32 - FreeRTOS - ESP-IDF - mittaus ja tiedonsiirto web-palvelimelle HTTPS, POST-siirtomenetelmän kautta

    Yhteensopiva laitteisto tasomittariprojektiin


    Tuettu laitteisto tasomittariprojektille - Arduino - Ethernet - WiFi - ESP8266 - ESP32 Anturisolmu ESP32 PHY Ethernet -moduulilla LAN7820 ja ultraäänianturilla JSN-SR04T