Daftar Isi:

TextPlayBulb: REST Diaktifkan PlayBulb Menggunakan Raspberry Pi 3, BLE dan Telegram: 3 Langkah
TextPlayBulb: REST Diaktifkan PlayBulb Menggunakan Raspberry Pi 3, BLE dan Telegram: 3 Langkah

Video: TextPlayBulb: REST Diaktifkan PlayBulb Menggunakan Raspberry Pi 3, BLE dan Telegram: 3 Langkah

Video: TextPlayBulb: REST Diaktifkan PlayBulb Menggunakan Raspberry Pi 3, BLE dan Telegram: 3 Langkah
Video: Setup Wars Episode 183 - Teen Edition 2024, Juli
Anonim
TextPlayBulb: REST Diaktifkan PlayBulb Menggunakan Raspberry Pi 3, BLE dan Telegram
TextPlayBulb: REST Diaktifkan PlayBulb Menggunakan Raspberry Pi 3, BLE dan Telegram

Instruksi ini menunjukkan cara menyambungkan ke lampu LED bluetooth PlayBulb Color menggunakan Python, perpustakaan Raspberry Pi 3 dan Bluetooth dan untuk memperluas kontrol melalui REST API untuk skenario IoT, dan sebagai bonus, proyek ini juga menunjukkan cara memperluas REST API untuk mengontrol PlayBulb Anda melalui klien teks IM misalnya Telegram, seperti berbicara ke rumah otomatis Anda melalui teks.

Proyek ini dibangun di atas 3 modul:

  1. pyBulbDriver: Hubungkan ke PlayBulb melalui BLE gatttool dan python.
  2. pyBulbServer: Menggunakan pyBulbDriver untuk mengekspos kontrol playbulb melalui REST API.
  3. pyBulbMessenger: Menghubungkan ke bot telegram untuk mengirim dan menerima perintah melalui klien telegram yang diinstal pada ponsel pintar apa pun, dan menggunakan REST API untuk mengeluarkan perintah ke PlayBulb.

Anda dapat mengkloning proyek melalui repositori git:

Tujuan Proyek:

Untuk membuat alat dasar untuk berinteraksi dengan bohlam Anda melalui modalitas yang berbeda seperti mengirim pesan teks untuk saat ini, skenario masa depan dapat melibatkan perintah ucapan, memberi isyarat ke lampu … dll.

Sumber daya lain yang digunakan untuk membuat instruksi ini:

  • Protokol Bluetooth Warna PlayBulb:
  • Menghubungkan Python ke Playbulb melalui Bluetooth:
  • Setting bot telegram:

Kontribusi

pyBulbDriver diperluas menjadi lebih fleksibel dan berparameter untuk kemudahan perpanjangan di masa mendatang, membangun skenario untuk memungkinkan Anda mengutak-atik SMS lampu Anda. Antarmuka sederhana untuk menguji dan mengutak-atik.

Keterbatasan

Driver ditulis untuk PlayBulb Color, untuk jenis PlayBulb lainnya mis. Asli atau lilin, kode bluetooth di pyBulbDriver perlu diubah sesuai dengan protokol yang disebutkan di atas.

Anda perlu mendaftarkan akun telegram, dan mendapatkan kunci api, yang Anda tambahkan di pyBulbMessenger.py, ikuti pengaturan bot telegram di sumber daya lainnya.

Langkah 1: Menyiapkan Proyek

1. Mendapatkan kunci API Anda dari Telegram

> Ikuti instruksi saat ini untuk mendapatkan kunci API Anda

> Tambahkan kunci api Anda ke variabel api di pyBulbMessenger.py

2. Mengatur Nama PlayBulb Anda di pyBulbDriver

> Agar gatttool menemukan perangkat tulis, atur nama perangkat Anda untuk dipindai menggunakan pyBulbDriver.scanForBulb("PLAYBULB COLOUR"). Contoh dapat ditemukan di pyBulbServer.py untuk mengatur Server REST Anda

3. Untuk memulai proyek

