Official StoreTekan tombol di atas untuk membeli semua alat dan bahan eksperimen di web ini

IoT dengan Arduino dan Thingspeak

IoT atau Internet of Things banyak digunakan untuk me-remote atau memonitor perangkat melalui internet menggunakan sebuah smartphone, laptop atau tablet. Karena transmisi data dilakukan melalui internet maka Anda dapat menghubungi perangkat dimana saja dan kapan saja asal Anda dan perangkat Anda sama-sama terhubung dengan internet.

Sekilas tentang IoT

IoT adalah sebuah teknologi transfer data melalui internet yang tidak membutuhkan IP public di sisi client. Asal terhubung internet maka perangkat Anda sudah terhubung ke IoT cloud. Menggunakan ip private yang dynamic pun tidak ada masalah (jika Anda menggunakan modem GPRS/3G/4G, biasanya sim card operator seluler hanya akan memberi ip tipe ini). Sekilas tentang teknologi ini dan bagaimana terminologinya dapat Anda baca di sini.

IoT dan Arduino

Teknologi IoT mendukung transmisi data (payload) yang sangat kecil. Kurang lebih sekali kirim hanya akan menghabiskan data 15 kb saja. Ini tentunya sangat cocok diterapkan pada embedded system client semacam Arduino, Raspberry, Teensy, dll yang memiliki memori yang terbatas.

Khusus untuk Arduino, sudah tersedia beberapa library yang akan memudahkan Anda untuk join ke IoT network. Jika Anda menggunakan pure MQTT server (public broker) semacam test.mosquitto.org atau broker.mqttdashboard.com, Anda dapat menggunakan library PubSubClient.h yang sudah tersedia di Arduino IDE secara gratis (built-in). Sudah tersedia contoh programnya sehingga Anda dapat mencobanya sendiri. Untuk contoh sketch yang tersedia hanya untuk koneksi internet menggunakan Ethernet shield dan ESP8266 ya (ESP8266 sebagai serial to WIFI), jika Anda menggunakan modem GSM Anda harus menggunakan library yang lain.

IoT, Arduino dan Thingspeak

Jika Anda menggunakan pure MQTT server atau disebut juga public broker, ada sedikit kelemahan, yaitu Anda harus membangun server sendiri untuk menyimpan data (history/log). Karena sifat dasar dari IoT menggunakan protokol MQTT adalah data akan hilang begitu dikirim ke broker (real time data). Perangkat client harus secepat mungkin mengolah data yang datang. Nah, jika Anda ingin menyimpan data, Anda harus membangun semacam database server sendiri yang bertindak sebagai ‘subscriber’ MQTT.

Dalam terminology IoT dengan protokol MQTT, dikenal tiga macam network element, yakni publisher (pengirim data), subscriber (penerima data) dan broker (penghubung subscriber dan publisher)

Jika Anda tidak ingin ribet membangun infrastruktur IoT, Anda dapat memanfaatkan layanan dari Thingspeak.com, yakni semacam opensource IoT server. Dengan Thingspeak Anda dapat memanfaatkan semua layanan IoT secara gratis termasuk di dalamnya adalah free broker, free logging, free API (Application Programming Interface), dll. Hmm, benar-benar sangat membantu buat Anda yang sedang membangun sistem ‘IoT solution’.

Contoh Penggunaan IoT dengan Arduino dan Thingspeak

Berikut ini akan saya contohkan penggunaan IoT dengan Arduino dan Thingspeak. Arduino di sini berfungsi sebagai publisher dengan Thingspeak sebagai broker dan datalog server. Sebagai subscriber, Anda dapat menggunakan smartphone Android Anda sendiri. Di sini smartphone akan digunakan untuk memonitor data dalam bentuk chart yang dikirim oleh Arduino client. Hmm, menarik, bukan? Anda dapat melihat grafik datalogging sensor dimana saja dan kapan saja, asal smarphone Android Anda memiliki kuota internet. Kurang lebih begini ilustrasi penggunaan Thingspeak untuk sistem IoT yang akan kita bangun, ‘Monitoring Sensor Arus dan Suhu menggunakan IoT

topologi-jaringan-iot-dengan-arduino-dan-thingspeak

Untuk membangun sistem IoT di atas, setidaknya ada tiga langkah yang harus Anda siapkan, yakni:
1. Menyiapkan sisi client (publisher), dalam hal ini adalah Arduino, agar dapat mengukur parameter lingkungan menggunakan sensor dan mengirimnya ke IoT broker/server
2. Menyiapkan sisi IoT server, dalam hal ini adalah Thingspeak agar dapat menerima data dari Arduino (publisher), menyimpan data dan menampilkannya dalam bentuk grafik
3. Menyiapkan sisi subscriber, dalam hal ini adalah smartphone Android agar dapat memonitor data sensor (dari Arduino) secara real time dan interaktif.

Baiklah, pelan-pelan akan saya jelaskan:
1. Menyiapkan IoT Publisher (Arduino + Sensor)
Untuk sisi publisher, kurang lebih yang harus Anda siapkan adalah:

