Proyek ini adalah tentang menggunakan Arduino dengan Ethernet Shield. Saya akan mengontrol satu LED dan servo, tetapi Anda dapat menerapkan metode ini untuk mengontrol perangkat elektronik apa pun yang Anda inginkan. (seperti motor DC, buzzer, relay, motor stepper, dll..)
Pendahuluan.
Kode yang diberikan saat diunggah dan terhubung ke internet itu membuat server web di LAN Anda dan Anda cukup menggunakan IP untuk mengakses server web itu melalui browser Anda. Setelah itu muncul halaman web yang mirip dengan yang di bawah ini. Saat Anda menekan tombol "Aktifkan LED", url Anda akan berubah menjadi: "http://192.168.0.142/?button1on" arduino akan membaca informasi itu dan menyalakan LED.
Secara default IP-nya adalah “192.168.0.142”. Itu juga dapat ditemukan pada kode arduino yang disediakan.
Part yang diperlukan.
- Arduino UNO – read Best Arduino Starter Kits
- 1x Ethernet Shield
- 1x 220 Ohm Resistor
- 1x LED
- 1x Micro Servo Motor
- 1x Breadboard
- Jumper Cables
Schematics.
Unggah kode di bawah ini.
#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
int led = 4;
Servo microservo;
int pos = 0;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 0, 142 }; // ip in lan that's what you need to use in your browser. EthernetServer server(80); //server port
String readString;
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
}
pinMode(led, OUTPUT);
microservo.attach(7);
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
//if HTTP request has ended
if (c == '\n') {
Serial.println(readString); //print to serial monitor for debuging
client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
client.println("<link rel='stylesheet' type='text/css' href='https://randomnerdtutorials.com/ethernetcss.css' />");
client.println("<TITLE>ZENTRONIC Tutorials Project</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<H1>Zentronic.co.id Tutorials Project</H1>");
client.println("<hr />");
client.println("<br />");
client.println("<H2>Arduino with Ethernet Shield</H2>");
client.println("<br />");
client.println("<a href=\"/?button1on\"\">Turn On LED</a>");
client.println("<a href=\"/?button1off\"\">Turn Off LED</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<a href=\"/?button2on\"\">Rotate Left</a>");
client.println("<a href=\"/?button2off\"\">Rotate Right</a><br />");
client.println("<p>Created by Lucky Mdot. Visit https://zentronic.co.id for more projects!</p>");
client.println("<br />");
client.println("</BODY>");
client.println("</HTML>");
delay(1);
//stopping client
client.stop();
//controls the Arduino if you press the buttons
if (readString.indexOf("?button1on") >0){
digitalWrite(led, HIGH);
}
if (readString.indexOf("?button1off") >0){
digitalWrite(led, LOW);
}
if (readString.indexOf("?button2on") >0){
for(pos = 0; pos < 180; pos += 3) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
microservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
if (readString.indexOf("?button2off") >0){
for(pos = 180; pos>=1; pos-=3) // goes from 180 degrees to 0 degrees
{
microservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
//clearing string for next read
readString="";
}
}
}
}
}
Implementasi.
Catatan: Jika Anda mencoba proyek ini. Anda hanya dapat mengakses alamat IP itu dari rumah Anda. Ini berarti Anda harus terhubung ke router yang sama dengan yang terhubung dengan Ethernet shield anda.
Video.
Tidak ada komentar:
Posting Komentar