Anda di halaman 1dari 19

IoT

Introduction
wadiprawita@gmail.com
Instrumentasi dan IoT

Sinyal dengan spesifikasi Sinyal dengan spesifikasi


Instrument
tertentu tertentu

• 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’)

• Jawaban akan diberikan dalam bentuk jason


PR
• Lakukan modifikasi dari simulasi tinkercad yang dicontohkan, sehingga
nilai yang dikirimkan ke dweet seolah2 adalah bacaan dari sensor
tertentu (bias analog atau digital, silahkan pilih sensor yang tersedia di
tinkercad)
• Lakukan screenshot
• Cek apakah data sudah terkirim ke dweet
• Dan buat Analisa
• Buat program di python dengan library dweet (pilih salah satu) yang
• Melakukan decode nilai yang dititipkan dari format JSON (cari library utk
decode JSON sendiri, bebas)
• Tampilkan data dengan matplotlib

Anda mungkin juga menyukai