Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *
Používám arduino-uno, ale nemůžu získat přístup ke své webové stránce. Když spustím arduino (ctrl + shift + m), zobrazí výstup. Když se ale dostanu na svou webovou stránku, zobrazí se na tuto webovou stránku „nemůžete“.
Můj webový server funguje dobře s místní IP a místní sítí s ethernetovým kabelem.
práce s přesměrováním portů / veřejnou IP při použití jiného síťového připojení k mobilu, jak je uvedeno v článku.
nefunguje v mém mobilním nebo přenosném počítači, když používáte router WiFi / Wireless ve stejné síti s místní IP. Prosím, dejte mi vědět, kde se mýlím.
Potřebuji pomoc v tomto kódu, protože když nastane nouzové situace 4 (vysoká), nemůžu se vrátit do předchozího stavu... jak to mohu udělat ???
// POUZE ARDUINO 1.0+
// POUZE ARDUINO 1.0+
#zahrnout
#zahrnout
boolean čtení = false;
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
byte ip [] = {192, 168, 16, 71}; // Pouze ruční nastavení
// bajtová brána [] = {192, 168, 1, 1}; // Pouze ruční nastavení
// byte subnet [] = {255, 255, 255, 0}; // Pouze ruční nastavení
// v případě potřeby změnit MAC adresu (Very Rare)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
Server EthernetServer = EthernetServer (80); // port 80
////////////////////////////////////////////////////////////////////////
neplatné nastavení () {
Serial.egegin (9600);
// Kolíky 10,11,12 a 13 se používají pro 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); // pro ruční nastavení
server.begin ();
Serial.println (Ethernet.localIP ());
}
void loop () {
digitalWrite (6, LOW);
if ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == HIGH)
{
digitalWrite (3, HIGH);
zpoždění (5000);
digitalWrite (3, LOW);
}
}
checkForClient (); // naslouchejte příchozím klientům a zpracovejte požadavek.
}
void checkForClient () {
Klient EthernetClient = server.available ();
if (client) {
// http požadavek končí prázdným řádkem
boolean currentLineIsBlank = true;
boolean sentHeader = false;
while (client.connected ()) {
if (client.available ()) {
if (! sentHeader) {
// poslat standardní hlavičku odpovědi http
client.println ("HTTP / 1.1 200 OK");
client.println ("Content-Type: text / html");
client.println ();
sentHeader = true;
}
char c = client.read ();
if (čtení && c == '') čtení = false;
pokud (c == '?') čtení = true; // našel?, začněte číst informace
if (čtení) {
Serial.print (c);
přepínač (c) {
případ '4':
// zde přidejte kód pro spuštění na 2
triggerPin (4, klient);
přestávka;
případ '6':
// zde přidejte kód pro spuštění na 3
triggerPin (6, klient);
přestávka;
}
}
if (c == '\ n' && currentLineIsBlank) break;
if (c == '\ n') {
currentLineIsBlank = true;
} jinak pokud (c! = '\ r') {
currentLineIsBlank = false;
}
}
}
zpoždění (1); // dát webovému prohlížeči čas na příjem dat
client.stop (); // zavřete připojení:
}
}
void triggerPin (int pin, EthernetClient client) {
// bliká špendlík - Klient potřeboval pouze pro účely výstupu HTML.
client.print („Zapnutí špendlíku“);
client.println (pin);
client.print ("");
if (pin, HIGH)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}
}
Nebylo by to snazší a levnější to udělat s Raspberry Pi? Nejsem si úplně jistý, protože jsem nikdy nepoužil Arduino, ale mám Pi.