Wemos D1, Board ESP8266 Yang Kompatible dengan Arduino
ESP8266 benar – benar sedang booming. Hal ini terbukti dengan banyaknya modul development board untuk SoC yang berintikan Tensilica Xtensa Diamond Standard yang berjalan pada frekuensi clock 80 MHz ini. Kali ini embeddednesia akan membahas mengenai satu lagi board berbasis ESP8266 yang bisa digunakan sebagai alternatif untuk sobat embeddednesia mengembangkan perangkat IOT. Dia adalah Wemos D1
Kemunculan Wemos D1 sebenarnya bukanlah sesuatu yang baru. Pengamatan embeddednesia, board development ini sudah ada semenjak satu tahun yang lalu, dan kini telah muncul beberapa varian dari board ESP8266 produk wemos. Kini juga ada varian versi kecilnya yang disebut sebagai Wemos D1 mini,
Meskipun bentuk board ini dirancang menyerupai arduino uno, namun dari sisi spesifikasi, sebenarnya jauh lebih unggul Wemos D1, salah satunya dikarenakan inti dari Wemos D1 adalah Esp8266EX yang memiliki prosesor 32 bit. (Bandingkan dengan Arduino UNO, yang berintikan AVR 8 bit). Sebagaimana board berbasis ESP8266, wemos D1 memiliki spesifikasi yang sama yaitu
- A 32 bit RISC CPU running at 80MHz
- 64Kb of instruction RAM and 96Kb of data RAM
- 4MB flash memory! Yes that’s correct, 4MB!
- Wi-Fi
- 16 GPIO pins
- I2C,SPI
- I2S
- 1 ADC
Untuk menggunakan board ini, pada prinsipnya sama dengan menggunakan board lain yang berbasis ESP8266. Anda bisa menggunakan firmware NodeMCU, dan memprogramnya menggunakan Lua. atau bisa juga kita membuat firmware sendiri menggunakan Arduino IDE. Yang perlu diperhatikan adalah, pastikan Arduino IDE yang digunakan sudah diinstal addon board ESP8266 sebelum digunakan. Jika anda belum menginstal board esp8266, silahkan baca terlebih dahulu cara instalasi Addon ESP8266 pada Arduino IDE
Wemos D1 sudah dilengkapi dengan ic usb to serial CHG340 (Jangan lupa menginstal driver agar IC ini bisa terbaca di komputer anda), sehingga kita tidak perlu membeli modul usb to serial secara terpisah. Satu – satunya yang diperlukan adalah kabel data USB yang biasa kita gunakan untuk mentransfer data/mencharge smartphone android anda.
Setelah Wemos D1 terhubung dengan port USB komputer, cek terlebih dahulu di device manager berapa port serial yang terbaca.
Pada environment yang embeddednesia gunakan, port serial terbaca pada COM3. Nilai ini bisa jadi berbeda dengan komputer yang anda gunakan, sehingga penting untuk mengecek terlebih dahulu.
Untuk memulai memrogram board Wemos D1, Jalankan Arduino IDE yang telah terinstal, lalu pilih menu Tools > Board > Wemos D1 (Retired). Jangan lupa sesuaikan port Arduino, di Tools > Port dengan yang nilai port serial terbaca pada device manager.
Addon yang telah diinstal pada Arduino IDE juga menyediakan banyak sampel program yang bisa digunakan sebagai langkah awal memprogram wemos D1. Pada tulisan ini, embeddednesia akan menggunakan contoh program HelloServer yang bisa dijadikan contoh bagaimana mudahnya memprogram wemos D1
Pada menu File pilih Examples > ESP8266WebServer > HelloServer. Arduino IDE akan menampilkan contoh program HelloServer seperti berikut
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <ESP8266WiFi.h> | |
#include <WiFiClient.h> | |
#include <ESP8266WebServer.h> | |
#include <ESP8266mDNS.h> | |
const char* ssid = "SSID_ANDA_DISINI"; | |
const char* password = "passwordwifi"; | |
ESP8266WebServer server(80); | |
const int led = 13; | |
void handleRoot() { | |
digitalWrite(led, 1); | |
server.send(200, "text/plain", "hello from esp8266!"); | |
digitalWrite(led, 0); | |
} | |
void handleNotFound(){ | |
digitalWrite(led, 1); | |
String message = "File Not Found\n\n"; | |
message += "URI: "; | |
message += server.uri(); | |
message += "\nMethod: "; | |
message += (server.method() == HTTP_GET)?"GET":"POST"; | |
message += "\nArguments: "; | |
message += server.args(); | |
message += "\n"; | |
for (uint8_t i=0; i<server.args(); i++){ | |
message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; | |
} | |
server.send(404, "text/plain", message); | |
digitalWrite(led, 0); | |
} | |
void setup(void){ | |
pinMode(led, OUTPUT); | |
digitalWrite(led, 0); | |
Serial.begin(115200); | |
WiFi.begin(ssid, password); | |
Serial.println(""); | |
// Wait for connection | |
while (WiFi.status() != WL_CONNECTED) { | |
delay(500); | |
Serial.print("."); | |
} | |
Serial.println(""); | |
Serial.print("Connected to "); | |
Serial.println(ssid); | |
Serial.print("IP address: "); | |
Serial.println(WiFi.localIP()); | |
if (MDNS.begin("esp8266")) { | |
Serial.println("MDNS responder started"); | |
} | |
server.on("/", handleRoot); | |
server.on("/inline", [](){ | |
server.send(200, "text/plain", "this works as well"); | |
}); | |
server.onNotFound(handleNotFound); | |
server.begin(); | |
Serial.println("HTTP server started"); | |
} | |
void loop(void){ | |
server.handleClient(); | |
} |
Beberapa poin penting yang patut digarisbawahi oleh embeddednesia sebagai prinsip kerja dari program ini, adalah pada baris 40 Wifi.begin
merupakan sintaks yang digunakan untuk terhubung dengan jaringan wifi yang tersedia. Pastikan anda mengisi SSID dan password yang sesuai pada program.
Selanjutnya adalah server yang merupakan inisiasi dari objek ESP8266WebServer
pada baris 9 merupakan kunci dari fungsi web Server pada Wemos D1. Inisiasi server(80) menandakan ESP8266 akan melakukan listening pada port 80. Perhatikan pula konfigurasi yang diatur pada method setup di baris 58, 60 dan 64 merupakan routing atau mapping request HTTP ke method yang bertanggung jawab merespon. Di bagian akhir server.begin perlu dimasukan di baris 66, yang berarti server siap berjalan.
Jangan lupa upload program dan tunggu hingga proses selesei. Kemudian buka serial monitor dan perhatikan Alamat IP yang didapat. Lalu akses melalui browser anda. Jika berhasil anda akan mendapatkan tampilan seperti ini
Yak, kini kita berhasil memprogram pertama kali Wemos D1 kita. Mulai dari sini anda bisa menambahkan beberapa fitur dan mengeksplorasi fungsi-fungsi yang dimiliki Board Wemos D1.
Salam elektronika
Artikel menarik, salah satu “board favorit saya” namun jarang yg bahas terutama fitur2 & perbandingan spt :kapasitas flash memory; I2C;SPI hingga pertanyaan yg blm terjawab soal EEPROM. Terima kasih pencerahannya sangat membantu
apa kelebihan dan kekurangan di bandingkan dengan NodeMCU ??