Go Down

Topic: Arduino webserver (Read 561 times) previous topic - next topic

wilco02

Wil binnenkort gaan starten met een arduino project, dit is trouwens de eerste keer dat ik ga werken met een arduino bordje. Heb me al iets verdiept, maar hopelijk kunnen jullie mij de goede kant op helpen.

Ik heb de board DUE op het hoog vanwege de vele I/O en AO. Daarnaast wil ik webserver maken zodat ik over het internet de arduino commando's kan geven.
Hier zit ik dus een beetje mee, mijn oog is gevallen op de Genuino Yún Shield.

Maar wat zouden jullie mij adviseren met het achterliggende idee dat ik een webserver wil maken zodat ik de arduino op afstand commando's kan sturen?

zijn er grote verschillen tussen de wifi/ethernet shields?

Hoor graag van jullie.

Alvast bedankt.

Wilco,

MAS3

Hoi Wilco, en welkom.

Graag wijs ik je eerst even op de gebruiksaanwijzing (in het Engels) die je boven in elk deel van dit forum kunt vinden.
Lees die goed door en probeer je er zoveel mogelijk aan te houden.
Daar staan tips in over hoe je het forum optimaal kunt gebruiken en dit ook zo efficiënt mogelijk voor jou en de mensen die jou willen helpen.

Ik weet niet zeker (nou, eigenlijk wel) of dit er ook in staat, maar het is niet netjes om dezelfde vraag 2 keer op verschillende plaatsen te stellen.
Dat heet cross-posten en het is erg onbeleefd om dat te doen.

In je andere thread stel je dat je een technische achtergrond hebt, en daarom met het programmeren en het aansluiten geen grote problemen behalve.

Mag ik je vragen waarin die technische achtergrond dan bestaat ?
Want we zien hier nogal eens mensen voorbij komen die meteen enorme projecten kiezen als eerste stapjes op het gebied van hard-, en software.
En dat loopt dan natuurlijk ongelofelijk snel vast.
Dat wil je niet, je wil een leuke ervaring opdoen (neem ik maar even aan).

Daarom is het advies om klein te beginnen en dat gaandeweg uit te breiden.
De DUE is niet een instap model.
Zo werkt het ding met 3 volt logica, en moet je daar dus rekening mee houden wanneer je er iets mee gaat verbinden.
Je moet dan dus zien of je er zomaar 5 volt apparaatjes op kunt aansluiten (het zou kunnen dat dat wel kan, maar daar mag je niet zomaar van uit gaan).

Het programmeren (dus een ander programma in je Arduino zetten) over internet is geen kleinigheidje, dus daar zul je veel en lang over na moeten gaan denken.

Het in  of uitschakelen van apparaten via een netwerkverbinding is nog steeds geen kleinigheid, maar zeer zeker wel te doen.
Maar je moet je er wel goed van vergewissen dat je nooit, op geen enkele manier dan ook,  mensen of dieren in gevaar gaat brengen doordat je ongecontroleerd pompen of wat dan ook in beweging gaat zetten.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

wilco02

#2
Jan 22, 2019, 07:57 pm Last Edit: Jan 22, 2019, 08:00 pm by wilco02
Beste Mas3,

Bedankt voor het welkom heten op de forum en je uit gebreide reactie

Die heb ik inderdaad nog niet door gelezen dit ga ik op pakken. Wat betreft het plaatsen van twee dezelfde berichten dat klopt, omdat ik letterlijk mijn eigen post niet kon terug vinden. Meestal vindt je die makkelijk terug als je bent ingelogd onder eigen post of iets dergelijks maar dit kon ik nergens vinden. Klopt dit of staat dit ook in de gebruiks aanwijzing?  Nou moe net een hele lap tekst getypt op mn telefoon is het meeste weg. Ik kom hier binnen kort wel even op terug op mn laptop.

MAS3

Hoi Wilco.

Het terugvinden van je eigenposts staat niet in die gebruiksaanwijzing.
Maar het is wel een veel gestelde vraag, omdat het dus schijnbaar niet zo heel gemakkelijk is.
Je kunt op je eigen profiel klikken.
Dat kun je doen als je bij een van je eigen posts bent door op je naam te klikken.
Vervolgens klik je op show posts.

Je kunt ook rechtsboven op je avatar (of het poppetje als je geen avatar hebt) te klikken.
Dan op edit bij forum settings, waarna je weer op show posts kunt klikken.

In jouw geval kun je ook op deze link (klik !) klikken, dan kom je meteen op een overzicht van jouw posts.
Als je dat vervolgens opslaat als bladwijzer, kun je je eigen posts heel snel terug vinden.

De forumsoftware is een vreemd ding die ook nog eens zwaar aangepast is voor dit forum.
Daardoor werken bepaalde dingen niet helemaal zoals je zou verwachten of gewoon helemaal niet.
De keuze voor deze software zal een kwestie van geld zijn, want voor een forum van dit formaat zou veel betaald moeten worden maar niet voor deze software.
We zullen het moeten doen met de keuzes die de eigenaren van het forum gemaakt hebben.

