E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlendi *
Bir arduino-uno kullanıyorum, ancak web sayfama erişemiyorum. zaten arduino'ya ip adresi atamıştım. Arduino'yu (ctrl + shift + m) çalıştırdığımda çıktıyı görüntüler. Ancak web sayfama eriştiğimde, bu web sayfasına "siz yapamazsınız" mesajı görüntülenecektir.
Web sunucum yerel IP ve ethernet kablosu ile yerel ağ ile iyi çalışıyor.
makalede belirtildiği gibi mobil cihazlara başka ağ bağlantısı kullanırken bağlantı noktası yönlendirme / genel IP ile çalışma.
Yerel IP ile aynı ağda Wifi / Kablosuz yönlendirici kullanırken cep telefonumda veya dizüstü bilgisayarımda çalışmıyor.Lütfen yanlış yaptığımı bana bildirin.
acil durum 4 (yüksek) tarafından meydana geldiğinde ben önceki durumuna geri olamaz çünkü bu kodda yardıma ihtiyacım var... nasıl bunu yapabilirim ???
// SADECE ARDUINO 1.0+
// SADECE ARDUINO 1.0+
#Dahil etmek
#Dahil etmek
boolean okuma = yanlış;
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
bayt ip [] = {192, 168, 16, 71}; // Yalnızca manuel kurulum
// bayt ağ geçidi [] = {192, 168, 1, 1}; // Yalnızca manuel kurulum
// bayt alt ağı [] = {255, 255, 255, 0}; // Yalnızca manuel kurulum
// MAC adresini değiştirmeniz gerekirse (Çok seyrek)
bayt mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetServer sunucusu = EthernetServer (80); // bağlantı noktası 80
////////////////////////////////////////////////////////////////////////
void setup () {
Serial.begin (9600);
// 10,11,12 ve 13 pinleri ethernet kalkanı tarafından kullanılıyor
pinMode (2, INPUT); // SWICH
pinMode (3, ÇIKIŞ); //LAMP
pinMode (4, INPUT); // ACİL DURUM
pinMode (6, GİRİŞ);
Ethernet.begin (mac);
//Ethernet.begin (mac, ip, ağ geçidi, alt ağ); // manuel kurulum için
) (Server.begin;
Serial.println (Ethernet.localIP ());
}
void loop () {
digitalWrite (6, DÜŞÜK);
if ((digitalRead (4) == DÜŞÜK) || (digitalRead (6) == YÜKSEK))
{
if (digitalRead (2) == YÜKSEK)
{
digitalWrite (3, YÜKSEK);
gecikme (5000);
digitalWrite (3, DÜŞÜK);
}
}
checkForClient (); // gelen istemcileri dinleyin ve qequest'i işleyin.
}
void checkForClient () {
EthernetClient istemcisi = server.available ();
if (müşteri) {
// http isteği boş bir satırla bitiyor
boolean currentLineIsBlank = true;
boolean sentHeader = yanlış;
while (client.connected ()) {
if (client.available ()) {
if (! sentHeader) {
// standart bir http yanıt başlığı gönder
client.println ("HTTP / 1.1 200 TAMAM");
client.println ("İçerik Tipi: metin / html");
) (Client.println;
sentHeader = true;
}
char c = client.read ();
eğer (&& c == '' okunuyorsa) = yanlış;
eğer (c == '?') okuma = doğru; // bulundu?, bilgileri okumaya başlayın
if (okuyor) {
Seri.print (c);
anahtar (c) {
vaka '4':
// 2'de tetiklemek için kodu buraya ekleyin
triggerPin (4, istemci);
break;
vaka '6':
// 3'te tetiklemek için kodu buraya ekleyin
triggerPin (6, istemci);
break;
}
}
(c == '\ n' && currentLineIsBlank) kesilirse;
if (c == '\ n') {
currentLineIsBlank = true;
} else if (c! = '\ r') {
currentLineIsBlank = yanlış;
}
}
}
gecikme (1); // web tarayıcısına verileri alması için zaman tanıyın
) (Client.stop; // bağlantıyı kapat:
}
}
void triggerPin (int pin, EthernetClient istemcisi) {
// bir pimi yanıp sönme - İstemci yalnızca HTML çıktısı amaçları için gereklidir.
client.print ("Pimi açma");
client.println (pin);
( "") Client.print;
eğer (pim, YÜKSEK)
{
digitalWrite (4, YÜKSEK);
digitalWrite (6, YÜKSEK);}
}
Bir Raspberry Pi ile bunu yapmak daha kolay ve ucuz olmaz mıydı? Gerçekten emin değilim çünkü hiç Arduino kullanmadım ama Pi'm var.