> Anda harus memulai pyBulbServer.py terlebih dahulu, lalu diikuti oleh pyBulbMessenger.py untuk SMS. Anda dapat menguji perintah pyBulbServer menggunakan CURL.

4. Bahan yang Dibutuhkan:

> Raspberry Pi 3 dan PlayBulb Color atau PlayBulb Candle

> Memasang Telegram untuk Android atau iOS

5. Instalasi Bluetooth Rasberry Pi 3 LE:

www.elinux.org/RPi_Bluetooth_LE

Langkah 2: Berjalan Melalui Kode

pyBulbDriver.py

pyBulbDriver berisi kelas driver untuk menghubungkan ke PlayBulb melalui BLE

pyBulbDriver dapat digunakan juga untuk proyek umum lainnya, karena hanya berisi kode untuk memindai dan mengatur koneksi playBulb.

API utama untuk antarmuka Aplikasi Pengguna:

  • scanForBulb(devicename:String) > Untuk memindai PlayBulb atau PlayBulbs melalui nama perangkatnya
  • setBulbColor(s:int, r:int, g:int, b:int) > Untuk menentukan nilai kecerahan dan warna RGB (0 hingga 255)
  • setBulbEffect(s:int, r:int, g:int, b:int, mode:int, onbeat:int, offbeat:int) > Mirip dengan setBulbColor, tetapi mencakup jenis efek dan kecepatan. Untuk mengetahui lebih lanjut, periksa bagian Efek protokol warna

Di kelas ini Anda juga akan menemukan metode pembantu lain yang dimaksudkan untuk pemeriksaan integritas data dan bukan untuk antarmuka pengguna

  • convertRGBToHexaCmd(s, r, g, b)
  • convertIntToHex(angka)
  • checkModeAndSpeed(mode, offbeat, onbeat)
  • checksRGBInBounds(s, r, g, b)

pyBulbServer.py

pyBulbServer memaparkan antarmuka Aplikasi Pengguna ke hyperlink RESTful menggunakan PUT dan JSON untuk mengirim dan menerima data ke pyBulbDriver. Juga pemindaian dan inisialisasi koneksi BLE dilakukan saat server diaktifkan.

pyBulbResource(Resource) menyalurkan panggilan ke REST Server menggunakan warna dan efek untuk menentukan perintah bulb.

Contoh Untuk memerintahkan efek:

127.0.0.1/bulb/effect

JSON POST > {data':'{"s":0, "r":255, "g":255, "b":255, "m":1, "on":15, "off":15 }'}

pyBulbMessenger.py

Akhirnya pyBulbMessenger bertanggung jawab untuk menghubungkan bot Telegram yang terhubung ke klien ponsel pintar telegram Anda. Untuk detail lebih lanjut tentang cara mengkonfigurasi dan menghubungkan ke bot telegram, periksa

cmdHandler(bot, update) adalah tempat perintah teks didefinisikan dan dihubungkan ke PlayBulb melalui RESTful API.

Saat ini proyek hanya memiliki teks, tujuan lain juga mengirim pesan suara yang direkam yang akan dikirim ke pengenal suara untuk mengaktifkan perintah lain (Belum Diimplementasikan).

Langkah 3: Kesimpulan

Desain arsitektur saat ini lebih tentang penyederhanaan daripada skalabilitas. Konektivitas grup masih hilang, juga lebih banyak aplikasi tentang mengirim pesan ke bohlam baik untuk perintah langsung atau interaksi yang menyenangkan masih dalam penelitian.

Dengan berlangganan git repo atau mengikuti, detail lebih lanjut akan datang pada pembaruan ini. Alasan proyek semacam itu adalah untuk menghubungkan playBulb dan membuat antarmuka RESTful untuk kemudahan pengembangan dalam IoT (skenario internet of things) tetapi juga untuk membuka kesempatan untuk menggunakan modalitas yang berbeda melalui telegram Klien IM seperti gambar, suara dan teks untuk berinteraksi dengan peralatan dari perspektif penelitian.

Direkomendasikan: