Ervaring met arduino UNO WIFI ?

Hardware geleverd door Arduino
Berichten: 11
Geregistreerd: 16 Jan 2017, 01:24

Ervaring met arduino UNO WIFI ?

Berichtdoor Kurtvdh » 04 Feb 2017, 14:04

Heeft er iemand hier op het forum al enige ervaring met de nieuwe UNO WIFI ?
Ik heb er eentje aangeschaft, vond 40€ voor een board met integrated wifi wel interessant.
Maar het blijkt niet makkelijk te zijn om voorbeelden te vinden over hoe de wifi functies te gebruiken.
De standaard examples uit de library zitten er wel in, maar wat ik precies wil doen vind ik niks over terug.
Eigenlijk wil ik via een home webserver die op mijn eigen pc draait, gegevens van sensoren inlezen en verwerken in grafische voorstelling. Bovendien wil dan ook nig via de webpage relays aansturen en hun status weergeven.
Ik echter geen voorbeelden terug waarin zoiets wordt gedaan.

Kan iemand mij een beetje op weg helpen ?

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Ervaring met arduino UNO WIFI ?

Berichtdoor nicoverduin » 04 Feb 2017, 14:56

Er zijn toch voorbeelden van een web client? In feite maak je een get of post met de variabelen en stuur ze door naar de server. Is recentelijk nog iemand hier mee bezig geweest
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 16 Jan 2017, 01:24

Re: Ervaring met arduino UNO WIFI ?

Berichtdoor Kurtvdh » 04 Feb 2017, 22:33

Nico,

Bedankt alvast voor de reactie, je hebt gelijk...er staan veel voorbeelden van webclients, maar niet op de manier die ik kan gebruiken. De meeste van die sketches werken met ethernet of ESP Shield, maar dat werkt niet met de nieuwe UNO WIFI. Ook worden de websites dan meestal in de sketch of vanop de sd kaart gehost, maar die mogelijkheid heb ik ook niet. Dus ik zelf een home server opgezet vanwaar ik de web interface kan hosten. Deze is toegankelijk vanop elk internet toestel via de port forwarding op mijn router.
De vraag is hoe ik de verbinding met die externe website tot stand kan brengen...en moet ik dan voor de communicatie werken met GET/POST of met MQTT ?

Ik denk dat de wifi.h library niet werkt met mijn board, ik denk dat ik unowifideved.h moet gebruiken. Maar ook hier vind ik weer geen echt voorbeeld van terug. Dit board is nog een developer edition, misschien daarom dat er zo weinig info te vinden is...

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Ervaring met arduino UNO WIFI ?

Berichtdoor Koepel » 04 Feb 2017, 22:52

Dat board is een merkwaardige combinate van een Arduino Uno met een ESP8266.
http://www.arduino.org/products/boards/arduino-uno-wifi

De Arduino Uno is al snel te klein en de ESP8266 heeft een eigen processor. Vergelijkbare onhandige combinaties zijn de Arduino Yún en de Arduino Tian.

Een betere combinatie is een snellere processor met een wifi chip die alleen maar wifi chip is.
Een andere mogelijkheid is de NodeMcu. Dat is de ESP8266 chip die zich voordoet als Arduino board.

Een goede keuze zou zijn om de Arduino Uno WiFi niet te gebruiken, en over te stappen naar een NodeMcu of bijvoorbeeld eentje uit de Adafruit Feather serie, zoals deze: https://www.adafruit.com/product/3010, of de ESP32: https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide.

Wil je toch aan de slag met de Uno Wifi, dan heb je de gegevens op Arduino.org. Veel meer is er niet.
http://www.arduino.org/learning/getting-started/getting-started-with-arduino-uno-wifi
Hoe ver ben daar in ? Heb je de nieuwe firmware in de ESP8266 gezet ? En dan via wifi alles weer configureren.
Dit zijn de tutorials: http://www.arduino.org/learning/tutorials/boards-tutorials/content/arduino-uno-wifi-tutorial
Heb je er daar een paar van geprobeerd ?

Berichten: 11
Geregistreerd: 16 Jan 2017, 01:24

Re: Ervaring met arduino UNO WIFI ?

