Saunasensori
  • Esipuhe
  • Saunasensori palveluna
  • Raportti
  • Rakenne
  • Liitteet
    • Raportti pdf-muodossa
    • IoT Cloud
    • Firmata
  • Tietoja
  • Pasin Blogi

GUI:n rakentamista Visual Studiolla ja vb.netillä (PC)

 

Sensorien lähettämän datan tuominen formiin tekstikenttään (RichTextBox)

 

Seuraavaksi piti saada Arduinon lähettämä UDP-liikenne näkymään formissa moduulista komennetun komentoikkunan (console.write) sijaan.

Tähän sai sitten etsiä hetken käypästä esimerkkiä. Sellainen löytyi lopulta saksankieliseltä sivulta. Vaikka saksa ei juurikaan taivu, niin koodi oli samaa tuttua. Esimerkki löytyi täältä:

https://foren.activevb.de/archiv/vb-net/thread-94837/beitrag-94841/Re-UDP-Client-Einfache-Variante/

Tämä koodi toimi omassa formissaan halutusti ja seuraavaksi implementoimme sen meidän olemassa olevaan vb.net-koodiimme.

Saimme Arduinon lähetteen näkymään formissa ok:

 

imagef1.png

 

Arduinon koodin automaattiajamisongelma

 

Seuraavaksi huomasimme, että armas Arduinommepa ei alakaan kanssamme tanssiin, jos emme käy sitä aina erikseen kutsumassa. Eli jos tökkäämme USB:n vain virransaantiin (ilman sarjakaapeliyhteyttä), niin sketsi ei starttaakaan automaattisesti. Ja eipä se startannut automaattisesti, vaikka oli sarjakaapeliyhteydessäkin. Vasta kun starttasi sarjakaapeliyhteydessä Web Editorin monitoroinnin, alkoivat lukemat liikkua langattomasti.

Hetki miettimistä ja silmämääräistä Arduinon koodin tutkimista, niin löysimme todennäköisen paikan mikä ongelman aiheuttaisi. Eli kohta, jossa odoteltiin sitä sarjakaapeliyhteyden avautumista ennen verkkoon yhdistämistä. Laitoimme sen tässä vaiheessa kommenteille:

 

imagef2.png

 

Ja kas, nyt starttaa langattoman UDP-yhteyden ihan ilman kyyneleitä ja sarjakaapeliyhteyttä ja automaattisesti, kun virrat laitetaan Arduinoon päälle. Kuva sarjaporttiliikenteestä.

 

imagef3.png

 

Lämpötilalukeman tuominen omaan tekstikenttään

 

Tämä asia oli meille uutta ja tahdoimme oppia sen esimerkkiä paremmin. Tiivistettynä selviteltävä asia oli tuoda taustalta UDP:lla vb.netillä vastaanotettu data näkyväksi kontrolliin  RichTextBox. Komennot olisivat Invoke ja AppendText

Täältä löysimme logiikan:

https://riptutorial.com/vb-net/example/6235/performing-thread-safe-calls-using-control-invoke--

Vanhin käyttämämme Visual Studio oli 2010 versio, joten yläosan ohje tuli meille kyseeseen.

Teimme GUI:hin kontrollin eli tekstilaatikon (TextBox) lämpötilalukemalle ja sen koodin laitoimme samaan subiin millä tulostetaan kaikki viestit erilliseen RichTextBoxiin.

 

 imagef4.png

Toimi odotetusti, mutta vielä pitäisi suodattaa mukaan vain lämpötilarivit ja niistäkin vain lukema, niin saamme ääkkösetkin mukaan ilman eri kikkailuja.

Eli laittelimme ehtoja ja säätöjä seuraavasti:

 

imagef5.png

 

Toimi hienosti:

 

 

 

Napinpainalluksen tuominen omaan tekstikenttään

 

Tässä oli nyt hyvä monistaa ylempää ratkaisua ja lisäsimme koodia:

 

imagef6.png

 

Näkyi GUI:ssa napinpainalluksen jälkeen näin:

 

imagef7.png

 

Etäisyyslukeman tuominen omaan tekstikenttään

Seuraavaksi monistimme ratkaisua etäisyyslukemaan:

 

 etaisyys.PNG

 

PIR-tiedon tuominen omaan tekstikenttään

Nyt lisäsimme GUI:hin liiketunnistimen hälytykset ja lisäsimme koodia PIR:rin osalta vb.netin koodiin. Koko osuus näytti nyt tältä:

 

koko.PNG

 

Ja GUI:ssa tältä:

 

imagefa.png

 

Alkavat olla osaset jo hyvällä mallilla. Kaikkien sensoreiden data saadaan nyt järkevästi näkymään GUI:ssa.

 

 

Seuraavaksi voisimme alkaa miettiä, kuinka tästä datasta saadaan lähtemään hälytys sähköpostiin.

 

 

 

 

 

Sivu 10 / 16

  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • Olet tässä:  
  • Etusivu
  • Raportti

Kuvia


Takaisin ylös

© 2026 Saunasensori