Tasomittariprojektin lähdekoodit Arduino-mikrokontrollereille, ESP8266, ESP32, NewPing-kirjasto, Ethernet2, Ethernet3, UIPEthernet: Github-projektin arkisto
Kokeile tasomittariprojektin verkkokäyttöliittymää ilmaiseksi laitteistollasi - ON-LINE: HTTP - Arduino + Ethernet / ESP8266 / ESP32 HTTPS - ESP8266 / ESP32
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ä, jonka avulla kerätään tietoja anturisolmuista ja visualisoidaan ne käyttäjälle. Tämänhetkinen vedenkorkeustiedot esitetään kojelaudassa yhdessä kaivon tilavuuteen muuntamisen kanssa, historialliset vedenkorkeustiedot ovat myös käyttäjän käytettävissä taulukkomuodossa tai graafisessa visualisoinnissa viivakaavioilla. Verkkokäyttöliittymä on responsiivinen, se voi mukautua mihin tahansa näytön ja laitteen resoluutioon. Projektin verkkokäyttöliittymä käyttää PHP:llä kirjoitettua taustaohjelmaa, joka pystyy käsittelemään pyynnöstä saapuvat tiedot HTTP POST -menetelmällä. Taustaosa korjaa mitatun tason todelliseen kaivon tunnetun syvyyden perusteella, laskee tästä parametrista 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 teknologian (Ethernet / WiFi / LPWAN IoT Sigfox) tukeman mikro-ohjaimen avulla, joka suorittaa mittauksia 300 sekunnin välein - ts. 5 minuuttia tai LPWAN IoT -verkon Sigfox kautta lähetettäessä dataa lähetetään 11 minuutin välein, koska verkko rajoittaa modeemin lähettämään enintään 140 viestiä päivässä. Vedenpinnan mittaus suoritetaan ultraääniantureilla - HC-SR04 tai sen vedenpitävä versio JSN-SR04T. Voidaan käyttää myös muita antureita, joissa on trigger / Echo-signaalit sarjoista 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 mittauksen periaate on lähettää Trigger-signaali, jonka pituus on 10 μs (mikrosekuntia), joka pomppii vedenpinnasta ja palaa vastaanottimeen - Echo. Lentoaikamenetelmällä lasketaan uudelleen signaalin lähettämisen ja vastaanottamisen välinen aika, jotta voidaan määrittää vedenpinnan etäisyys kaivon yläosassa sijaitsevasta anturista. Muunnoskaava ottaa huomioon äänen nopeuden 343 m/s lämpötilassa 20 °C. Tärkeä parametri molemmille ultraääniantureille on säteen leveys, toisin sanoen havaitsemisominaisuus. HC-SR04-anturin tunnistusominaisuus on 15°. Säde on suhteellisen kapea ja anturi soveltuu myös kapeammille kaivoille ja säiliöille, mutta se ei ole vesitiivis ja sillä on suuri korroosion (hapettumisen) riski kaivossa olevan kosteuden vuoksi. Tästä syystä on suositeltavaa sijoittaa tämä ultraäänianturi kaivon yläpuolelle. Vesitiiviin anturin JSN-SR04T tunnistusominaisuus on 60°, mikä rajoittaa sitä huomattavasti ja estää sen käytön kapeissa kaivoissa, koska säde levenee etäisyyden myötä ja vaatii halkaisijaltaan usean metrin kaivon (kaivon syvyydessä halkaisija 6 metriä). 4,5 metriä). Ultraäänianturit ovat täysin huoltovapaita. JSN-SR04T-anturissa on elektroninen ohjauskortti, jota ei saa altistaa kosteudelle ja vedelle. Vakioviestintäsuojattu kaapeli on 2,5 metriä pitkä, on mahdollista kytkeä saman kaapelin vastineita linjan jatkamiseksi. Neliömäisen kaivon tapauksessa sisäänkirjoitetun ympyrän halkaisija syötetään keskiarvoon, joka muodostaa vesisylinterin viitearvon kaivon tilavuuden laskemiseksi. Kaivon kokonaistilavuuden virhe on tässä tapauksessa ~12,5 %. Antureilla mitattava maksimikorkeus (taso) on noin 400 - 450 cm (tunnettu tietolomakkeesta).

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

    WiFi-verkon määritys WiFiManagerin kautta - Plug n' play firmware


    WiFi sieť Hladinomer_AP, Captive Portal a webové rozhranie WiFiManagera v systéme Android

    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). Verkkokäyttöliittymän avulla käyttäjä voi laskea, mihin kaivon maksimisyvyyteen kukin anturi sopii ominaisuuksiensa perusteella. Projekti on niin helppokäyttöinen jopa maallikoille, jotka eivät tiedä mikä anturi sopii paremmin käytettäväksi kaivossaan. Myös käytetyllä mikro-ohjaimella on tärkeä 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. On myös mahdollista käyttää Ethernet-moduuleja ja liittää ne suoraan mikro-ohjaimen laitteiston SPI-nastoihin. Wiznet W5100, W5500, USR-ES1 Ethernet-moduuleja tuetaan. MicroChip tukee Ethernet-moduulia ENC28J60. Kaikki Ethernet-moduulit tarjoavat HTTP-yhteyden web-palvelimeen. Myös Espressif Systemsin WiFi-mikro-ohjaimet ESP8266 ja ESP32 ovat tuettuja. Mikro-ohjaimilla on useita toimintatiloja: StandBy, StandBy + OTA, jossa on mahdollisuus laiteohjelmiston etälataukseen LAN-verkon kautta ja syvä lepotila ULP-sovelluksille - Deep Sleep. ESP8266-mikro-ohjaimen lepotilassa on tarpeen lisätä fyysinen hyppyjohdin GPIO16:n (WAKE) ja RST:n välille - katso kytkentäkaavio. ESP-mikro-ohjaimet mahdollistavat myös salatun viestinnän toteuttamisen web-palvelimen kanssa HTTPS-protokollan kautta. ESP32:ta voidaan käyttää myös PHY Ethernet -moduulin LAN8720 kanssa RMII-liitännän kautta, tukee HTTP- ja HTTPS-yhteyttä. Sekä ESP8266- että ESP32-alustat käyttävät juuri CA:ta, joka on myöntänyt varmenteen (myöntäjä) verkkopalvelimen toimialueelle. Sertifikaatti on upotettu mikro-ohjainten lähdekoodiin .pem-muodossa. Jotta varmenne ei vie tilaa mikro-ohjaimen RAM-muistissa, se asetetaan mikro-ohjaimen - PROGMEM - flash-muistiin. Varmenneviranomaisen sertifikaatti on voimassa 10-20 vuotta, joten se ei vaadi varmenteen toistuvaa uusimista. Tiedot kaivon nykyisestä vedenkorkeudesta ja vesimäärästä ovat saatavilla JSON-muodossa verkkoliittymästä. Tasomittariprojekti voidaan integroida MQTT:n kautta kotiautomaatioon (Hassio, Domoticz, Loxone) näyttämään vedenpinnan omassa kojelautassaan, esim. Grafana. Tämän jälkeen on mahdollista suorittaa osajärjestelmän oheisohjaus (kastelu, kastelu, kotitalousvesilaitoksen aktivointi) verkkorajapinnasta saatavan 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 käyttää myös LPWAN IoT -verkkoa Sigfox. Tällä hetkellä tämä esineiden internet -verkko kattaa suurimman osan Etelä-Suomesta. Kantavuus laajenee lähivuosina koko Suomeen. Tämän tekniikan avulla voit lähettää pieniä määriä jopa 12B kokoisia viestejä. Tasomittariprojektissa lähetetään 4B 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ää myös erilaisilla järjestelmätiedoilla, esimerkiksi: 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 mikro-ohjaimiin emuloitu ohjelmisto. 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ä / varjossa ulkona. Onnistunut tiedonsiirto edellyttää kahden, edullisesti kolmen tai useamman BTS-aseman peittoa. BTS lähettää lähetetyt tiedot Sigfox-taustajärjestelmään, jossa on tarpeen tehdä takaisinsoitto, joka alkaa 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