Berichtdoor Kurtvdh » 04 Feb 2017, 23:56

De webserver en Webserverblink voorbeelden heb ik al geprobeerd en die werken wel.
Alleen word er dan natuurlijk een heel eenvoudige webpagina weergegeven.
Ik zou liefst met een eigen webpagina werken die draait op mijn eigen pc. Ik weet alleen niet precies data naar de eigen webserver te sturen en hoe dan ook commandos naar de arduino te sturen.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Ervaring met arduino UNO WIFI ?

Berichtdoor Koepel » 05 Feb 2017, 00:47

Dan is MQTT misschien geschikt. Als je het aandurft om naar MQTT over te stappen.
Wanneer je zelf nog geen MQTT server op die PC hebt draaien, dan is het misschien mogelijk om je aan te melden bij Adafruit IO om het te proberen.

Natuurlijk kun je via TCP/IP werken en een webserver hebben draaien op de Uno WiFi, en daarnaast ook nog als client updates te doen naar die PC.
Het "CiaoRestClient-ThingSpeak" voorbeeld verstuurd gegevens naar ThingSpeak.com en de "WebServerBlink" ontvangt commando's. Ook de "RestServer" laat zien hoe je de Arduino kunt bedienen. Ik ben niet zo'n fan van REST, dan vind ik maar omslachtig, dan is MQTT meer geschikt.

Voor de InternetOfThings lijkt MQTT aan populariteit te winnen. Die twee zijn intussen onlosmakelijk met elkaar verbonden.

Nu zit je dus met het probleem dat een SD module toevoegen verre van ideaal is. De Arduino Uno is nogal traag met bestanden lezen en naar de ESP8266 te sturen. Het lijkt er op dat de NodeMCU een heel eenvoudige library heeft voor bestanden op een SD-kaartje, maar je kunt daar geen normale website op zetten.
Dat is mijn Arduino Yún iets gemakkelijker. De Wifi module draait linux, ik heb daar een usb geheugenstickje aan hangen met een volledige website. Maar ik raad geen Arduino Yún aan. Dan is een Raspberry Pi als webserver beter, met daaraan Arduino boards voor sensors en besturing van dingen.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Ervaring met arduino UNO WIFI ?

Berichtdoor nicoverduin » 05 Feb 2017, 12:15

Ik krijg een beetje de indruk dat de TS nog niet helemaal begrijpt hoe een web client server architectuur in elkaar zit.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 16 Jan 2017, 01:24

Re: Ervaring met arduino UNO WIFI ?

Berichtdoor Kurtvdh » 05 Feb 2017, 16:46

@Nico,

Je hebt gelijk, ik heb idd geen ervaring met web client server architectuur. Op dit vlak ben ik een absolute beginner. Ik heb wel een elektrotechnische achtergrond, ik ben nl elec op een baggerschip. Dus vooral veel kennis op vlak van hardware en sensoren, aangevuld met PLC (allen bradley) en Scada hmi.

Er is natuurlijk heel veel te vinden op het internet, maar soms zie je door het bos de bomen niet meer.
Ik ben ook niet dagelijks bezig met dergelijke zaken. Dus een korte uitleg of wat interessante sites waar er duidelijk uitleg gegeven wordt is altijd welkom :P

Dit is een puur hobby projectje voor thuis waar ik aan werk, dus ik heb alle tijd van de wereld om bij te leren.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Ervaring met arduino UNO WIFI ?

Berichtdoor nicoverduin » 05 Feb 2017, 18:39

De architectuur is in zijn directe vorm vrij eenvoudig:
a) je hebt een browser draaien op jouw smartphone of PC. In die browser tik je een url in (uniform resource locator). bijvoorbeeld http://www.arduinoforum.nl. Leuk maar dan weet je niet waar je terecht komt ergens in de wereld. Daar heb je zogenaamde DNS (domain name server) voor. Die zorgen ervoor dat jou url vertaald wordt naar een IP adres. Elke apparaat dat op het internet komt krijgt een eigen IP adres. En die moet binnen een netwerk uniek zijn.
b) als het ip adres is gevonden (automatisch) wordt het bericht van jouw browser doorgestuurd naar een server die luistert op het IP adres. Afhankelijk van het bericht gaat deze server applicatie een antwoord naar jouw browser terug sturen. meer gebeurt er nog niet.
c) Als de applicatie server iets moet opslaan dan stuurt deze server weer een bericht door naar een database server. Die luister alleen maar naar database opdrachten en stuurt een bericht terug naar de applicatie server dat de data is verwerkt. Als er een zoek opdracht via de browser is gestuurd dan zal de applicatie server deze gegevens (eventueel fancy gemaakt met allerlei kleurtjes en grafieken) door naar jouw browser.

