Geef uw Arduino-project zijn eigen mini-webserver, met een Ethernet-schild

Een tijdje geleden heb ik je laten zien hoe je een internetbedieningssysteem voor je Arduino kon instellen - maar het moest verbonden blijven met een computer via USB om de internetverbinding te behouden. Als je echter een Ethernet-shield hebt, is dat niet nodig. Vandaag gaan we kijken naar het instellen van een Arduino als een basisserver, zodat we onze eigen website voor controle van apparaten kunnen hosten.

Een tijdje geleden heb ik je laten zien hoe je een internetbedieningssysteem voor je Arduino kon instellen - maar het moest verbonden blijven met een computer via USB om de internetverbinding te behouden.  Als je echter een Ethernet-shield hebt, is dat niet nodig. Vandaag gaan we kijken naar het instellen van een Arduino als een basisserver, zodat we onze eigen website voor controle van apparaten kunnen hosten.
Advertentie

arduino webserver Een tijdje geleden heb ik je laten zien hoe je een internet-controlesysteem voor je Arduino kunt instellen. Hoe kan je Arduino Web Control instellen zonder een Ethernet-schild? Arduino Web Control instellen zonder een Ethernet-schild De laatste paar weken heb ik de controle over de sfeerverlichting in mijn studio aan kijkers tijdens de live uitzending van Technophilia Podcast - je kunt de resultaten daarvan zien in de ... Lees meer - maar het moest verbonden blijven met een computer via USB om de internetverbinding te behouden. Als je echter een Ethernet-shield hebt, is dat niet nodig. Vandaag gaan we kijken naar het instellen van een Arduino als een basisserver, zodat we onze eigen website voor controle van apparaten kunnen hosten.

Je zal nodig hebben:

  • Een Arduino, of Arduino-kloon zoals hier gedetailleerd. Besteed geen geld aan een Arduino - Bouw je eigen geld voor veel minder Besteed geen geld aan een Arduino - bouw je eigen huis voor minder Ik houd van mijn Arduino. Op elk moment heb ik een flink aantal projecten onderweg - prototyping is zo eenvoudig met hen. Maar soms wil ik het project functioneel houden zonder te kopen ... Lees meer
  • Ethernet Shield (~ $ 35) - zorg ervoor dat u een versie krijgt die overeenkomt met uw Arduino omdat ze niet allemaal compatibel zijn
  • Reservepoort op uw router of switch en Ethernet-kabel
  • Het WebServer-voorbeeld dat is opgegeven in de Arduino-toepassing

Opzetten

Het Ethernet-schild gebruikt pins 10 tot en met 13 voor het regelen van de netwerkverbinding, dus laat deze uit uw project; pin 4 wordt ook gebruikt voor de SD-kaart, maar we zullen die vandaag niet gebruiken.

De eerste dingen eerst - open het bestand -> voorbeelden -> Ethernet -> WebServer dat wordt aangeboden binnen de Arduino IDE. Zoek de regels die verwijzen naar het MAC- en IP-adres.

arduino webserver

Het MAC-adres voor mij lag op de doos - de jouwe kan op het schild zelf zijn. Pas de eerste regel met waarden aan - u moet echter de voorafgaande 0x- bit verlaten. Technisch gezien maakt het niet echt uit wat je hier plaatst, zolang je geen tegenstrijdige waarden op je subnet hebt - maar toch, dit was het geadresseerde dat door de fabrikant was toegewezen, dus we moeten ons daar waarschijnlijk aan houden. Weet gewoon dat als je het verkeerd hebt, het nog steeds werkt.

voorbeeld van Arduino webserver

Het volgende is het IP-adres. We willen een specifiek vast adres, zodat we port forwarding goed kunnen instellen - het schild is in staat om een ​​adres van DHCP te krijgen, maar dat is alleen handig als het alleen als een client en niet als een server wordt gebruikt. Vul een IP-adres in dat ongebruikt en gedenkwaardig is in uw lokale netwerk, uw router-IP en 255.255.255.0 (het subnet). Als dit geen steek houdt, lees dan onze gratis en gedegen handleiding voor thuisnetwerken Alles wat u moet weten over thuisnetwerken Alles wat u moet weten over thuisnetwerken Het opzetten van een thuisnetwerk is niet zo moeilijk als u denkt dat het is . Lees verder .

Port forwarding

Bewerk de regel met de EthernetServer-server (nummer) en wijzig het nummer in 8081 . Dit zal onze server instellen om te luisteren op poort 8081 in het geval dat uw ISP internetverkeer op de traditionele poort 80 blokkeert.

