Halo Fanbot.
Sedang ada project hari ini?
Hari ini Minbot mau berbagi pengetahuan dasar dari Pemrograman arduino IDE.
Aplikasi arduino IDE sudah sangat populer untuk teman-teman yang sedang dalam belajar mikrokontroler atau kendali lainnya yang melibatkan IC kontroler. Bahasa untuk Arduino IDE adalah bahasa C. Buat teman-teman yang sudah pernah belajar bahasa ini, pasti tidak akan kesulitan untuk mempelajarinya.
Nah kali ini kita akan upgrade pengetahuan teman-teman untuk masuk ke ranah IoT (Internet of Things). Program untuk membuat program IoT, membutuhkan program tambahan untuk bisa terhubung dengan koneksi internet. Artinya program harus mengaktifkan wifi dan menghubungkan dengan hotspot yang terhubung dengan internet.
Sebelum masuk ke situ, mari kita pelajari bagaimana program untuk menghubungkan WiFi dari mikrokontroler ESP8266 dengan hotspot sekitarnya.
Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO
Program WiFi Client
WiFi client artinya, ESP8266 baik itu Wemos, NodeMCU, atau modulnya dijadikan sebagai client untuk menerima koneksi dari luar. Jadi penerimaan inilah yang berfungsi untuk dapat terhubung dengan hotspot. Program yang dapat berfungsi adalah sebagai berikut.
#include <ESP8266WiFi.h> #include <ESP8266WebServer.h> const char* ssid = "Indobot.co.id"; //ubah SSID sesuai dengan nama hotspot yang digunakan const char* password = "belajariot"; //ubah password sesuai dengan hotspot yang digunakan ESP8266WebServer server(80); String webpage; void setup() { Serial.begin(115200); delay(10); // Connect to WiFi network Serial.println(); Serial.print("Configuring access point..."); // Mengatur WiFi WiFi.mode(WIFI_AP); WiFi.begin(ssid, password); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.println("IP address: "); Serial.println(WiFi.localIP()); server.begin(); Serial.println("WiFi sebagai Client Siap Dijalankan"); } void loop() { server.handleClient(); } |
Program di atas dapat menghubungkan ESP8266 ke WiFi. Biasanya digunakan untuk program webserver dimana kita dapat menghubungkannya ke WiFi, kemudian diakses oleh web browser dengan menggunakan IP Address. Namun program di atas sebenarnya adalah program dasar untuk menghubungkan dengan hotspot dengan menjadi client.
Program di atas menggunakan library ESP8266WiFi.h untuk library mengaktifkan wifi dan melakukan setting pada wifi. Library berfungsi untuk mempermudah kita dalam pembuatan program. Jadi kita tidak perlu membuatnya dari nol banget.
Nah pada program di atas, bagian Serial hanya digunakan untuk menampilkan hasil pembacaan pada serial monitor saja. Pokok program utamanya ada pada program-program lainnya.
Setiap cloud, memiliki library program masing-masing sebagai program dasar. Pahami dan pelajari ya.
baca juga: Mengatasi port Arduino IDE tidak terdeteksi
Program Dasar Thingspeak
Program dasar Thingspeak ada 2 jenis, yaitu program pengiriman data dan program penerimaan data. Thingspeak sebagai platform Cloud IoT yang dapat digunakan sebagai penampung data realtime dari pembacaan sersor maupun dari pengiriman data dari aplikasi. Berikut ini adalah program untuk melakukan pengiriman data dari ESP8266 ke Thingspeak.
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ThingSpeak.h> //library untuk thingspeak const char *ssid = "indobot.co.id"; //nama Hotspot yang digunakan const char *password = "belajariot"; //Password Hotspot yang digunakan WiFiClient client; unsigned long myChannelNumber = 1614486; //channel ID const char * myWriteAPIKey = "HE2CO3UZC7BPNCTM"; //write APIKey void setup() { Serial.begin(115200); delay(10); Serial.print("Connecting to "); Serial.println(ssid); //menampilkan nama hotspot ke Serial monitor WiFi.begin(ssid, password); //memulai untuk terhubung WiFi //memastikan koneksi dengan hotspot while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); //menandakan sudah terkoneksi Serial.println(WiFi.localIP()); //menampilkan Alamat IP ThingSpeak.begin(client); //memulai thingspeak } void loop() { int data; int nilaiSensor = data; //variabel Nilai sensor untuk ThingSpeak.writeField(myChannelNumber, 1, nilaiSensor, myWriteAPIKey); //pengiriman ke data thingspeak delay(2000); //jangka pengiriman 2 detik } |
Sedangkan untuk program yang dapat digunakan untuk mengakses data dari Thingspeak adalah sebagai berikut.
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <DHT.h> #include <ThingSpeak.h> //library untuk thingspeak const char *ssid = "indobot.co.id"; //nama Hotspot yang digunakan const char *password = "belajariot"; //Password Hotspot yang digunakan WiFiClient client; unsigned long myChannelNumber = 1615548; //channel ID const char * myReadAPIKey = "AOY0ZEBH04OQ6JKI"; //Read APIKey void setup() { Serial.begin(115200); delay(10); Serial.print("Connecting to "); Serial.println(ssid); //menampilkan nama hotspot ke Serial monitor WiFi.begin(ssid, password); //memulai untuk terhubung WiFi //memastikan koneksi dengan hotspot while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); //menandakan sudah terkoneksi Serial.println(WiFi.localIP()); //menampilkan Alamat IP WiFi.mode(WIFI_STA); ThingSpeak.begin(client); //memulai thingspeak } void loop() { int statusCode = 0; //membuat Kode status menjadi 0 sebelum pembacaan long count = ThingSpeak.readLongField(myChannelNumber, 1, myReadAPIKey); //mengakses data di Field 1 statusCode = ThingSpeak.getLastReadStatus(); //membaca kode status yang diberikan thingspeak if(statusCode == 200){ //jika kode status sama dengan 200, maka Serial.println("Counter: " + String(count)); //data ditampilkan di serial monitor } else{ //jika kode tidak sama dengan 200 Serial.println("Problem reading channel. HTTP error code " + String(statusCode)); //peringatan adanya error } delay(2000); } |
Channel ID, Write APIKey, dan Read APIKey bisa kita dapatkan setelah sudah membuat akun di Thingspeak. Jangan lupa untuk mengisi nama dan password hotspot untuk dapat terhubung. Kedua program di atas hanya dasarnya saja. Pada program pengiriman data, teman-teman harus mengubah variabel data menjadi variabel nilai yang ingin dikirimkan. Sedangkan pada bagian akses data, datanya hanya terlihat di serial monitor dan belum bisa digunakan untuk mengendalikan sesuatu.
baca juga: Program Pengujian Fasilitas WiFi pada Wemos ESP8266 Sebagai Client dan Server
Bagaimana dengan program dasar di platform cloud lainnya?
Tunggu di artikel berikutnya ya.
Teman-teman juga dapat belajar IoT di Indobot Academy loh dari Platform Thingspeak, Blynk IoT, hingga pembuatan aplikasi smartphone. Ingin tau informasi lebih banyak? HUBUNGI MINBOT yaaa.
Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!