Hur du använder Arduino för att slå på en lampa på distans, direkt från din iPhone/Android (3 / 6 steg)
Steg 3: Installation av programvara för olika komponenter
De funktioner som gör att du kan driva ditt ethernet-kort inte är närvarande i Arduino IDE. Därför är det nödvändigt att installera detta bibliotek, inne i mappen "libreries" Arduino. Till gör så, bara ladda ner filen i. Zip, packa upp den och flytta den till mappen för Arduino, utan att öppna programmet. Alternativt kan du göra proceduren direkt från IDE programvaran.Nu när biblioteket är närvarande, kan vi fortsätta med att läsa in filen på våra Arduino Uno.
För att göra detta vi ladda ner källkoden från denna länk och tryck på knappen i övre vänstra, överföra det till våra mikrokontroller. Efter några sekunder, om allt går väl, kommer meddelandet "Laddar avslutade." Nu kan vi äntligen gå till praktiken!
/** #include < EtherCard.h > statiska byte mymac [] = {0x74, 0x69, 0x69, 0x2D, 0x30, 0x31}; byte Ethernet::buffer [700]; Ogiltiga inställningar () { om (ether.begin (sizeof Ethernet::buffer, mymac) == 0)
Questo codice permette di accendere una 60W connessa al relè da remoto, sfruttando
La scheda di rete ENC28J60
SCK -> 13
SÅ -> 12
SI -> 11
CS -> 8
VCC -> 3,3 V
GND -> GND
*/
#define RELAY_PIN 5
#define REQUEST_RATE 5000
char * on = "Vidare";
char * off = "OFF";
booleska relayStatus;
char * relayLabel;
char * linkLabel;
Serial.BEGIN(9600);
Serial.println ("få IP via DHCP");
Serial.println ("kunde inte komma åt Ethernet controller");
om (! ether.dhcpSetup())
Serial.println ("DHCP misslyckades");
ether.printIp ("My IP:", ether.myip);
ether.printIp ("nätmask:", ether.mymask);
ether.printIp ("GW IP:", ether.gwip);
ether.printIp ("DNS IP:", ether.dnsip);
Serial.println();
pinMode (RELAY_PIN, OUTPUT);
digitalWrite (RELAY_PIN, låg);
relayStatus = false;
relayLabel = off;
linkLabel =;
}
Ogiltig loop () {
ordet len = ether.packetReceive();
Word-pos = ether.packetLoop(len);
IF(POS) {
om (strstr ((char *) Ethernet::buffer + pos, "få /? PÅ")! = 0) {
relayStatus = sant;
relayLabel =;
linkLabel = off;
} else om (strstr ((char *) Ethernet::buffer + pos, "få /? AV")! = 0) {
relayStatus = false;
relayLabel = off;
linkLabel =;
}
digitalWrite (RELAY_PIN, relayStatus);
BufferFiller buppfylla = ether.tcpOffset();
bfill.emit_p (PSTR ("HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\nPragma: nr-cache\r\n\r\n"
"< html >< huvud >< meta namn ="vyport"content =" bredd = 200px "/ >< / capita >< kropp >"
"< div stil =" position: absolute; bredd: 200px; höjd: 200px; top: 50%; vänster: 50% marginal:-100px 0 0 - 100px ">"
"< div style =" font: fet 14px verdana; text-align: center'> relä är $S < / div > "
"< br >< div stil =" text-align: center ">"
"< en href =" /? $S' >< img src = "http://ismanettoneblog.altervista.org/blog/wp-content/uploads/2014/02/bt _$S.png" >< /a > "
"< div > Controlla la 60W < div >"
"< / div >< / div >< / body >< / html >"
), relayLabel, linkLabel, linkLabel);
ether.httpServerReply(bfill.position());
}
}