Deze software slaat wel tussentijds de berichten tijdens het typen op.
Die kun je meestal (dus niet altijd) dan in je profiel weer terugvinden als drafts.
Zo is dan niet je gehele post verloren als er eens iets fout gaat.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

wilco02

He Mas3,

Thanks voor de tip voor het terug vinden van je eigen aangemaakt forum. Inderdaad niet helemaal logisch qua locatie, maar ben al lang blij dat ik het nu weet.

Maar ik zal even terug komen op je vragen.

Ik heb technische opleiding gedaan en meerdere jaren gewerkt als storingsmonteur/reliability engineer in de automotive industrie. Daarnaast nog een uitstapje gemaakt als plc programmeur. En voor de "Hobby" programmeer ik excel(VBA). Ga zeker niet beweren dat dit appel eitje wordt, er zullen zeker wat vragen gaan komen die wat hulp kunnen gebruiken. Maar verwacht met behulp van dit forum mijn project werkzaam te krijgen. En er is tijd dus :-).

Je geeft aan dat de DUE geen instap model is, dat begrijp ik. Alleen verwacht ik dat de basis opzich het zelfde is alleen de DUE heeft meer I/O opties. Maar als hier echt grote verschillen hoor ik dit graag, al zal ik wel geneigd zijn om te gaan voor de DUE qua IO opties :-). Maar ik wacht even jij reactie af.

Waar ik eigenlijk meer over twijfel is inderdaad de 3V qua compatibillieteit met shields en dergelijk, hier hoor ik graag jou ervaring hier in. Zal hier onder in het kort uitleggen wat mijn plan is.

Zoals ik aangaf wil ik de arduino over het internet kunnen bedienen, hier is dus een webserver voor nodig. Of zijn hier ook apps voor? Dat zou helemaal top zijn.
Nu zie ik dat hier meerdere wifi/ethernet shield voor zijn, kun je aangeven wat hier even de verschillen in zijn qua webserver? Want dit is mij niet helder. Voorkeur gaat wel uit naar een ethernet verbinding vindt ik toch een stukje betrouwbaarder dan wifi aangezien ik het op afstand wil gaan besturen.


Project plan.

Wil met de arduino een aantal gegeven uitlezen dan aan temperatuur, alarm contacten en misschien iets aansturen in de toekomst. Maar geen zaken die gevaar met zich mee brengen, dat risico vindt ik te groot.

En het aansturen wil ik doen over het internet, daar is dus webserver voor nodig. Daar zou ik graag advies in willen wat handig is. Wat ik zou lees kun je een webserver maken en inloggen op het interne ip adres, dan verwacht ik dat ik in de router bepaalde port forwarding zal moeten doen om het op afstand te kunnen bedienen. Nu hoop ik eigelijk dat hier webserver voor is dat het port forwarden niet nodig is? Dat maakt het wat mij betreft een stuk makkelijker en betrouwbaarder en minder fout gevoelig.

Hoor graag wat jou ervaring hier in is en wat jij mij hier in kan vertellen.

Alvast bedankt.

Wilco.


MAS3

Hoi Wilco.

Mijn ervaringen zijn heel beperkt hoor.
Maar das nou juist het mooie van fora zoals deze, anderen die de ervaringen wel hebben kunnen zo in de thread aansluiten.

Ik heb wel een DUE kloon, maar die ligt hier ergens tussen de (niet geringe) stapel met boardjes, modules en andere dingen die in de toekomst misschien nog wel eens interessant zouden kunnen worden.
Dat ding heb ik dus nog nooit gebruikt, behalve even aangesloten om te zien of 'ie tot leven kwam.

Ik ben mij van de valkuilen mbt de 3 volt versus 5 volt bewust, en zal daar tegen de tijd dat ik met het spul aan de slag ga dan ook rekening mee moeten en kunnen houden, de stapel bevat ook level converters.

Voor wat betreft de webserver: die draait op je Arduino en niet op een (netwerk)shield.
Zo'n shield is alleen de interface tussen je Arduino en het netwerk, en er is ook een stukje softwarematige interface (we gaan dat library noemen) nodig zodat je Arduino ook weet hoe ie met je netwerkshield om kan gaan.

Inderdaad is het noodzakelijk om een port forward te doen van het internet naar je Arduino als je eenmaal zover bent, maar houd er wel rekening mee dat dan niet morgen of overmorgen zal zijn.
De enige manier die ik ken om daar omheen te werken, is door de verbinding van binnen naar buiten op te zetten.
Maar dan kun je maar naar 1 internet apparaat verbinden.
Als dat bijvoorbeeld jouw laptop is die telkens op verschillende plaatsen een internet verbinding heeft, kun je eens uitzoeken of DynDNS je daarmee kan helpen.
Dat is een service die er voor zorgt dat jouw laptop altijd via dezelfde URL te vinden zal zijn, waar 'ie ook met het internet verbonden moge zijn.
Maar als je van ieder apparaat dat aan het internet verbonden is een verbinding wil kunnen leggen naar jouw toepassing dan zul je een port forward nodig hebben, en een URL moeten maken die ook de port aanspreekt bijvoorbeeld http://www.voorbeeldig.nl:23145

