Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *
Folosesc un arduino-uno, dar nu pot accesa pagina mea web. Am deja atribuit adresa IP la arduino. atunci când execut arduino (ctrl + shift + m), afișează ieșire. Dar când accesez pagina mea web, va afișa „nu puteți” să ajungeți la această pagină web.
Serviciul meu Web funcționează bine cu IP-ul local și rețeaua locală cu cablu Ethernet.
lucrul cu redirecționarea porturilor / IP public atunci când utilizați o altă conexiune de rețea la mobil, așa cum se menționează în articol.
nu funcționează în mobil sau laptop atunci când folosesc routerul Wifi / Wireless în aceeași rețea cu IP local. Vă rugăm să anunțați unde greșesc.
Am nevoie de ajutor în acest cod, pentru că atunci când apare o situație de urgență la 4 (mare) nu pot reveni la starea anterioară... cum pot face asta ???
// DOAR ARDUINO 1.0+
// DOAR ARDUINO 1.0+
#include
#include
citire booleană = fals;
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
byte ip [] = {192, 168, 16, 71}; // Doar configurare manuală
// byte gateway [] = {192, 168, 1, 1}; // Doar configurare manuală
// byte subnet [] = {255, 255, 255, 0}; // Doar configurare manuală
// dacă este nevoie să schimbați adresa MAC (Foarte rar)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetServer server = EthernetServer (80); // port 80
////////////////////////////////////////////////////////////////////////
void setup () {
Serial.begin (9600);
// Pinii 10,11,12 și 13 sunt folosiți de scutul Ethernet
pinMode (2, INPUT); // SWICH
pinMode (3, OUTPUT); //LAMP
pinMode (4, INPUT); // EMERGANCY
pinMode (6, INPUT);
Ethernet.begin (mac);
//Ethernet.begin (mac, ip, gateway, subnet); // pentru configurare manuală
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);
întârziere (5000);
digitalWrite (3, LOW);
}
}
checkForClient (); // ascultați clienții primiți și verificați procesul.
}
void checkForClient () {
Client EthernetClient = server.available ();
if (client) {
// o solicitare http se încheie cu o linie goală
boolean currentLineIsBlank = true;
boolean sentHeader = fals;
while (client.connected ()) {
if (client.available ()) {
if (! sentHeader) {
// trimiteți un antet de răspuns http standard
client.println ("HTTP / 1.1 200 OK");
client.println ("Content-Type: text / html");
client.println ();
sentHeader = true;
}
char c = client.read ();
if (citire &&c == '') citire = fals;
if (c == '?') citire = true; // a găsit?, începeți să citiți informațiile
if (citire) {
Serial.print (c);
comutator (c) {
carcasa „4”:
// adăugați cod aici pentru a declanșa pe 2
triggerPin (4, client);
pauză;
carcasa „6”:
// adăugați cod aici pentru a declanșa pe 3
triggerPin (6, client);
pauză;
}
}
dacă (c == '\ n' && currentLineIsBlank) se rup;
if (c == '\ n') {
currentLineIsBlank = true;
} else if (c! = '\ r') {
currentLineIsBlank = fals;
}
}
}
întârziere (1); // acordați browserului web timp pentru a primi datele
client.stop (); // închideți conexiunea:
}
}
void triggerPin (pin int, client EthernetClient) {
// clipește un pin - Clientul este necesar doar în scopuri de ieșire HTML.
client.print ("Pornirea acvionului");
client.println (pin);
client.print ( "");
if (pin, HIGH)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}
}
Nu ar fi mai ușor și mai ieftin să faceți acest lucru cu un Zmeură Pi? Nu sunt foarte sigur pentru că nu am folosit niciodată un Arduino, dar am un Pi.