En meer is het niet. Het netwerk kan internet zijn of het intranet. Dat laatste is jouw netwerk thuis. Elk apparaat heeft een eigen ip adres (meestal in de ranges 192.168.178.xxx of 10.0.0.xxx of 192.168.1.xxx). Je kan jouw eigen ip adres van de pc vinden door via start->cmd een dos box te openen en dan ipconfig/all<Return>in te tikken en dan krijg je alle info die je nodig hebt.

In jouw geval heb jij:
a) een Arduino die verbinding maakt met het internet en metingen cq relais aanstuurt
b) een browser op jouw pc
c) niets????
Als jij wilt dat er mooie fancy plaatjes op de browser komen heb jij een server nodig die de gegevens ontvangt van de Arduino EN opdrachten terugstuurt naar de Arduino en ook nog eens de browser bediend

Je hebt dus in feite 3 componenten (4 als je ook nog eens iets wil opslaan)
a) Arduino die metingen verricht en relais aanstuurt
b) browser om verzoeken naar de server te sturen en fancy plaatjes te ontvangen van de server
c) Server die alle verzoeken verwerkt en/of opstuurt naar een andere server (in dit geval de Arduino).
d) SQL server die gegevens opslaat en ophaalt.

Die server kan op de Arduino werken maar dan ben je beperkt tot eenvoudige schermen omdat het nu eenmaal een kleine microprocessor is en geen PC met veel geheugen en veel schijfruimte en een krachtige CPU.

Wel kan je op de PC een server applicatie draaien. Er is gratis software beschikbaar (o.a. XAMPP) die naast de gewone toeters en bellen ook nog eens een server applicatie kan draaien en zelfs ook nog eens mySQL. Heb je daar kennis voor nodig? Absoluut. Dat doe je niet ff in een middag. Maar die server applicatie moet je nog wel ff zelf maken (PHP kennis is onontbeerlijk). Hiermee zou je vanuit de Arduino opdrachten kunnen maken NAAR de server waarbij je om de zoveel tijd data doorstuurt via een zgn. GET of POST (beter beveiligd en moeilijker) opdrachten in de Arduino opbouwt en naar de server stuurt.
De browser stuurt ook opdrachten naar diezelfde server (maar daar zou je een ander poortnummer voor kunnen gebruiken) die alleen de verzoeken van de browser uitvoert en het antwoord terugstuurt. Of je maakt een 2e server applicatie voor de browser.

In een nutshell de basis componenten voor een webbased client-server omgeving. Het wordt complexer als je het internet op wilt of via de buitenwereld op jouw eigen netwerk komen (routers en port forwarding).

Er zijn ook nog alternatieven zoals MQTT (sterk in opkomst door IoT) maar dat maakt de opslag eenvoudiger maar de rest complexer. Zo ook al die websites die een data ontvanger voor je hebben draaien waar je keurig je data naartoe kan sturen en prachtig grafiekjes kunnen maken (o.a. Adafruit) totdat je zo vast aan ze zit dat ze je een poot gaan uitdraaien om kosten dekkend te worden. Immers niets is voor niets...

Het is allemaal niet moeilijk maar zoals enkelen zich hier al aardig aan mij beginnen te storen met mijn opmerkingen als "eerst de basis.. dan de rest" kun je nu eenmaal niet alles "ff" doen... Het maakt namelijk geen bal uit of je nu met een arduino en een Raspberry dit opbouwt of dat je met enorme serverparken werkt en een miljoen gebruikers.... Het concept blijft hetzelfde. Maar je zult jezelf wel de tijd moeten gunnen om dat allemaal in je op te nemen.....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten