CV. ZENTRONIC - Perusahaan Jasa Listrik dan Elektronika

Minggu, 26 Maret 2023

Arduino Ethernet Shield W5100 untuk Kendali LED dan mengirim data suhu/lembab ke browser

 

Introduction :

Arduino Ethernet Shield V1 menghubungkan Arduino Anda ke internet hanya dalam hitungan menit. Cukup colokkan modul ini ke papan Arduino Anda, sambungkan ke jaringan Anda dengan kabel RJ45 (tidak disertakan) dan ikuti beberapa petunjuk sederhana untuk mulai mengendalikan dunia Anda melalui internet.

 

Arduino Ethernet Shield V1 memungkinkan papan Arduino untuk terhubung ke internet. Ini didasarkan pada chip Wiznet W5100ethernet. Wiznet W5100 menyediakan tumpukan jaringan (IP) yang mampu TCP dan UDP. Ini mendukung hingga empat koneksi soket simultan. Gunakan Library  Ethernet untuk menulis sketsa yang terhubung ke internet menggunakan Arduino IDE.

 

Arduino berkomunikasi dengan W5100 dan kartu SD menggunakan bus SPI (melalui header ICSP). Ini ada di pin digital 10, 11, 12, dan 13 di Uno dan pin 50, 51, dan 52 di Mega. Di kedua papan, pin 10 digunakan untuk memilih W5100 dan pin 4 untuk kartu SD. Pin ini tidak dapat digunakan untuk I/O umum. Pada Mega, pin SS perangkat keras, 53, tidak digunakan untuk memilih W5100 atau kartu SD, tetapi harus disimpan sebagai keluaran atau antarmuka SPI tidak akan berfungsi.

Perhatikan bahwa karena W5100 dan kartu SD berbagi bus SPI, hanya satu yang dapat aktif pada satu waktu. Jika Anda menggunakan kedua periferal dalam program Anda, hal ini harus ditangani oleh pustaka terkait. Namun, jika Anda tidak menggunakan salah satu periferal dalam program, Anda harus membatalkan pilihannya secara eksplisit. Untuk melakukan ini dengan kartu SD, atur pin 4 sebagai output dan tulis tinggi ke sana. Untuk W5100, atur pin digital 10 sebagai output tinggi.

 About this project :

Dalam pelajaran ini, kami akan menunjukkan cara menggunakan W5100 Ethernet Shield dan papan Arduino UNO untuk berfungsi sebagai Server Web untuk mendapatkan suhu/kelembaban jarak jauh dari sensor DHT11 dan mengontrol browser mengendalikan LED (atau aplikasi seluler).

Preparation

Hardware:

Software:

Schematic Diagram :


 
Coding

#include <SPI.h>
#include <Ethernet.h>
#include <dht.h>
#define DHT11_PIN 7
dht DHT;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
IPAddress ip(192, 168, 0, 141); //uncomment this line if you want define static IP instead of dynamic IP from DHCP server
EthernetServer server(80); //server port

String readString;
int ledPin = 8;

void setup(){
Serial.begin(9600);
Serial.println("connect DHCP server");
    pinMode(ledPin, OUTPUT); //pin selected to control
    // Test LED
    digitalWrite(ledPin, HIGH); // set pin high
    delay(500);
    digitalWrite(ledPin, LOW); // set pin low
    
    //start Ethernet
     Ethernet.begin(mac,ip); // if you defined static ip in line 28, change this line to   Ethernet.begin(mac,ip);
     server.begin();
     Serial.print("Please use your browser to visit http://");
  Serial.println(Ethernet.localIP());
}

void loop(){
    
    EthernetClient client = server.available();
    if (client) {
        while (client.connected()) {
            if (client.available()) {
                char c = client.read();
               
                //read char by char HTTP request
                while (readString.length() < 100 && c != 0x0D  ) {
                    //store characters to string
                    readString += c;
                    c = client.read();
                }
            
                Serial.println(readString);
          int chk = DHT.read11(DHT11_PIN);
            String msg="HTTP/1.1 200 OK\n\rContent-Type: text/html\n\r\n\r";
     msg +="<HTML><BODY><H1 style=\"color:green;\">Test W5100 ETHERNET SHIELD</H1><br>";
     msg +="<HTML><BODY><H1 style=\"color:red;\">By ZENTRONIC.CO.ID</H1><br>";
     msg +="<H2><a href=\"/?LEDON\"\">Turn On LED</a><br></H2>";
 
     msg +="<H2><a href=\"/?LEDOFF\"\">Turn Off LED</a><br></H2>";
        msg +="<p>Real time temperature: ";
   msg +=  DHT.temperature;
    msg +=  " C ; Real time Humidity: " ;
    msg += DHT.humidity ;
     msg += "%</p></BODY></HTML>";
 
                    client.println(msg);

                    delay(10);
                    //stopping client
                    client.stop();

                    // control arduino pin
                    if(readString.indexOf("?LEDON") > -1) //checks for LEDON
                    {
                        digitalWrite(ledPin, HIGH); // set pin high
                    }
                    else{
                        if(readString.indexOf("?LEDOFF") > -1) //checks for LEDOFF
                        {
                            digitalWrite(ledPin, LOW); // set pin low
                        }
                    }
                    //clearing string for next read
                    readString="";

            }
        }
    }
}

Catatan : IP Address disesuaikan dengan IP address di LAN Router anda.

Blok Diagram :


 

Running Result

Ketika kode berjalan di papan Arduino, buka Serial Monitor (atur baud rate ke 9600 di sudut kanan bawah), Anda akan melihat monitor serial menampilkan IP perangkat Anda di halaman berikut:

 


 

Kunjungi alamat IP di atas dari browser, Anda dapat melihat data suhu dan kelembaban di browser yang dikumpulkan oleh sensor DHT11 yang terhubung ke pin D8 sebagai berikut:

Test W5100 ETHERNET SHIELD

By ZENTRONIC.CO.ID

Turn On LED

Turn Off LED

Real time temperature: 0.00 C ;real time Humidity: 0.00%

Sekarang di monitor serial Arduino IDE Anda, Anda akan melihat sesuatu seperti GET /…… , ini adalah pesan yang berasal dari browser jarak jauh.

Saat Anda mengklik tombol Nyalakan LED di halaman ini, LED yang terhubung ke D7 akan menyala. Serial monitor akan menampilkan GET /?LEDON HTTP/1.1 , ini adalah pesan dari browser yang menyuruh Arduino untuk menyalakan LED.

 



Sekarang Ketika Anda mengklik Matikan tombol LED di halaman browser, LED yang terhubung ke D7 akan mati. Serial monitor akan menampilkan GET /?LEDOFF HTTP/1.1 , ini adalah pesan dari browser yang menyuruh Arduino untuk mematikan LED.

 Video :


 

Tidak ada komentar:

Posting Komentar

Arduino – LM35 Temperature Sensor

  Sensor Suhu seri LM35 adalah perangkat suhu sirkuit terpadu presisi dengan tegangan keluaran yang berbanding lurus dengan suhu Celcius. ...