1. sayfa
Takip açıklama gelirse güzel olur benimde projelerimin arasında bu ethernet olayı |
kod yanlış. bunu dene istersen.
|
valla hocam ilgin için çok tşk ederim kodları yazan/bulan eline sağlık Allah razı olsun senden, ethernet shield'ım da sorun cıkmıstı 1 e 1 değişim için gonderdım 2-3 gune gelir arduino 1.6.2 ye attım kodları hata vermedi ethernet shield'ın led pin i 8 diye biliyordum ben 2'de çalışır umarım ledler kaba taslak şöyle bi deneme yapmak istiyordum bende örneğin; < Resime gitmek için tıklayın > < Resime gitmek için tıklayın > < Resime gitmek için tıklayın > yazdığınız 2 nolu pin ve ip adresleri biraz kafamı karıştırdı ardunionun hazır orneklerınde pin 8 ve ip 192.168.1.177 olarak gösteriyordu sanırsam keyfi ip ataması yapilabiliyor ethernet shield'ım gelince hemen deneyeceğim tekrardan tşk ederim |
shield deki pini tam bilmiyorum ben direk led taktım pin2 ye :) ip tabi kendi ağına göre keyfi . |
shield'ım gelince hemen deneyeceğim hocam tekrardan çok tşk ederim ![]() |
birkaç ekleme ile 4-8 kanal röle kontrolü yapılabilir deniyor, ama ben beceremedim bir türlü. bt, ir, rf ile röle kontrol ediyorum ama wifi ve ethernet'i beceremedim biraz uğraşalım izinli günümüzde.. |
Benim modemin TP-LINK. Yani modem arayüzünehttp://192.168.0.1/ ile ulaşabiliyorum. Arduinonun kendi sitesinde verdiği web server örneğini buna göre değiştiriyorum "192.168.0.177" yapıyorum mesela. Fakat bunu chrome'a yazdığımda web adresi kullanılamıyor diyor. Sorun nedir acaba? İyi forumlar. |
mac adresininizi doğru tanımladığınızdan emin olun ethernet shield'ın arkasında sticker ustunde gelir mac adresi genelde, ip değerini istediğiz biçimde değiştirip deneyin byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED } gibi 0* harfler-rakamlar girilecek < Resime gitmek için tıklayın > |
ürünü çinden sipariş ettim, maalesef yazmıyor. modem arayüzünden baktım göremedim. bilgisayara direkt bağlayınca şu adresi görüntüledim bunu 0x00 şeklinde programa yazınca değişiklik olmadı. < Resime gitmek için tıklayın > |
önce kodlamanızın doğruluğunu arduino programı üzerinden kontrol ettirin sorun yoksa hata vermiyorsa, çalışıtır-cmd-ipconfig -all komutu ile bilgisayara takılı tüm medyaları kontorol edin cihanız takılı iken listelenecektir oradan net bir şekilde mac adresini görebilirsiniz gönderdiğiniz adres ile eşleşiyorsa kodlamanızda bu komutu gateway ve subnet i kaldırıp bu şekilde düzenleyin ; Ethernet.begin(mac, ip) , kullandığınız ip'de sorun olabilir shield takılı iken gene ipconfig -a xxx.xxx.xxx.xxx den atamak istediğiniz adrese kontrol amaçlı ping atın geri dönüş sağlanıyorsa ip sorunsuz demektir, shield a ethernet.begin komutu ile sadece mac yada ip ile bağlanmayı deneyin sizin için biraz forumları karıştırdım sorununuzu çözmek adına sıkça uygulanan problemi çözebilcek yöntemler bunlarmış tabi sizin shield klon mu değil mi bilemicem klonlar hakkında pek bir bilgim yok bende yeni sayılırım bu işte aslında sizide yanlış yönlendirmek istemem bunlarla sonuca varamazsanız kasirga_ hocamın bu konuda deneyimi olabilir belki umarım sorununuz en kısa sürede çözüm bulur iyi forumlar dilerim.. |
Cevap için teşekkür ederim mac adresinden emin oldum, kodu şu şekilde değiştirdim, fakat yine adrese giremedim. byte mac[] = { 0xF4, 0x6D, 0x04, 0x57, 0x4D, 0x5D }; IPAddress ip(192, 168, 0, 177); ipconfig -a xxx.xxx.xxx.xxx bu komutu anlayamadım. |
şu şekilde shield takılı iken ipconfig -a 192.168.0.177 yada shield a bağlanmak istediğiniz heran gibir bir adres'e ping atıyoruz eğer sorun yoksa bu şekilde geri dönüş olacaktır. varsa bağlantı zaman aşımına uğradı yada paket loss %100 gibi uyarılar verecektir. isterseniz kullandığınız kodlamayı buraya atın ne eksik ne fazla net bir şekilde görebiliriz. < Resime gitmek için tıklayın > |
< Resime gitmek için tıklayın > arduinonun kendi örneğindeki ip ve mac adresini değiştirdim sadece. /* Web Server A simple web server that shows the value of the analog input pins. using an Arduino Wiznet Ethernet shield. Circuit: * Ethernet shield attached to pins 10, 11, 12, 13 * Analog inputs attached to pins A0 through A5 (optional) created 18 Dec 2009 by David A. Mellis modified 9 Apr 2012 by Tom Igoe */ #include <SPI.h> #include <Ethernet.h> // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xF4, 0x6D, 0x04, 0x57, 0x4D, 0x5D }; IPAddress ip(192, 168, 0, 177); // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80); void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } // start the Ethernet connection and the server: Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); } void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println("new client"); // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); // if you've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); // the connection will be closed after completion of the response client.println("Refresh: 5"); // refresh the page automatically every 5 sec client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); // output the value of each analog input pin for (int analogChannel = 0; analogChannel < 6; analogChannel++) { int sensorReading = analogRead(analogChannel); client.print("analog input "); client.print(analogChannel); client.print(" is "); client.print(sensorReading); client.println("<br />"); } client.println("</html>"); break; } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); Serial.println("client disconnected"); } } |
kusura bakmayın biraz geç cevap verdim shield ım yeni geldi bendede aynı problem varmısbiraz araştırdım sorun basıt shield takılı iken ağ bağlantısından ayarlardan shield'ınızın ip sini bulun daha sonra atıyorum ipsi 170.0.0.200 ise kodlamanızda IPAddress ip(170,0,0,201-202-203); dilediğiniz gibi değiştirin çalışacaktır. |
1. sayfa
#include < Ethernet.h >
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);
EthernetServer server(80);
void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT);
Ethernet.begin(mac, ip);
server.begin();
}
void loop()
{
if (digitalRead(8))
{
client.print (" LED is < font color=’green’ >ON< /font >");
}else{
client.print (" LED is < font color=’red’ >OFF< /font >");
}
client.println ( "< br / >" );
client.print ( "" );
client.print ( "< P > < INPUT type= \”radio\” name=\”status\” value=\”1\” >ON" );
client.print ( "< P > < INPUT type= \”radio\” name=\”status\” value=\”0\” >OFF" );
client.print ( "< P > < INPUT type= \”submit\” value=\”Submit\” > < /FORM >" );
break;
if (c == '\n') {
currentLineIsBlank = true;
buffer="";
} else if (c == '\r') {
if(buffer.indexOf("GET /?status=1")>=0)
digitalWrite(8,HIGH);
if(buffer.indexOf("GET /?status=0")>=0)
digitalWrite(8,LOW);
}
else {
}
}
çıktıyı oluşturmak için örnek çeşitlerinden faydalanmaya çalıştım void setup da kütüphane ve server işlemlerini gerçekleştirdim sorun çıkarmadı
void loop içerisinde sırasıyla web arayüzü butonları daha sonra sayfa üzerinden butonlara tıklayınca led yanıp sönemsini istediğim komutları yazdım fakat client,break,buffer,c komutları için was not declared in this scope hatası almaktayım sorunun çözümü için arduino programlama hk. bilgi sahibi olan forum sakinlerinden yardım istemekteyim iyi günler dilerim.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.