Vaša e-mailová adresa nebude zverejnená. Povinné polia sú označené *
Používam arduino-uno, ale nemôžem sa dostať na moju webovú stránku. Už som pridelil ip adresu arduino. Keď spustím arduino (ctrl + shift + m), zobrazí sa výstup. Keď sa však dostanem na svoju webovú stránku, zobrazí sa na túto webovú stránku „nemôžete“.
Môj webový server funguje dobre s lokálnou IP a lokálnou sieťou s ethernetovým káblom.
práca s presmerovaním portov / verejnou IP pri použití iného sieťového pripojenia k mobilu, ako je uvedené v článku.
nefunguje v mobilnom telefóne alebo notebooku, keď používam smerovač Wifi / Wireless v rovnakej sieti s miestnou adresou IP. Dajte mi vedieť, kde sa pokazím.
Potrebujem pomoc v tomto kóde, pretože keď nastane núdzová situácia o 4 (vysoká), nemôžem sa vrátiť do predchádzajúceho stavu... ako to môžem urobiť ???
// LEN ARDUINO 1.0+
// LEN ARDUINO 1.0+
#include
#include
booleovské čítanie = nepravdivé;
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
byte ip [] = {192, 168, 16, 71}; // Iba manuálne nastavenie
// bajtová brána [] = {192, 168, 1, 1}; // Iba manuálne nastavenie
// byte subnet [] = {255, 255, 255, 0}; // Iba manuálne nastavenie
// v prípade potreby zmeniť adresu MAC (veľmi zriedkavé)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
Server EthernetServer = EthernetServer (80); // port 80
////////////////////////////////////////////////////////////////////////
neplatné nastavenie () {
Serial.egegin (9600);
// Kolíky 10,11,12 a 13 sa používajú pre ethernetový štít
pinMode (2, INPUT); // SWICH
pinMode (3, VÝSTUP); //LAMP
pinMode (4, INPUT); // EMERGANCY
pinMode (6, INPUT);
Ethernet.begin (mac);
//Ethernet.begin (mac, ip, gateway, subnet); // pre manuálne nastavenie
server.begin ();
Serial.println (Ethernet.localIP ());
}
void loop () {
digitalWrite (6, LOW);
if ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == VYSOKÉ)
{
digitalWrite (3, HIGH);
oneskorenie (5000);
digitalWrite (3, LOW);
}
}
checkForClient (); // počúvajte prichádzajúcich klientov a spracujte požiadavku.
}
void checkForClient () {
Klient EthernetClient = server.available ();
if (client) {
// http požiadavka končí prázdnym riadkom
boolean currentLineIsBlank = true;
boolean sentHeader = false;
while (client.connected ()) {
if (client.available ()) {
if (! sentHeader) {
// poslať štandardnú hlavičku odpovede http
client.println („HTTP / 1.1 200 OK“);
client.println („Content-Type: text / html“);
client.println ();
sentHeader = true;
}
char c = client.read ();
if (čítanie && c == '') čítanie = false;
ak (c == '?') čítanie = true; // našiel?, začnite čítať informácie
if (reading) {
Sériová tlač (c);
prepínač (c) {
prípad '4':
// pridajte kód, aby sa spustil 2.
triggerPin (4, klient);
prestávka;
prípad „6“:
// pridajte kód, aby sa spustil 3.
triggerPin (6, klient);
prestávka;
}
}
ak (c == '\ n' && currentLineIsBlank) zlomiť;
if (c == '\ n') {
currentLineIsBlank = true;
} inak, ak (c! = '\ r') {
currentLineIsBlank = false;
}
}
}
oneskorenie (1); // dať webovému prehliadaču čas na príjem údajov
client.stop (); // ukončenie spojenia:
}
}
void triggerPin (int pin, klient EthernetClient) {
// blikať špendlík - Klient potreboval iba na účely výstupu HTML.
client.print („Zapnutie špendlíka“);
client.println (pin);
client.print ( "");
ak (špendlík, VYSOKÝ)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}
}
Nebolo by ľahšie a lacnejšie to urobiť s Raspberry Pi? Nie som si úplne istý, pretože som nikdy nepoužil Arduino, ale mám pi.