Geef uw Arduino-project zijn eigen mini-webserver, met een Ethernet-schild
Een tijdje geleden heb ik je laten zien hoe je een internet-controlesysteem voor je Arduino kunt instellen. Hoe kan ik 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 eenvoudige webserver, 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 Betaal 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 pinnen 10 tot 13 voor het regelen van de netwerkverbinding, dus laat die uit uw project; pin 4 wordt ook gebruikt voor de SD-kaart, maar we zullen die vandaag niet gebruiken.
Eerste dingen eerst - open de het dossier->Voorbeelden->Ethernet->Web Server dat is voorzien in de Arduino IDE. Zoek de regels die verwijzen naar het MAC- en IP-adres.
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 het voorgaande verlaten 0x echter wel. 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.
Het volgende is het IP-adres. We willen een specifiek vast adres, zodat we port forwarding op de juiste manier 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 die zegt EthernetServer-server (nummer), en verander het aantal 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 fout krijgt, betekent dit dat je per ongeluk een hebt geplaatst hoofdletter O inplaats 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!
Om toegang te krijgen tot de Arduino, voert u het adres en het poortnummer rechtstreeks in via een browser.
Je zou zoiets moeten zien - tot nu toe zo goed. Helaas is dit alleen toegankelijk op de lokaal netwerk nu, ga dus 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 port forwarding en hoe kan het mij helpen? [MakeUseOf Explains] Wat is Port Forwarding en 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 daarom zal je glanzende nieuwe app niet werken? Je Xbox laat je geen games spelen, je torrent downloads weigeren ... Lees meer )
Test dit uit een mobiel 3G-internetapparaat met Wifi uitgeschakeld; vergeet niet om uw te gebruiken openbaar IP-adres, niet je lokale netwerkadres. Uw router moet dit u kunnen vertellen of u kunt het gewoon aan Google vragen “wat is mijn IP“.
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) op de poort aan te sluiten A0 en +5v, met een 10k weerstand ook op A0 en GND (dit is een spanningsdeler, omdat de analoge pennen alleen spanning kunnen lezen en geen weerstand) gewoon om te bevestigen dat de server feitelijk waarden aan het lezen is. 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 controleren een Arduino van hier is nogal een sprong, en 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 gebruiken http: // ip: port / digitalWrite / 8/1 om de LED in te schakelen, en http: // ip: port / digitalWrite / 8/0 om het uit te zetten 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.
U kunt ook dit voorbeeld uitchecken dat een formulier op de pagina uitvoert om een blinkm RGB-led 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 contact met ons op in de opmerkingen.
Ontdek meer over: Arduino, webserver.