Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Dunia saat ini dalam pandemi virus corona dan seperti banyak negara lain juga terkunci di India, jadi saya mendapat ide untuk membuat tampilan IoT yang akan memberikan pembaruan realtime Statistik Corona negara tersebut. Saya menggunakan API yang menyediakan data India, Tetapi Anda dapat menggunakan API apa pun dengan sedikit perubahan kode.
Langkah 1: Hal-hal yang Dibutuhkan
Berikut adalah hal-hal yang Anda perlukan untuk membuat tampilan IoT:
- NodeMCU (ESP8266)
- Modul LCD 16x2 (I2C)
- Papan tempat memotong roti (opsional)
- Beberapa Kabel / Jumper
- kabel USB
Langkah 2: Koneksi
Koneksinya cukup mudah. Hanya ada 4 kabel untuk terhubung. Anda dapat menggunakan papan tempat memotong roti untuk menempatkan esp8266 di dalamnya dan kemudian menghubungkan ke modul LCD atau Anda dapat menggunakan kabel jumper langsung female to female untuk menghubungkan.
Koneksinya adalah (ESP-> LCD):
- VIN -> VCC (untuk 5V)
- GND -> GND
- D2 -> SDA
- D1 -> SCL
Sekarang tinggal sambungkan esp8266 dengan kabel USB ke PC, sekarang tinggal upload kodenya.
Langkah 3: Pengkodean
Sekarang, ini adalah bagian yang paling penting. Banyak dari Anda akan bertanya-tanya bagaimana cara kerjanya?
Jadi, Pertama-tama terhubung ke wifi dan kemudian terhubung ke API untuk mengumpulkan data JSON, kemudian menerjemahkan data JSON dan menyimpan nilai-nilai itu dalam sebuah variabel, kemudian LCD menampilkan nilai-nilai dan ini berlanjut dalam satu lingkaran.
API yang saya gunakan adalah https://coronago.xyz/api/data.json, yang mendapatkan datanya dari https://www.covid19india.org/, Ini hanya menyediakan data untuk India, Tetapi ada banyak API untuk negara lain, Anda dapat menggunakan API apa pun, tetapi pastikan itu dapat diakses melalui
Pertama, Anda perlu menginstal dukungan papan ESP8266 untuk Arduino IDE. Ikuti tutorial ini.
Hal kedua yang harus dilakukan adalah menginstal semua Library yang diperlukan, Anda dapat dengan mudah menginstalnya dari Arduino Library Manager.
Kemudian buka kode dan ubah kredensial wifi dan unggah kodenya.
kodenya ada di sini di repositori GitHub saya -
Langkah 4: Penjelasan Kode dan Menggunakan API Lainnya
Kodenya cukup sederhana
Di bagian void setup ini menginisialisasi modul LCD dan menampilkan pesan menatap kemudian terhubung ke jaringan wifi.
Di bagian loop, ia mengambil data JSON dari API dan mendekode iklan menyimpannya dalam variabel kemudian menampilkannya di monitor serial dan LCD.
untuk menggunakan API lain, Anda harus mengubah alamat di baris kode ini
http.begin("https://coronago.xyz/api/data.json"); //API
Hal lain yang API harus bekerja dengan koneksi HTTP, koneksi HTTPS tidak akan bekerja dalam kode ini dan Anda akan mendapatkan kesalahan -1.
API mengembalikan data JSON seperti ini
Sekarang Kode berikutnya hanya mendekode JSON dan menyimpan nilai dalam variabel, ini sepenuhnya tergantung pada data API dan JSON yang dikembalikannya. Tapi mudah untuk merubahnya, untuk info lebih lanjut bisa cek tutorial ini.
StaticJsonBuffer JSONBuffer; //Kolam memori JsonObject& parsing = JSONBuffer.parseObject(payload); //Parse pesan dikonfirmasi = parsing["dikonfirmasi"]; pulih = parsing["pulih"]; kematian = diuraikan["kematian"]; current_active = parsing["aktif"];
Setelah itu kode hanya menampilkan variabel di serial monitor dan di LCD.
Serial.print("dikonfirmasi: "); Serial.println(dikonfirmasi); Serial.print("dipulihkan: "); Serial.println(pulih); Serial.print("saat ini_aktif: "); Serial.println(current_active); Serial.print("kematian: "); Serial.println(kematian); if(httpCode==200){ //menampilkan data dalam lcd lcd.clear(); lcd.setCursor(0, 0); lcd.print("Dikonfirmasi: "); lcd.print(dikonfirmasi); lcd.setCursor(0, 1); lcd.print("Kematian: "); lcd.print(mati); penundaan (2500); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Aktif: "); lcd.print(current_active); lcd.setCursor(0, 1); lcd.print("Dipulihkan: "); lcd.print(pulih); penundaan (2500);
}
Langkah 5: Kesimpulan
Ini adalah proyek yang bagus untuk memantau statistik sepanjang waktu, dan dapatkah Anda membangunnya untuk menghabiskan waktu Anda dalam situasi penguncian ini.
Jika Anda memerlukan bantuan, Anda dapat bertanya kepada saya melalui komentar atau Anda dapat membuka masalah di Github saya
github.com/Soumojit28/covid19-iot-display untuk masalah terkait kode apa pun.
Terima kasih.