Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *
Ma kasutan arduino-unot, kuid ma ei pääse oma veebilehele juurde. Mul oli juba arduinole IP-aadress määratud. kui ma käivitan arduino (ctrl + shift + m), kuvatakse see väljund. Kuid kui ma oma veebisaidile pääsen, kuvatakse sellel sellel lehel kuvatud teade „te ei saa”.
Minu veebiserver töötab kohaliku IP ja Etherneti kaabli abil hästi.
pordi edastamise / avaliku IP-ga töötamine, kui kasutatakse muud võrguühendust mobiiliga, nagu artiklis mainitud.
ei tööta minu mobiiltelefonis ega sülearvutis, kui kasutate WiFi ja traadita ruuterit samas võrgus kohaliku IP-ga. Palun andke teada, kuhu ma valesti lähen.
Vajan selles koodis abi, sest kui hädaolukord juhtub 4 (kõrgeks) ma ei saa tagasi eelmisesse olekusse... kuidas ma saan seda teha ???
// AINULT ARDUINO 1.0+
// AINULT ARDUINO 1.0+
# kaasata
# kaasata
tõeväärtuse lugemine = vale;
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
bait ip [] = {192, 168, 16, 71}; // Ainult käsitsi seadistamine
// baitvärav [] = {192, 168, 1, 1}; // Ainult käsitsi seadistamine
// baitide alamvõrk [] = {255, 255, 255, 0}; // Ainult käsitsi seadistamine
// kui on vaja muuta MAC-aadressi (väga harv)
bait mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetServeri server = EthernetServer (80); // port 80
////////////////////////////////////////////////////////////////////////
kehtetu seadistus () {
Serial.begin (9600);
// Etherneti kaitsekilp kasutab tihvte 10, 11, 12 ja 13
pinMode (2, INPUT); // SWICH
pinMode (3, VÄLJUND); //LAMP
pinMode (4, INPUT); // HÄDASEADMED
pinMode (6, INPUT);
Ethernet.begin (mac);
//Ethernet.begin (mac, ip, lüüs, alamvõrk); // käsitsi seadistamiseks
server.begin ();
Serial.println (Ethernet.localIP ());
}
tühine silmus () {
digitalWrite (6, LOW);
if ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == HIGH)
{
digitalWrite (3, HIGH);
viivitus (5000);
digitalWrite (3, LOW);
}
}
checkForClient (); // kuulake sissetulevaid kliente ja töötage qequest.
}
void checkForClient () {
EthernetClient klient = server.saadav ();
if (klient) {
// http-päring lõpeb tühja reaga
boolean currentLineIsBlank = tõene;
boolean sentHeader = vale;
while (client.connected ()) {
if (klient.saatav ()) {
if (! sentHeader) {
// saatke standardne http-vastuse päis
klient.println ("HTTP / 1.1 200 OK");
klient.println ("Sisu tüüp: tekst / html");
klient.println ();
sentHeader = tõsi;
}
char c = klient.read ();
if (lugemine && c == '') lugemine = vale;
if (c == '?') lugemine = tõene; // leidsite?, alustage teabe lugemist
if (lugemine) {
Järjestikune print (c);
lüliti (c) {
juhtum '4':
// lisage siia kood 2 käivitamiseks
triggerPin (4, klient);
vaheaeg;
juhtum '6':
// 3 käivitamiseks lisage siia kood
triggerPin (6, klient);
vaheaeg;
}
}
if (c == '\ n' && currentLineIsBlank) puruneb;
if (c == '\ n') {
currentLineIsBlank = true;
} muidu kui (c! = '\ r') {
currentLineIsBlank = vale;
}
}
}
viivitus (1); // andke veebibrauserile aega andmete vastuvõtmiseks
klient.stop (); // sulge ühendus:
}
}
void triggerPin (int pin, EthernetClient klient) {
// vilku pin - klient vajab ainult HTML-i väljundi jaoks.
klient.print ("nööpnõela sisselülitamine");
klient.println (tihvt);
klient.print ("");
if (pin, HIGH)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}
}
Kas vaarikapiimiga oleks seda lihtsam ja odavam teha? Ma pole päris kindel, kuna ma pole kunagi Arduinot kasutanud, aga mul on Pi.