Webserver Oluşturma Hakkında
  • İyi günler.

    Küçük statik boya atölyemiz de 2 adet fırın bulunmakta.

    Bunların ortalama sıcaklıklarını ölçmek istiyoruz. Isıtıcıyı kapatacak röle uygulaması ile bunu da bilgisayar üzerinden yapabiliyoruz. Ancak bizim istediğimiz web server kurup ağ üzerinden bilgisayarımızdan takip etmek istiyoruz. Fırınların olduğu bölgeye koyabileceğimiz bilgisayarımız yok.

    İnternetten araştırmalar yaptım ancak 1 ledi açıp kapatabilecek yada web sunucu açıp içerisinde html kod ile mesaj atabileceğimiz bir aşamada tıkandık. İstediğimiz otomasyon örneklerine ulaşıyoruz fakat uno içerisine atarken anlamadığımız betik hataları oluşuyor ve amacımıza ulaşamıyoruz.

    Hangi kütüphaneyi yada arduino ya ek parçamı almamız gerekli?

    Açıkçası 2 dht 11 in okuduğu değerlere ve 2 adet röleden web üzerinden kontak alabileceğimiz yazılım parça önerilerinize ihtiyaç duyuyoruz.

    Yada uno içerisinde ki basic web sayfası içerisine standart dht11 duman sensörlerine ait kodları nasıl atabileceğimizin küçük bir örneğini versenizde bize yeterli olacaktır. Baud değerleri farklı olan kodlar nasıl alt alta yada aynı setup loop aralıklarında çalıştıkları gibi.

    Şimdiden teşekkürler.
  • Düzeltme: (dht11 ile sıcaklık;
    duman sensörlerimiz de bulunmakta. yukarıda yanlış anlaşılmasın. 2 sıcaklık 2 duman ve röleleri server üzerinden takip ve açık kapatmak)
  • Hocam teşekkür ederim. Bende ki kart kablolu olduğu için bu videolara dikkat etmedim. C dilleri yada vb. kodlamaları anlamadığım için mümkün mertebe hazır kütüphaneleri kullanmayı ve bunlar üzerinden değişiklikler yapmak için uğraşıyorum. Varsa hazır kodlar + içeri çekme kodları vs. onları paylaşırsanız sevinirim.

    Hazırcı gibi görünebilirim ancak bu kısımlarda cidden zorlanıyorum.

    Teşekkürler.
  • Gavurların şu lafina bayılıyorum "NO PAIN, NO GAIN" veya transformers'in en kallavi cümlesi "NO SACRIFICE, NO VICTORY" :D,

    Siz bir başlayın gerisi gelir yoksa gelmez gerisi.
  • :) Hocalarım şöyle bir kod buldum. Açıkçası bu işime yarayacak gibi gözüküyor du ki...

    sketch_feb12a:95: error: 'r' was not declared in this scope

    else if (c != ‘\r’) {

    ^

    exit status 1
    stray '\221' in program

    Şeklinde bir hata vererek kodları ardunio ya atamadım.

    Bu kodda ki yanlışlık nedir?

    Açıkçası anladığım kadarı ile esp8266 almak gerekli, ancak şimdilik kablolu
    ecj ile devam etmek durumundayım.

    Yardımlarınız için şimdiden teşekkürler.

    #include

    #include

    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; /* Media Access control – ortam erişim kontrolü, 6 byte?tan oluşmakta ethernet donanım adresi diyebiliriz Ethernet modulleri üzerinde de yazılır. Robotistan Ethernet Module sayfasında alttan çekilen fotoğrafta yeralmakta – (Şekil-1) */

    byte ip[] = { 192, 168, 1, 103}; // cihaz IP adresimiz.

    EthernetServer server(80); /* PC?miz için varsayılan telnet portumuz hadi biz buna HTTP Kontrol Portu diyelim(port 80).*/

    void setup()

    {

    Ethernet.begin(mac, ip); /* sadece mac ve ip başlatmak yeterli. Eğer yukarıda gateway ve subnet?te belirtseydik burada onlarıda eklerdik(mac,ip,gateway,subnet) şeklinde ve onları da başlatmış olurduk.*/

    server.begin(); /*bu komut server?ımızı azarlar ve gelen bağlantıları dinlemesini emreder*/

    }

    void loop()

    {

    EthernetClient client = server.available(); /* Eğer web browser’ın okumak için hiçbir data?sı yok ise bu nesne (aşağıda örnek kod içerisinde belirtildiği üzere) bir if ifadesi içerisinde false olarak değerlendirilecek. Hadi devam edelim şimdi istemciye şartlarımızı söyleyelim bilgilerimizi alacak bir sensör bilgisi bile bizim için önemli, ağırdan satalım onun için. */

    if (client) {

    boolean current_line_is_blank = true; /* bir http isteği boş bir satır ile biter*/

    while (client.connected()) {

    if (client.available()) {

    char c = client.read();

    /*eğer satır sonuna gelindi ise ve bu satır boş ise http isteğimiz sona erdi demektir. Dolayısıyla bir cevap gönderebiliriz. */

    if (c == ‘\n’ && current_line_is_blank) {

    client.println(“HTTP/1.1 200 OK”); // standart http yanıt başlığı gönderir

    client.println(“Content-Type: text/html”);

    client.println();

    for (int i = 0; i < 7; i++) { /*Döngümüzü yazıyoruz kaç tane sensör varsa o kadar değişken giriyoruz döngü içerisine o kadar input değeri vardır.

    /*web browser?a analog input?lardan okunan değerlerimizi yazdırmak istiyoruz. */

    client.print(“analog input “);

    client.print(i); //hangi analog input olduğu yazılsın.

    client.print(” is “);

    client.print(analogRead(i));/* i. inci analog pine bağlı sensörden okunan değeri browser?a yazdırıyoruz.*/

    client.println(“
    ”); /* browser?ımızda(?html?den hatırlarız.) bir satır atlatalımda veriler birbirine girmesin*/

    /** Bu ?client.print? lardan sonra şu şekilde çıkışlar görüntüleyeceğiz.

    ?Analog input 0 is 0.06

    Analog input 1 is 0.7?

    Analog input 2 is 0.7?

    Analog input 3 is 0.7?

    Analog input 4 is 0.7?

    Analog input 5 is 0.7?

    Analog input 6 is 0.7?

    ?

    **/



    }

    break;

    }

    if (c == ‘\n’) {

    current_line_is_blank = true;// Yeni bir satıra başlıyoruz.

    }

    else if (c != ‘\r’) {

    current_line_is_blank = false;

    }

    }

    }

    delay(1);// browser?ımıza verileri almak için biraz zaman verelim

    client.stop();

    }

    }
  • IPAddress ip(172, 168, 27, 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);

    Kolay gelsin. İnternette yaptığım araştırmalarda orjinal ardunio içerisinde gelen exam da çalışmıyor.

    Sanıyorum ip adresi yüzünden bunun çözümü nasıldır? Açıkçası exam da 5 adet analog pini sayfada gösterebilmekte.

    Bu konu hakkında yardımcı olabilirmisiniz?
  • ayıp size! bir yardımcı olun. 4 gündür bilgisayar başında yatıp kalkıyorum. küçük bir tavsiye vermediniz.
  • Sitemkar yazmakta haklı olabilirsiniz ama buradaki mevcut üyeler 24 saat esas durusta bekleyip birisi birsey sorsa da cevaplasak diye bekliyor olamazlar dimi?Herkes gonlunden koptugu kadar burada vakit gecirip, bilgilerini paylaşıyorlar.Eger cevap yoksa ya bilenler burada değil yada cevabı kimse bilmiyor ama cevap genel 1.şıktır.
    Ne güzel sizde bu zaman içinde derin bir şekilde araştırmaya devam etmiş ve etmektesiniz.

    Sizin sistem ile arduino aynı ağda mi onu kontrol edin.Bilgisayarin ip adresi ve ağ maskesini kontrol edin.
  • projelerde her zaman arduıno ıcındekı yardımcı kodlardan gıdın network ayarlarını kendı başınıza yapabılmenız lazım ayrıca networkten bırseyler cagırma okuma ıcın tcp bilgisi de lazım. basıtten başlayın bır sefer tum kodu denemeden yazamazsınız yada bır yerden bulup kopyala yapıştırda da bır suru rısk var her kod herkese tam uymuyor uydugunu da gormedım bunca senedır.
    internetserver koduna bakın once onun calıstırın calıstıgından emın olun snra dıger eklerı yaparak sensorlerı tek tek deneyerek ekleyın. ben boyle yapıyorum uzun yoldan...
  • Farkındayım, koca forumda 2 kişi kalmışşınız. Yetişemiyorsunuz yada bıkmışşınız. O kadar senede 2 kişi daha aranıza katılmamış! Bu Türkiyenin genel sorunu. 16 tl lik bu kartla resmen knx gibi üstdüzey otomasyonlar programlayabilirsiniz... Harika birşey. Hata bende ki 10 sene önce çıkmış bu harikayla şimdi uğraşmaya başlıyorum. İşimizede yarayacak. Sonuçta kullanacağımız yere sağda solda satılan dedektörleri bağlar aynı kablolama ile ölçümleri kontak üzerinden de sağlarız. Amaç uğraşmak biraz kişisel tatmindi.

    c den anlamam. html css azcık php bilgim var. Günlerdir tırmalıyorum. Resmen tırmalıyorum. 19 senedir pc kullanıyorum. Ufak tefek bilgim var. 4 gün önce digital pinleri yada analog pinlerden çalışmayı copy paste yapıyordum. Şimdi tamamını elimle küçük fonksiyonlar ekleyerek çalıştırabiliyorum. Yazılımla gelen rbb ve backsoon sorunsuz çalışırken iş server.begin ethernet.beginlere geldiğinde yani ip çekme işine geldiğinde servere bilgi gitmiyor.rbb ve backsoon anladığım kadarı ile bu işe uygun değil. Olmuyor olmuyor. Pes etmiyorum. Sanıyorum hata benim ethernet kartında. Geri kalmış bir ürün olmuş gibi. Wifi zordur diye almamıştım şimdi pişman oldum.

    Bilgisayar mühendisi arkadaşı bıçak zoruyla 1.5 gündür esir aldım. Onunlada çalıştıramadık. Adam it müdürü. C kod yazarı. Burada yazılan üst düzey kodları yorumluyor yerlerini değiştiriyor 1 adım ileri 1 adım geri gidiyoruz. Tavsiye istediğim konu arkadaş ethernet kartını değiş wifiye geç olabilirdi. Yolum kimbilir ne zaman perpaya düşecek.

    Teşekkürler.
  • ornekler ıcındekı ethernetserver uygulamasını yukleyın ayarlardan elle ıp degerı verın bilgisayarınızada aynı gruptan bır fazlası ip adresı verın tarayıcıya server ipsi vererek baglanabılmenız lazım. gerısı kolay
  • 172.168.200.44 koda
    172.168.200.45 pc ye ip atadıktan sonra. server is at 249.249.249.249 com3 te yazıyor. Arama yaptım 249 ile ilgili hiçbirşey bulamadım.
    Ancak diğer orjinal kodları kullandığımda com3 te ortak mesaj

    Failed to configure Ethernet using DHCP
    connecting...
    connection failed

    disconnecting.

    Dhcp de problem var. Ancak internete çıkabiliyoruz ve ip dağıtımında da sorun yok. Olsa zaten bunları yazamazdım.

    Yada bina içerisinde dağılım yapılırken bizim kata gelen ap de dhcp aktif değil. Bir öncesinden ip dağıtıyor.

    Tabi kartı eve götürüp modemde dhcp yi aktif edeceğim. Hatırladığım kadarı ile dhcp aktif değildi diye hatırlıyorum.

    Ancak ev kullanıcılarının dhcpleri modemde varsayılan olarak kapalı geliyor diye biliyorum. Umarım bize denk gelmiştir.

    Teşekkürler hocam.
  • Hangi shield kullanıyorsun. Kullandığın shieldin pinlerinin kontrol ettinmi bazi pinleri kullanamazsin.
    Kullandığın yalın kodu paylasabilirmisin.
  • Kusura bakmayın hayatımı bu forumda geçirmiyorum @boyaci ,armut piş ağzıma düş yapılmasın diye youtube kanalında 30küsür dakika dil dökmüşüm , o 30dklılık bir videonun çekilmesi , yüklenmesi yaklaşık olarak 3saat almakta , bunu biliyor muydunuz?
    Emeğime saygısızlık etmeden önce 2 kere düşünün.
  • Kurdmen:
    ENC 28j60 kullanıyorum. Rbb server ve backsoon da sıkıntısız web-server oluşuyor. Ancak orjinal ether kütüphanesindeki webserver çalışmıyor. Hatta forumda anlatımlarda çalıştırılan bir çok kod da bende çalışmıyor. He hele 3 ledden oluşan otomasyon sayfası (anlatımlarda var) onun çalışmaması beni yıkmıştı. Ben oralara motor koyup çalıştıracaktım... Neyse rbb ile de devam edebilirim, ancak rbb garip bişey bakıyorum bakıyorum garib bişey. Hatta üniversite öğrencilerinin bitirme ödevlerini pdf olarak indirip elimle de yazdım... Onlar bile bir yerler de hata verebiliyor. Tüm bunları program sürümüne ve kullanılan kütüphanelerde yaşanan değişikliklere bağlıyorum. Bugün çalışan kodların 1 sene sonrada çalışması için herşeyi yedeklemeyi düşünüyorum. Birebir kütüphaneleri kopyalamaktan bir yerde tutmaktan bahsediyorum.


    Selam Embeded: Yukarıda haklı olduğunuzu zaten yazdım. İnsanlar burada birşeyler öğreniyorsa bir elin parmağını geçmeyecek kadar kişi sayesinde eyw. Ancak lütfen dikkat edin kimseden kod vs istemedim. Bu saate kadar bugünde uğraştım... ENC 28j60 ın dhcp sorunu olduğunu yada bendekinin böyle olduğunu gerek bir mikrotik router üzerinden gerekse de evdeki modem üzerinden denedim. Cihaz dhcp de sorun yaşamakta... Benim 5 gündür kod ile gece gündüz uğraşmalarımı eminim yukarıda yorum yapan hocalar 1-2 dakika (abartmıyorum) yazabilirlerdi :) Ne oldu bu 5. günün sonunda elimde bulunan duman, gaz, ısı, led, buzzer vb. parçaları kendi elimle yazacak duruma geldim. Hala web server oluşturamadık ancak program içersinde gelen rbb yi kurcalayarak duman ve sıcaklığı anlık gösterebildim. Kişisel olarak mutlumuyum evet mutluyum. Bunu kullanacakmıyız kesinlikle evet. Bunda özellikle bu forumun ciddi katkısı var. Sağolun var olun.

    Ancak araştırmaya devam ettim web server ve otomasyon olarak kullanım kolaylığı olarak rasperilerin biraz daha iyi olduğunu gördüm. Kullanım kolaylığından bahsediyorum, ve gene gördüğüm kadarıyla 3 rasperiyi bir araya getirsen 1 ardinuo etmez.İlginç Rasperi içerisine wordpress kurulduğunu dahi duydum. Otomasyon tadında konuşacaksak evet kesinlikle görüntü olarak daha iyi sonuçlar verecektir. Yada bir site üzerinden farklı senaryolar zevk için bile oluşturulabilir. Rasperinin içerisine mail sunucusunun kurulması mail atma meselesinin ardunio ile benim seviyemde ne kadar karmaşık olduğunu benden daha iyi anlayacaksınızdır ki daha standart web server çalıştıramadık. Wifi modülünü aldığımda bunların biteceğine eminim...


    not: imla devrik düşük cümle anlatımlar için özür dilerim. Hızlıca yazmaya çalıştım.

    Kolay gelsin.

    kullandığım kod: enc 28j60 ile

    /*
    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
    modified 02 Sept 2015
    by Arturo Guadalupi

    */

    //////////////// spi h ve ethernet.h sayfada gözükmemiş ancak ekleniyorlar//////

    #include
    #include

    // Enter a MAC address and IP address for your controller below.
    // The IP address will be dependent on your local network:
    byte mac[] = {
    0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
    };
    IPAddress ip(192, 168, 1, 4); // buraya enc nin aldığı adresi yazıyorum...

    // 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 native USB port only
    }


    // start the Ethernet connection and the server:
    Ethernet.begin(mac, ip);
    server.begin();
    Serial.print("server is at "); // burada 249.249.249.249 yazıyor. ve com3 duruyor.
    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("");
    // 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("
    ");
    }
    client.println("");
    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");
    Ethernet.maintain();
    }
    }
  • Ne söyleseniz azdır.

    ///A simple web server that shows the value of the analog input pins.
    using an Arduino Wiznet Ethernet shield.///

    Dayaklık adamım... Kusura bakmayın.
  • IPAddress ip(192, 168, 1, 4);
    Burda tanımlanan ip senin modeme uygunmu
    ornegin varsayilan ag gecidi ne olarak gorunuyor sorun burda olabilir.

    varsayilan ag gecidini dikkatli bir kontrol edermisin
    192, 168, 1, 1
  • Hocam anladığım kadarı ile yazılan bu betikler genelde kullanılan ethernet kartları yada wifi kartları ile uyumlu yazılıyorlar. Yada benim kullandığım ethernet kartı dhcp sorunu yüzünden bazı fonksiyonları çalışmıyor. İnternet üzerinden de defalarca denememe rağmen çalışmadı. Dün akşam gene arama taramalarım esnasında bir tane özellikle ecs 28j için yazılmış betiği çalıştırabildim.
    192.168.1.4 ethernet kartının aldığı adres, ...1.5 pc nin aldığı adresti.

    ///A simple web server that shows the value of the analog input pins.
    using an Arduino Wiznet Ethernet shield.///

    Bunun da bir önemi yokmudur hocam?
  • Hocam hangi arduino surumunu kullanıyorsunuz. kutuphanesi hangi surume uygun yazilmis. Bence 1.0.6 surumunu deneyin kutuphane yeni ide desteklemiyor olabilir.

    link: https://www.arduino.cc/en/Main/OldSoftwareReleases#1.0.x

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.