Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *
ik gebruik een arduino-uno, maar ik heb geen toegang tot mijn webpagina. ik had al een ip-adres toegewezen aan arduino. wanneer ik arduino (ctrl + shift + m) uitvoer, wordt de uitvoer weergegeven. Maar wanneer ik naar mijn webpagina ga, wordt "u kunt niet" op deze webpagina weergegeven.
Mijn webserver werkt prima met lokaal IP en lokaal netwerk met ethernetkabel.
werken met port forwarding / openbare IP bij gebruik van een andere netwerkverbinding naar mobiel zoals vermeld in het artikel.
werkt niet op mijn mobiel of laptop bij gebruik van de wifi / draadloze router in hetzelfde netwerk met lokale IP.Laat me weten waar ik fout ga.
ik heb hulp nodig bij deze code, want wanneer zich een noodsituatie voordoet met 4 (hoog), kan ik niet terugkeren naar de vorige staat... hoe kan ik dit doen ???
ALLEEN ARDUINO 1.0+
ALLEEN ARDUINO 1.0+
#include
#include
boolean reading = false;
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
byte ip [] = {192, 168, 16, 71}; // Alleen handmatige configuratie
// byte gateway [] = {192, 168, 1, 1}; // Alleen handmatige configuratie
// bytesubnet [] = {255, 255, 255, 0}; // Alleen handmatige configuratie
// indien nodig om het MAC-adres te wijzigen (zeer zeldzaam)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetServer-server = EthernetServer (80); // poort 80
////////////////////////////////////////////////////////////////////////
ongeldige setup () {
Serial.begin (9600);
// Pins 10,11,12 & 13 worden gebruikt door het ethernet-schild
pinMode (2, INPUT); // SWICH
pinMode (3, OUTPUT); //LAMP
pinMode (4, INPUT); // EMERGANCY
pinMode (6, INPUT);
Ethernet.begin (mac);
//Ethernet.begin (mac, ip, gateway, subnet); // voor handmatige installatie
server.begin ();
Serial.println (Ethernet.localIP ());
}
leegte lus () {
digitalWrite (6, LOW);
if ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == HIGH)
{
digitalWrite (3, HIGH);
vertraging (5000);
digitalWrite (3, LOW);
}
}
checkForClient (); // luister naar inkomende klanten en verwerk qequest.
}
ongeldig checkForClient () {
EthernetClient-client = server.beschikbaar ();
if (klant) {
// een http-verzoek eindigt met een lege regel
boolean currentLineIsBlank = true;
boolean sentHeader = false;
while (client.connected ()) {
if (client.available ()) {
if (! sentHeader) {
// stuur een standaard http-antwoordkop
client.println ("HTTP / 1.1 200 OK");
client.println ("Content-Type: text / html");
client.println ();
sentHeader = waar;
}
char c = client.read ();
if (lezen && c == '') lezen = false;
als (c == '?') lezen = waar; // gevonden?, lees de info
if (lezen) {
Serial.print (c);
schakelaar (c) {
zaak '4':
// voeg hier code toe om op 2 te activeren
triggerPin (4, client);
breken;
zaak '6':
// voeg hier code toe om op 3 te activeren
triggerPin (6, klant);
breken;
}
}
if (c == '\ n' && currentLineIsBlank) breken;
if (c == '\ n') {
currentLineIsBlank = true;
} anders als (c! = '\ r') {
currentLineIsBlank = false;
}
}
}
vertraging (1); // Geef de webbrowser de tijd om de gegevens te ontvangen
client.stop (); // sluit de verbinding:
}
}
void triggerPin (int pin, EthernetClient-client) {
// blink a pin - Client alleen nodig voor HTML-outputdoeleinden.
client.print ("Turning on pin");
client.println (pin);
client.print ("");
if (pin, HIGH)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}
}
Zou het niet makkelijker en goedkoper zijn om dit met een Raspberry Pi te doen? Ik weet het niet zeker, want ik heb nog nooit een Arduino gebruikt, maar ik heb wel een Pi.