Upload de demo op dit punt en test deze vanaf een lokale computer. U moet natuurlijk ook de Ethernet-kabel aansluiten. Houd de USB aangesloten, want we hebben het nodig voor stroomvoorziening - je kunt dat later vervangen door een 9V-voeding, maar we zijn nog aan het testen.

Noob-tip: als je deze foutmelding krijgt, betekent dit dat je ten onrechte een hoofdletter O hebt geplaatst in plaats van een 0 in het MAC-adresgebied. Er is geen O in hex-waarden! Als je echt nieuw bent, is het misschien de moeite waard om onze Arduino-gids voor beginners te bekijken!

voorbeeld van Arduino webserver

Om toegang te krijgen tot de Arduino, voert u het adres en het poortnummer rechtstreeks in via een browser.

voorbeeld van Arduino webserver

Je zou zoiets moeten zien - tot nu toe zo goed. Helaas is dit momenteel alleen toegankelijk op het lokale netwerk, dus ga door naar de poortconfiguratiepagina van uw router om een ​​omleiding van poort 8081 naar dezelfde poort op uw Arduino's IP in te stellen ( Zie: Wat is poort doorsturen? Wat is poort doorsturen & Hoe kan het mij helpen? [MakeUseOf Explains] Wat is Port Forwarding & Hoe kan het mij helpen? [MakeUseOf Explains] Huil je een beetje naar binnen als iemand je vertelt dat er een probleem is met de poortdoorsturing en dat is de reden waarom je glanzende nieuwe app heeft gewonnen ' t werkt? Je Xbox laat je geen games spelen, je torrent downloads weigeren ... Lees meer )

Arduino webserver zelfstudie

Test dit uit een mobiel 3G-internetapparaat met Wifi uitgeschakeld; vergeet niet om uw openbare IP-adres te gebruiken, niet uw lokale netwerkadres. Uw router zou u dit moeten kunnen vertellen, of u moet gewoon aan Google vragen "wat is mijn ip".

arduino webserver

De uitvoer begrijpen

De pagina die wordt weergegeven in de demo is het lezen van waarden van de analoge pinnen - maar omdat er niets is verbonden, krijg je onzin. Probeer een lichtsensor (fotoresistor) aan te sluiten op poort A0 en + 5v, met een 10k-weerstand ook op A0 en gnd (dit is een spanningsdeler, omdat de analoge pinnen alleen spanning kunnen lezen en geen weerstand) alleen om de server te bevestigen is eigenlijk waarden aan het lezen. Merk op dat wanneer de lichtintensiteit verandert, de waarden op de andere pinnen ook veranderen - dit komt omdat ze allemaal niet verbonden zijn.

Interactief worden

Het lezen van deze waarden is allemaal goed en wel, maar de sprong naar het besturen van een Arduino vanaf hier is nogal een sprong, en valt buiten het bestek van deze tutorial van vandaag. In plaats van het wiel opnieuw uit te vinden, zal ik je naar Arduino-forumgebruiker hari wijzen die een eenvoudige API heeft geschreven voor interactie met digitale pinnen. Gebruik deze code (ik heb hem aangepast om te werken met de nieuwste Ethernet-bibliotheek), sluit de lange kabel van een LED (anode) aan op pin 8 en de korte kabel op pin 7 (met een geschikte weerstand). U kunt dan de URL's van het formulier http: // ip: port / digitalWrite / 8/1 gebruiken om de LED in te schakelen, en http: // ip: port / digitalWrite / 8/0 om deze uit te schakelen en analoge waarden te lezen met analogRead / 0 .

Dit voorbeeld van bildr leert je ook hoe je een reeks LED's kunt besturen door het GET-verzoek te lezen.

Misschien wilt u dit voorbeeld ook uitchecken dat een formulier op de pagina uitvoert om een ​​RGB RGB-lampje te besturen, hoewel u het gemakkelijk kunt aanpassen voor een RGB-strip, zoals het dynamische project voor omgevingsverlichting. Build Your Own Dynamic Ambient Lighting For A Media Center Build Uw eigen dynamische omgevingsverlichting voor een mediacentrum Als u veel films op uw pc of mediacenter bekijkt, weet ik zeker dat u met het verlichtingsdilemma bent geconfronteerd; schakel je alle lichten helemaal uit? Houd je ze voluit? Of ... Lees meer hebben we een tijdje geleden gebouwd.

Nou, ik had er plezier in deze te bouwen, dus ik hoop dat je het ook gedaan hebt. Als u een bibliotheek heeft gemaakt die het bedienen van pagina's en bedieningselementen eenvoudig maakt, neemt u dan alstublieft in de opmerkingen contact met ons op.

In this article