Tutorial iot kali ini akan mencoba untuk monitoring data covid-19 khususnya di indonesia menggunakan Arduino (wemos d1 mini) pada web alicestech*com.
Dimana web tersebut menyediakan data JSON untuk detail data covid secara update.
Metode yang digunakan hampir sama pada artikel sebelumnya :
- Realtime Clock via NTP SERVER
- Monitoring Weather / Cuaca Jakarta menggunakan Wemos d1 mini
- Project monitoring bitcoin menggunakan NODEMCU ESP8266
- Realtime Monitoring subcriber youtube
Secara prinsip hampir sama yaitu mengolah data json yang sudah disediakan dengan metode parsing data dan ditampilkan di serial monitor, LCD 20×4 ataupun di LED dotmatrix 4×8.
Data yang akan ditampilkan antara lain :
- Time Clock : waktu update terakhir data yang meliputi jam, dan tanggal
- Jumlah kasus yang sembuh
- Total kasus yang telah tiada
- Total kasus yang terjangkit virus
Tutorial Pertama Monitoring Data Covid via Serial Monitor
Bahan yang perlu dipersiapkan
- Wemos D1 mini
- Kabel micro USB
- Breadboard
- Koneksi Wifi – internet
- Komputer + Arduino IDE
Wiring Schematic sederhana
Hal yang pertama dilakukan yaitu instalasai Libraries ESP8266
Kadang ini menjadi gagalnya upload program karena lupa setting Tools Board untuk Wemos D1 mini. Dengan catatan sudah instalasi Boards ESP8266 agar list wemos d1 mini keluar pada Board yang akan dipilih.
Langkah – langkah untuk installing Boards ESP8266 dengan catatan terhubung internet :
- Klik File > Preferences pada Arduino IDE
- Pada kolom Additional Boards Manager URLs isikan ini : http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Klik OK
- Klik Tools > Board > Boards Manager
- Pada kolom searching ketikan “ESP8266”
- Pilih dan install esp8266 by ESP8266 Community
- Done
Langkah – langkah setting ke boards wemos d1 mini
- Klik Tools > Board > LOLIN(WEMOS) D1 R2 & MINI
- Pilih Port
- Jika menggunakan USB Driver CH340G harus instalasi driver tersebut dapat dicek dilink ini
[irp posts=”3063″ name=”Tutorial mudah install usb driver CH340G Arduino IDE”]
Koding Program
//monitoring data covid indonesia 2020 //www.nyebarilmu.com #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> #include <WiFiClient.h> const char* ssid = "Blok21no12"; //Nama wifi target kalian const char* password = "Komponen08"; //Password wifi String payload, positif, tiada, sembuh, hari, tanggal, bulan, tahun, waktu; String d[10]; int i; void setup() { Serial.begin(115200); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("IP address device ini: "); Serial.println(WiFi.localIP()); } void tampilkandata() { int j=0; d[j]=""; //proses parsing data for(i=1;i<payload.length();i++) { if ((payload[i] == '#') || (payload[i] == ',')) { j++; d[j]=""; //inisialisasi variabel array dt[j] } else { d[j] = d[j] + payload[i]; } } positif = d[0]; tiada = d[1]; sembuh = d[2]; hari = d[3]; tanggal = d[4]; bulan = d[5]; tahun = d[6]; waktu = d[7]; //menampilkan data Serial.print("Data Update : "); Serial.print(hari); Serial.print(", "); Serial.print(tanggal); Serial.print(" "); Serial.print(bulan); Serial.print(" "); Serial.print(tahun); Serial.print("\n"); //enter line Serial.print("Pukul : "); Serial.print(waktu); Serial.print("\n"); Serial.print("Positif Corona : "); Serial.print(positif); Serial.print("\n"); Serial.print("Kasus tiada : "); Serial.print(tiada); Serial.print("\n"); Serial.print("Sembuh : "); Serial.print(sembuh); Serial.print("\n"); } void ambildata(){ if ((WiFi.status() == WL_CONNECTED)) { HTTPClient http; Serial.print("\n"); Serial.println("Data COVID di Indonesia"); Serial.println("------------------------------"); String addressurl = "http://alicestech.com/covid19/corona.php"; //thanks for your data json const char* sendurl = addressurl.c_str(); http.begin(sendurl); int httpCode = http.GET(); if (httpCode > 0) { payload = http.getString(); //Serial.println(); } else { Serial.println("Error on HTTP request"); } http.end(); } } void loop() { ambildata(); tampilkandata(); delay(60000); //delay selama 1 menit }
Hasil Koding program diatas
Penjelasan singkat
Data yang ditampilkan tersebut merupakan parsing data JSON dari web http://alicestech.com/covid19/corona.php seperti penjelasan gambar dibawah ini
Tutorial Kedua Pantau Data Covid via display LCD 20×4
Pada tutorial ini memindahkan display data dari serial monitor menjadi display LCD 20×4 sehingga tidak tergantung sama komputer.
Bahan yang perlu dipersiapkan
- Wemos D1 mini
- Kabel micro USB
- Breadboard
- LCD 20×4 dan driver PCF8574
- Koneksi Wifi – internet
- Komputer + Arduino IDE
Wiring Skematik sederhana
Langkah – langkah untuk installing library driver PCF8574 dengan catatan terhubung internet :
- Buka Software arduino uno IDE
- Arahkan cursor pada menu sketch -> include libraries -> manage libraries
- Ketikan “PCF8574“
- Pilih “LiquidCrystal_PCF8574 by Matthias Hertel“
- Klik install dan closed
Sebelum masuk ke program harap dicek dahulu untuk address driver lcd nya menggunakan i2c scanner dapat dicek pada link ini :
[irp posts=”657″ name=”Cara mencari tahu alamat interface i2c module arduino”]
Koding program
[sociallocker id=1344]
//monitoring data covid indonesia 2020 //www.nyebarilmu.com #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> #include <WiFiClient.h> #include <LiquidCrystal_PCF8574.h> #include <Wire.h> LiquidCrystal_PCF8574 lcd(0x27); const char* ssid = "Blok21no12"; //Nama wifi target kalian const char* password = "Komponen08"; //Password wifi String payload, positif, tiada, sembuh, hari, tanggal, bulan, tahun, waktu; String hari1, bulan1; String d[10]; int i,a; void setup() { Serial.begin(115200); lcd.begin(20, 4); lcd.setBacklight(255); lcd.setCursor(0,0); lcd.print("Connecting to "); lcd.setCursor(0,1); lcd.print("wifi:"); lcd.print(ssid); Serial.print("Connecting to "); Serial.println(ssid); a=0; WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); lcd.setCursor(a,2); lcd.print("."); Serial.print("."); a++; } lcd.clear(); Serial.println(""); lcd.setCursor(0,0); lcd.print("ip address"); lcd.setCursor(0,1); lcd.print(WiFi.localIP()); delay(3000); Serial.println("IP address device ini: "); Serial.println(WiFi.localIP()); lcd.clear(); } void tampilkandata() { int j=0; d[j]=""; //proses parsing data for(i=1;i<payload.length();i++) { if ((payload[i] == '#') || (payload[i] == ',')) { j++; d[j]=""; //inisialisasi variabel array dt[j] } else { d[j] = d[j] + payload[i]; } } positif = d[0]; tiada = d[1]; sembuh = d[2]; hari = d[3]; tanggal = d[4]; bulan = d[5]; tahun = d[6]; waktu = d[7]; //menampilkan data Serial.print("Data Update : "); Serial.print(hari); Serial.print(", "); Serial.print(tanggal); Serial.print(" "); Serial.print(bulan); Serial.print(" "); Serial.print(tahun); Serial.print("\n"); //enter line lcd.setCursor(0,0); lcd.print("Data:"); //lcd.print(hari); //lcd.print(","); lcd.print(tanggal); lcd.print("-"); lcd.print(bulan); lcd.print("-"); lcd.print(tahun); Serial.print("Pukul : "); Serial.print(waktu); Serial.print("\n"); lcd.setCursor(0,1); lcd.print("Jam :"); lcd.print(waktu); Serial.print("Positif Corona : "); Serial.print(positif); Serial.print("\n"); lcd.setCursor(0,2); lcd.print("+ : "); lcd.print(positif); Serial.print("Kasus tiada : "); Serial.print(tiada); Serial.print("\n"); lcd.setCursor(11,2); lcd.print("- : "); lcd.print(tiada); Serial.print("Sembuh : "); Serial.print(sembuh); Serial.print("\n"); lcd.setCursor(0,3); lcd.print("^ : "); lcd.print(sembuh); } void ambildata(){ if ((WiFi.status() == WL_CONNECTED)) { HTTPClient http; Serial.print("\n"); Serial.println("Data COVID di Indonesia"); Serial.println("------------------------------"); String addressurl = "http://alicestech.com/covid19/corona.php"; //thanks for your data json const char* sendurl = addressurl.c_str(); http.begin(sendurl); int httpCode = http.GET(); if (httpCode > 0) { payload = http.getString(); //Serial.println(); } else { Serial.println("Error on HTTP request"); } http.end(); } } void loop() { ambildata(); tampilkandata(); delay(60000); //delay selama 1 menit }
[/sociallocker]
Hasil dari koding program diatas
Penjelasan data display LCD diatas
Keterangan :
- Data tanggal update terakhir
- Jam terakhir update data
- Kasus Positif yang terkena
- Sudah tiada
- Sembuh
Video tutorial via Youtube