- Komponen Diperlukan
- Diagram Sirkuit
- Memasang Pustaka Cloud MQTT di Raspberry Pi
- Penjelasan Coding untuk mengontrol Raspberry Pi GPIO dengan MQTT
Dalam tutorial sebelumnya kita telah membahas tentang Protokol MQTT dan menginstal server MQTT lokal di Raspberry Pi kita untuk mengontrol GPIO secara lokal. Tetapi kelemahan server MQTT lokal adalah kami tidak dapat mengontrol GPIO dari mana pun di dunia, server ini hanya menyediakan layanan secara lokal. Tetapi jika server MQTT ini dihosting di beberapa cloud, maka peralatan apa pun yang terhubung ke Raspberry Pi dapat dikontrol secara global.
Di sini, dalam tutorial ini, kita akan menggunakan Adafruit IO sebagai broker MQTT untuk mengontrol alat AC yang terhubung ke Raspberry Pi GPIO. Juga periksa tutorial Otomasi Rumah terkontrol IoT lainnya:
- Otomatisasi Rumah Terkendali Suara berbasis IOT menggunakan ESP8266 dan Aplikasi Android
- Ponsel Cerdas Mengontrol Otomatisasi Rumah Menggunakan Arduino
- Otomatisasi Rumah yang dikontrol Web berbasis IoT menggunakan Mikrokontroler PIC dan Adafruit IO
- Otomatisasi Rumah Terkendali Web berbasis IoT menggunakan Raspberry Pi
- Otomatisasi Rumah Terkendali Suara Berbasis Asisten Google menggunakan DIY Arduino Wi-Fi Shield
Komponen Diperlukan
- Raspberry Pi dengan Raspbian Stretch diinstal di dalamnya.
- Modul Relai
- Bohlam
- Kabel Jumper
Di sini, kita akan menggunakan SSH untuk mengakses Raspberry Pi di laptop. Anda dapat menggunakan koneksi VNC atau Remote Desktop di laptop, atau dapat menghubungkan Raspberry pi Anda dengan monitor. Pelajari lebih lanjut tentang mengatur Raspberry Pi tanpa kepala di sini tanpa monitor.
Diagram Sirkuit
Diagram rangkaian untuk peralatan Rumah Tangga yang Dikendalikan IoT ini dengan cloud MQTT dan Raspberry Pi sederhana, cukup sambungkan bohlam dengan modul relai pada pin GPIO 35 raspberry Pi.
Memasang Pustaka Cloud MQTT di Raspberry Pi
Di sini platform Adafruit IO digunakan dengan Raspberry Pi sebagai broker MQTT. Karena kami telah menggunakan platform Adafruit IO berkali-kali di tutorial kami sebelumnya, kami juga dapat menggunakannya di Raspberry Pi.
Buat saja akun di platform Adafruit IO dan buat feed, jika Anda tidak tahu cara membuat feed dan menyesuaikan dashboard Adafruit, ikuti tautannya.
Setelah membuat dasbor, instal beberapa pustaka di Raspberry Pi untuk memulai dengan MQTT.
1. Pertama, perbarui Pi dan Python Anda dengan mengeluarkan perintah berikut
sudo apt-get update sudo apt-get upgrade sudo pip3 install --upgrade setuptools
2. Sekarang, instal perpustakaan kedip Rpi.gpio dan Adafruit menggunakan perintah di bawah ini
sudo pip3 instal RPI.GPIO sudo pip3 instal adafruit-blinka
3. Instal perpustakaan Adafruit IO menggunakan perintah di bawah ini
sudo pip3 menginstal adafruit-io
4. Clone contoh adafruit dari github menggunakan perintah di bawah ini
git clone https://github.com/adafruit/Adafruit_IO_Python.git
5. Kemudian, navigasikan ke folder contoh dengan memasukkan perintah berikut ke terminal:
cd Adafruit_IO_Python / contoh / dasar
Jika Anda tidak yakin di direktori mana Anda berada, Anda dapat memeriksanya dengan menjalankan pwd.
6. Untuk semua contoh di folder ini, Anda harus mengatur ADAFRUIT_IO_KEY dan ADAFRUIT_IO_USERNAME, yang dapat ditemukan dari dasbor Adafruit. Seperti gambar dibawah ini
Alihkan tombol di dasbor Adafruit IO, dan Anda akan melihat yang berikut ini di terminal Pi Anda.
7. Sekarang, buka file subscribe.py menggunakan nano editor. Ketik perintah berikut untuk membukanya
sudo nano subscribe.py
Kami harus memodifikasi program ini untuk mengontrol GPIO apa pun dari dasbor.
Penjelasan Coding untuk mengontrol Raspberry Pi GPIO dengan MQTT
Pertama, impor semua pustaka yang diperlukan untuk menggunakan pin GPIO dan klien Adafruit MQTT.
impor RPi.GPIO sebagai GPIO import sys dari Adafruit_IO import MQTTClient
Sekarang, atur mode GPIO dan tentukan nomor pin LED dan atur sebagai output.
GPIO.setmode (GPIO.BOARD) GPIO.setwarnings (False) ledPin = 12 GPIO.setup (ledPin, GPIO.OUT)
Selanjutnya, kita harus mengatur kunci AIO dan Nama Pengguna yang kita temukan saat membuat dasbor.
ADAFRUIT_IO_KEY = 'YOUR_AIO_KEY' ADAFRUIT_IO_USERNAME = 'YOUR_AIO_USERNAME'
Masukkan nama feed yang telah Anda berikan untuk menyalakan dan mematikan lampu. Di sini, itu adalah "cahaya".
FEED_ID = 'ringan'
Sekarang, tentukan fungsi yang akan dipanggil saat akan ada event. Jadi, kami akan berlangganan Feed menggunakan client.subscribe (FEED_ID)
def terhubung (klien): client.subscribe (FEED_ID) print ('Menunggu data umpan…')
Setelah berlangganan feed, kita harus memeriksa nilai baru dan menyimpannya ke dalam variabel payload . Untuk fungsi pesan ini dipanggil. Jadi, setiap kali ada "1" dalam variabel payload, buat pin led TINGGI dan untuk "0" buat LOW.
def pesan (klien, feed_id, payload): print ('Feed {0} menerima nilai baru: {1}'. format (feed_id, payload)) if payload == 1: GPIO.output (ledPin, GPIO.HIGH) lain: GPIO.output (ledPin, GPIO.LOW)
Sekarang, buat klien MQTT untuk terhubung dengan platform Adafruit IO dan kirim pesan ke sana kemari.
klien = MQTTClient (ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY) client.on_connect = klien terhubung.on_disconnect = terputus
Juga, berhati-hatilah dengan lekukan yang tepat dalam kode jika tidak, itu akan menunjukkan kesalahan. Kode python lengkap diberikan di akhir tutorial.
Terakhir, simpan program menggunakan ctrl + x dan tekan enter. Sekarang, kita harus menjalankan skrip untuk berlangganan pesan. Jadi Di terminal ketik python subscribe.py dan tekan enter.
python subscribe.py
Anda akan melihat pesan Menunggu Data Umpan … seperti gambar di bawah ini.
Sekarang, pastikan modul relai terhubung dengan pin GPIO dari Raspberry Pi lalu pergi ke dasbor Adafruit IO dan ubah umpan cahaya. The bola harus menyala saat “1” diterima dan dimatikan ketika “0” diterima seperti yang ditunjukkan di bawah ini.
Dengan cara ini kita dapat mengontrol peralatan apa pun dari mana saja di dunia dengan menggunakan Raspberry Pi dan cloud MQTT