Post 2: Hoe de data over te sturen.
Lora is natuurlijk prachtig maar gaat nog even wat te ver voor mij op dit moment, kijk ik later wel eens naar.
Eerste idee was om met een GSM module te werken en SMS te sturen. Voordeel is dat het snel is en je gewaarschuwd wordt. Nadeel is dat SMS natuurlijk niet geschikt is om continue data door te streamen (bv elk uur temperatuur etc).
Ook is het minder geschikt om commando's aan de Pi/Arcuino te geven, het kan wel ik heb er wat mee zitten proberen dat je bv 'Set Temp Alarm off' naar de arduino SMSt. Maar niet ideaal.
Voordeel is wel dat je in principe overal 'online' bent natuurlijk (nou ja, niet midden op zee, maar goed)
Maar de datastream is vnl interessant als ik niet vaar... Als ik vaar weet ik zelf wel hoe koud het is en hoe hard het waait... Bovendien kan de PI als er geen verbinding is de data loggen en die later doorsturen.
In de Haven is sinds kort een (gratis) Wifi verbinding dus daar moet wat mee kunnen.
Ik heb ook zitten denken om een Apache server te installeren op de PI, dan kan de Pi zelf een website online zetten, maar daarvoor moet je instellingen aan de router van de Wifi veranderen en die mogelijkheid heb ik niet.
Dus verder zoeken.
Eigenlijk zijn er twee dingen die ik wil kunnen:
1) In eerste instantie alle data kunnen zien.
2) Contact maken met de Pi, om bv van afstand wijzigingen in het programma te doen, maar ook in de toekomst eventueel om verwarming aan te kunnen schakelen, bilgepomp, etc.
De oplossing waar ik voorlopig voor kies is deze:
Om de data online te zetten ga ik een service van Sparkfun gebruiken:
data.sparkfun.com/
Om contact te maken ga ik tightVNC gebruiken, dat is een 'remote desktop' wat betekent dat je eigenlijk vanaf afstand over internet gewoon het systeem overneemt, dus ik kan thuis inloggen en dan wordt mijn PC thuis gewoon monitor, keyboard en muis van de Pi op de boot. Dan heb ik toegang tot alles. Hierover later meer.
Eerst meer over data.sparkfun.
Dat is een gratis service die veel gebruikt wordt voor schoolprojecten, weerstations, etc. Je kan daar via een simpele HTTP request data op zetten.
Een HTTP request is wat je normaal in je browser typt, bv '
www.zeilersforum.nl' is een http request.
Een normale webserver reageert op een HTTP request door je een website terug te sturen. De data.sparkfun server gebruikt de request om data op te slaan die dan later weer uitgelezen kan worden.
Om dit project te testen ga ik nu eerst het volgende doen: mijn Pi elk kwartier de temperatuur in mijn woonkamer laten pushen naar data.sparkfun.
Ik heb alvast een stream aangemaakt op data.sparkfun.
Dit is de URL om de data te bekijken:
data.sparkfun.com/streams/q51V9JRA5ATA1grb9QZz
Nu is er alleen een veld 'temperatuur' maar voor de boot komen er nog veel velden bij.
Data op deze pagina zetten is simpel, iedereen mag het proberen als je wil, ik verwijder de stream binnenkort toch weer: plak de onderstaande link in een webbrowser, verander de temperatuur (van 22.1 naar iets anders) en typ 'Enter'.
Daarna zal je op bovenstaande link de zelf toegevoegde data zien verschijnen.
data.sparkfun.com/input/q51V9J...F2Ap81j7Rk&temp=22.1
Voor mijn uiteindelijk stream ga ik natuurlijk de key hierboven om data te pushen niet geven zodat alleen ikzelf daar data op kan zetten, maar iedereen die ik de eerste link geef kan de data bekijken.
Wat ik dus moet doen in de Pi is alle data inlezen, een string maken zoals "
data.sparkfun.com/input/q51V9J...F2Ap81j7Rk&temp=22.1" en die naar het internet sturen. hierover later meer maar dat is simpel te doen.
Groet,
Bas