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:

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:

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

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.

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:

Toimi hienosti:
Napinpainalluksen tuominen omaan tekstikenttään
Tässä oli nyt hyvä monistaa ylempää ratkaisua ja lisäsimme koodia:

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

Etäisyyslukeman tuominen omaan tekstikenttään
Seuraavaksi monistimme ratkaisua etäisyyslukemaan:
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ä:
Ja GUI:ssa tältä:

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.