Åtkomst till Arduino över internet (3 / 11 steg)
Steg 3: Understaing koden :)
Jag har bifogat en exempelkod (.ino-fil) som skulle användas som referens vid förklaring. Jag kommer inte att förklara varje kodrad, om du har några tvivel behaga post den i kommentarerna. Okej, låter börja då.
Vi börjar med inklusive höverstycke filer som är nödvändiga för att programmet ska köras.
Header-filer
Ethernet.h -> detta bibliotek består av de funktioner som tar bekymmer av att hantera klientanslutningar och ansluter till servrar och få/skicka förfrågningar, och en massa andra saker.
SPI.h -> detta är en viktig header-fil, definierar hur din arduino kontroller ethernet shield. och SD-kortplatsen på det. SPI är ett kommunikationsprotokoll. Finns i dokumentationen från arduino webbplats för mer information. SPI-dokumentationen.
Ethernet-bibliotekets funktioner
Mac--allmänt om du har en äkta eller original version av den senaste EthernetShield, bör den ha en MAC-adress tryckt på ryggen. Men om du har en klonad version av det då det är obligatoriskt att du tilldelar en användardefinierad MAC för det, detta fungerar med den ursprungliga versionen av EthernetShield.
Du kan göra samma sak med IP-adressen också, men jag skulle inte rekommendera det, eftersom när din arduino med en fördefinierad IP och försöker ansluta till din router kan det misslyckas att göra det, om routern har redan tilldelats någon annan enhet med samma IP-låt DHCP hantera IP-adresstilldelning.
EthernetServer--Det skapar en server som lyssnar efter inkommande anslutningar på den angivna porten. I givna exempel har jag kopplat ett portnummer 12345. Du kan använda valfritt portnummer du kanske vill, men se till att ingen annan tjänst körs på porten.
EthernetServer.begin()---försöker upprätta anslutningen med routern med användaren anges MAC-adress. Även om det tar andra argumets beroende på situationen. Vänligen kolla länken Ethernet.begin
Serial.BEGIN()---Öppnas en seriell port på arduino med angivna baudvärde. Det är användbara för felsökning av din kod, om fel uppstår.
Klienten hantering mekanism
Alla initieringen måste göras endast en gång, därav det går in i kvarteret setup(). Servern måste kontrollera för klienter som väntar på att ansluta varje gång på ett tag därför den del av koden går in i ett loop() block.
Kolla in dessa länkar nedan att förstå bearbetning av koden.
Vår server kontrollerar en klientanslutning varannan sekund, och om en klient försöker ansluta då den tar emot dess begäran skrivs ut på serial-uttaget och svarar tillbaka med en HTML-sida.