Bahasa Pemrograman Dasar Arduino IDE Project IoT

Indobot Update

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!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp