Io T
Io T
Introduction
wadiprawita@gmail.com
Instrumentasi dan IoT
• Spesifikasi tersebut bisa jadi terkait dengan lokasi dari sinyal / data
• Misalkan ada sensor yang diletakkan di lokasi yang jauh (misalkan ECG di
pasien yang berada di rumah) dan setelah pengolahan tertentu (low pass
filter, dan diekstrak HR nya) hasil pengolahannya (HR) perlu dikirimkan ke
Dokter yang berada di rumah sakit
IoT
ECG di
Instrument 1 HR Instrument 2
Pasien
IoT best practice
• Umumnya memanfaatkan IoT broker service di internet
• Salah satunya : MQTT
• https://en.wikipedia.org/wiki/MQTT
• Problemnya : di kuliah ini tidak dapat dilakukan simulasi dengan Tinkercad, karena
protocolnya memanfaatkan pengiriman data secara binary
• Silahkan pelajari lebih lanjut sendiri, apabila mau dikusi silahkan
• Materi tahun lalu dengan ESP32 :
• https://techtutorialsx.com/2017/04/24/esp32-publishing-messages-to-mqtt-topic/
• https://techtutorialsx.com/2017/04/24/esp32-subscribing-to-mqtt-topic/
• Untuk ngecek dengan browser plugin : MQTTLens
IoT best practice
• Alternatif IoT paling sederhana : dengan broker HTTP
• Salah satu yang free : https://dweet.io/
• Scroll di halaman pembuka untuk mempelajari
• Sederhanya : anda dapat menitipkan nilai tertentu di dweet
Titip variable “val” dengan nilai “40” di
kotak “eb0002”
• Buka web browser
• Ketik :
https://dweet.io/dweet/for/eb0
002?val=45
• Perhatikan eb0002?val=45
• Apabila sukses akan ada balasan :
• {"this":"succeeded","by":"dweeting
","the":"dweet","with":
{"thing":"eb0002","created":"2020-
04-05T13:19:30.828Z","content":
{"val":45},"transaction":"98b79d89-
780b-4605-8e17-1c28984ea527"}}
Baca variable di kotak “eb0002” yang
terakhir
• Buka web browser
• Ketik : https://dweet.io/get/latest/dweet/for/eb0002
• Hasil :
• {"this":"succeeded","by":"getting","the":"dweets","with":
[{"thing":"eb0002","created":"2020-04-05T13:19:30.828Z","content":{"val":45}}]}
Baca semua variable di kotak “eb0002”
• Buka web browser
• Ketik : https://dweet.io/get/dweets/for/eb0002
• Hasil :
• {"this":"succeeded","by":"getting","the":"dweets","with":
[{"thing":"eb0002","created":"2020-04-05T13:23:21.893Z","content":{"val":48}},
{"thing":"eb0002","created":"2020-04-05T13:23:04.201Z","content":{"val":47}},
{"thing":"eb0002","created":"2020-04-05T13:22:52.870Z","content":{"val":46}},
{"thing":"eb0002","created":"2020-04-05T13:19:30.828Z","content":{"val":45}}]}
• Perhatikan ada 3 buah nilai val yang dihasilkan
• Return value dalam format JSON, tugas anda untuk melakukan decoding dan mengambil
nilainya
Bagaimana kita bisa membuat instrument
yang bias menitipkan data ke dweet ?
• Memanfaatkan microcontroller yang memang punya kemampuan
konektifitas internet : misalkan ESP32 (silahkan dipelajari sendiri)
• Untuk keperluan simulasi dengan Tinkercad
• Menambahkan komponen ESP8266
• Berfungsi sebagai modem sehingga Arduino UNO dapat
• konek ke internet dengan WIFI
• Melakukan HTTP request (web browser request)
• Melalui perintah via serial port (serial port Arduino dihubungkang dengan serial port
ESP8266), beda level tegangan, sehingga harus dengan tambahan resistor (cari tahu sendiri
terkait hal ini, level converter sederhana 5v – 3.3v)
• Perintah nya dikenal dengan istilah AT Command
• http://fab.cba.mit.edu/classes/865.15/people/dan.chen/esp8266/
AT Command ESP8266
AT Command untuk Titip variable “val”
dengan nilai “40” di kotak “eb0002”
• AT+CIPMUX=1
AT+CIPSTART=0,"TCP","dweet.io",80
AT+CIPSEND=0,76
GET /dweet/for/arduino-lighttest?sensorValue=95 HTTP/1.1
Host: dweet.io
AT+CIPCLOSE=0
Contoh dengan Arduino
• Search "ESP8266 Dweet Demo" dari user "wadiprawita" di Tinkercad,
duplicate (https://www.tinkercad.com/things/8U86cSSv51g)
ESP8266 Dweet Demo
• Komponen utama : Arduino, ESP8266 dan LCD (kenapa perlu LCD,
karena serial sudah dipakai utk konek ke ESP8266, walaupun utk
simulasi di tinkercad, tetap dapat dimonitor)
• Konek, ke dweet.io dan menitipkan nilai “val” mulai dari 0 hingga N
secara terus menerus di lokasi “eb0001”
• Untuk merubah lokasi dan nama nilai lihat baris 12 dari code
• String uri = "/dweet/for/eb0001?val=";
• Saran : sebelum run, silahkan rubah “eb0001” dengan NIM masing2, agar tidak tabrakan
• Jalankan simulasi untuk mulai menitipkan data ke dweet.io
• Untuk melakukan pengecekan, buka web browser dengan alamat
https://dweet.io/get/dweets/for/eb0001
• Rubah “eb0001” dengan NIM masing2
https://dweet.io/get/dweets/for/eb0001
• {"this":"succeeded","by":"getting","the":"dweets","with":
[{"thing":"eb0001","created":"2020-04-05T13:41:51.571Z","content":{"val":0}},
{"thing":"eb0001","created":"2020-04-05T12:21:25.936Z","content":{"val":9}},
{"thing":"eb0001","created":"2020-04-05T12:20:35.301Z","content":{"val":8}},
{"thing":"eb0001","created":"2020-04-05T12:12:12.780Z","content":{"val":7}},
{"thing":"eb0001","created":"2020-04-05T12:11:45.531Z","content":{"val":6}}]}
Membaca data dengan python (atau yang
lain)
• Lihat bagian bawah dari dweet.io
• Yang sudah saya coba :
• https://github.com/paddycarey/dweep
y
• Karena bisa instalasi dengan pip
• Buka “Anaconda Prompt” (atau Python
Prompt)
• pip install dweepy
Instalasi dweepy
Utk Pemakaian lihat di bagian “usage”
halaman github dweepy
Baca titipan di eb0001
• Import dweepy
• dweepy.get_dweets_for('eb0001’)