Ik heb hier al meer dan een jaar een Duemilanove (das een heel oude Arduino variant) met een networkshield waar een simpel servertje op draait die de analoge poorten uitleest en toont, aangevuld met een java tellertje die 10 seconden aftelt, om vervolgens de pagina (en dus ook de waardes) vernieuwt.
Puur om te zien of ik dat kon maken.
De hardware komt uiteraard ook weer van de stapel.
Java is wel een beetje een rotzakje, want het servertje doet daar helemaal niets voor, behalve die java code sturen.
Die code word vervolgens door de browser aan de client kant uitgevoerd, dus op die plaats vindt het aftellen en vervolgens opnieuw opvragen van de pagina plaats.
Dit heb ik gemaakt met de voorbeeldsketch die hier op de site te vinden is, en door er zelf wat aan toe te voegen en uit te zoeken hoe dat java nou eigenlijk werkt (alleen voor wat betreft dat timertje).

De pagina is zeer eenvoudig, met alleen wat beperkt opgemaakte tekst tegen een egale Arduino-groene achtergrond.
Als je mooie plaatjes en bijvoorbeeld klokjes wil weergeven dan is dat een heel stuk meer tekst (dat is wat HTML is), en ook meer te verzenden data.
Maar het netwerkshieldje dat ik hier heb, heeft ook een SD kaartlezertje aan boord (nog niet mee gespeeld).
Die kun je dan mooi gebruiken om de data van door te sluizen, bijvoorbeeld voor een gelikte achtergrond van je  webpagina.
Maar dan ben je weer meer met webdesign bezig dan puur met het programmeren van je Arduinootje.

Het is een heel goed idee om dat plan van je project te maken.
Dat plan kun je steeds verder verfijnen en misschien uitbreiden.
Als je het ver genoeg verfijnd hebt, ben je al halverwege je uiteindelijke code.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

wilco02

He Mas3,

Het is alweer een tijdje geleden, laten we zeggen dat andere zaken meer prio hadden. :-)
Maar wil toch een start gaan maken.
Wat ik begrijp wordt de webserver gedraait op de arduino en de ethernet shield zorgt alleen voor de verbinding met internet. Opzich logisch, maar goed om voor de zekerheid te weten.

Ik blijf toch hangen op het bordje DUE, vanwege zijn AI/AO mogelijkheid.
Dus het plan is als volgt denk dat het slim is dat eerst alleen het due bordje bestel en daar als eerst mee ga spelen om te ervaring hoe het werkt en dan langzaam uit te breiden.
En dan de onderste drie shield en schermpje later te bestellen.
Zijn deze 3 shield en display compatible volgens jou? Wat ik zo zie wel.

Ik heb thuis nog zo'n breadboard liggen met 5V voeding.
Lees dat de DUE tussen de 6 a 20V nodig heeft, hier moet ik even andere adapter voor vinden.
Dat moet goed komen.

Dan heb ik volgens mij alleen nog een usb kabel nodig om aan de slag te kunnen? Wordt deze meegeleverd?

Verder nog tips wat handig is om er bij te bestellen, qua weerstanden, ledjes etc....

Hoor graag van je.


https://store.arduino.cc/due

https://store.arduino.cc/genuino-yun-shield
https://store.arduino.cc/education-shield (SD card)
https://store.arduino.cc/grove-oled-display-1-12


MAS3

Hoi.

Dat Yún ding is weer iets totaal anders.
Dat is een (draadloze) webserver/router/accesspoint die je op je Arduino prikt.
Daar draait de server dus wel op dat boardje en die is ook vele malen krachtiger dan je Arduinootje.
Voor de configuratie ervan zul je wel even moeten opletten vermoed ik, maar ik heb er zelf geen ervaring mee.
Ik weet dus ook niet of je die al dan niet op dezelfde wijze kunt gebruiken als een netwerkshield die ik dus wel ken.
Bij shields met een netwerkaansluiting moet je altijd wel even opletten als je die gaat combineren met andere shields.
De metalen kap om de netwerk aansluiting zou eventueel een er boven op gestoken shield kunnen raken, en daar kortsluiting kunnen veroorzaken.

Het education shield:
Mwoah, wel handig dat je op die wijze een SD kaart slot op je Arduino kunt prikken.

De display is geen shield, maar een module.
Dat betekent dat je 'm niet op je Arduino (of een andere shield) kunt prikken, maar 'm met draadjes moet aansluiten.
Hoeft geen probleem te zijn, maar wel goed om vooraf te weten.

Een starter kit is eigenlijk altijd wel een goed idee, tenzij je thuis al een hele voorraad aan spul hebt liggen.
Ik kan je er geen specifieke aanraden (want ik heb hier al zooi zat liggen en heb me er daarom nooit echt in verdiept).
Er zijn heel veel verschillende starter kits.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Go Up