script handler untuk sensor
Script handler adalah source code dalam bahasa C yang dapat menyebabkan hardware IC mikrokontroller dalam papan Arduino dapat berinteraksi dengan sensor melalui port-port nya. Script handler ini sangat spesifik terhadap tipe sensornya. Antara sensor yang satu dengan sensor lainnya akan berbeda. Sebagai contoh, jika Anda ingin mengukur suhu maka Anda dapat memilih menggunakan sensor LM35 atau DHT11. Nah, script handler untuk kedua sensor ini sangatlah berbeda, menyesuaikan karakteristik masing-masing sensor. Anda dapat melihatnya lebih detail di artikel ini dan itu.

library untuk mengirim data ke Thingspeak
Untuk mengirim data ke Thingspeak, caranya cukup mudah. Jika Anda menggunakan Ethernet shield untuk mengirim data melalui internet, Anda dapat menggunakan library bawaan SPI.h dan Ethernet.h. Namun saat mengirim data, Anda harus menyertakan header yang berisi API dari Thingspeak (lihat point no 2 di bawah).

Berikut ini adalah contoh sketch Arduino untuk mengirim data ke IoT server menggunakan Thingspeak. Sketch di bawah akan mengirim data pembacaan tegangan analog dari pin A0 ke Thingspeak

Download source code di sini

Gambar rangkaian untuk sistem di atas:

detail-sisi-arduino-menggunakan-ethernet-shield-topologi-jaringan-iot-dengan-arduino-dan-thingspeak

Jika Anda menggunakan Ethernet shield untuk sistem IoT, Anda harus mendesain topologi jaringan LAN Anda agar dapat terhubung ke internet.

Untuk ethernet shield, dapat Anda beli di sini

Untuk konfigurasi jaringan di atas, Anda terhubung ke internet menggunakan hub/switch dan atau router yang berlangganan internet melalui ISP (Internet Service Provider)

Ada alternatif lain, yakni dengan menggunakan sebuah router 3G/4G yang berisi sim card. Jadi koneksi internet di dapat dari tethering router 3G/4G, yang kemudian akan mengubahnya menjadi koneksi Ethernet (RJ45) ke Ethernet shield Arduino. Dengan demikan Anda dapat mengatur kuota internetnya sesuai budget Anda sendiri, beda dengan layanan dari ISP yang relatif lebih mahal (dan bulanan).

detail-sisi-arduino-menggunakan-3g-4g-router-topologi-jaringan-iot-dengan-arduino-dan-thingspeak

Untuk 3G Router dapat dibeli di sini.

2. Menyiapkan IoT server (Thingspeak)

Untuk sisi IoT server menggunakan Thingspeak, Anda harus menyiapkannya agar dapat menerima data dari Arduino. Berikut langkah-langkahnya:

Buka https://thingspeak.com dan daftarkan account Anda

daftar-thingspeak

membuat channel data

Isikan field yang diperlukan (satu channel maks 8 field), minimal yang harus diisikan adalah nama channel (‘Name’) dan ‘field1’ (centang opsi ‘Make Public’ jika data Anda ingin dapat dilihat orang lain). Field ini nantinya akan berisi data sensor yang dikirim dari Arduino. Jika sudah, tekan tombol ‘Save Channel’.

buat-channels-thingspeak

isi-data-channels-thingspeak

menyalin API ke sketch Arduino

Jika Channel sudah jadi, buka tab ‘Api Keys’, copy ‘Write API key’ dan salin ke sketch Arduino di atas (lihat point 1 di atas)

‘Write API Key’ digunakan untuk mengirim data, ‘Read API Key’ digunakan untuk membaca data

api-key-thingspeak

Sampai langkah di atas, Anda sudah berhasil menyiapkan server IoT yang akan meng-handle pengiriman data dari Arduino. Untuk melihat tampilan grafik historical data, Anda dapat membuka tab ‘Public View’ (atau Private View).

tampilan-channel-grafik-suhu-thingspeak

3. Menyiapkan IoT Subscriber (smartphone Android)

Berikut ini adalah langkah-langkah menyiapkan smartphone Android Anda agar dapat memonitor data Arduino:

menginstal aplikasi ‘ThingsView’ di Google Play Store
Buka URL https://play.google.com/store/apps/details?id=com.cinetica_tech.thingview&hl=in atau search melalui Play Store langsung dari smartphone. Instal aplikasi tersebut

mengisi ‘channel ID’ yang dibuat pada point 2 di atas
Jika aplikasi ‘ThingsView’ sudah terinstal, jalankan aplikasi tersebut dan isi Channel ID sesuai yang tertera di web Thingspeak

isi-channel-di-thingsview

menampilkan grafik dengan memilih channel tersebut
Selamat, channel data Arduino sudah didaftarkan di aplikasi ThingsView. Kini Anda dapat membuka grafik pengukuran sensor langsung dari aplikasi Android Anda

tampilan-grafik-suhu-di-thingsview

Demikian tutorial tentang IoT menggunakan Arduino dan Thingspeak, semoga dapat memicu kreativitas Anda untuk membuat sistem-sistem IoT yang lain.

Incoming search terms:

cara mengambil data thingspeak dengan arduino, cara menggunakan thingspeak
3 Comments

Add a Comment

Your email address will not be published. Required fields are marked *

error: Content is protected !!