Isi kandungan:

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

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

Video: TextPlayBulb: PlayBulb Diaktifkan REST Menggunakan Raspberry Pi 3, BLE dan Telegram: 3 Langkah
Video: Войны установок, серия 183 - Подростковое издание 2024, November
Anonim
TextPlayBulb: PlayBulb Diaktifkan REST Menggunakan Raspberry Pi 3, BLE dan Telegram
TextPlayBulb: PlayBulb Diaktifkan REST Menggunakan Raspberry Pi 3, BLE dan Telegram

Instruksional ini menunjukkan cara menyambung ke lampu LED Bluetooth PlayBulb Color menggunakan Python, perpustakaan Raspberry Pi 3 dan Bluetooth dan untuk memperluas kawalan melalui REST API untuk senario IoT, dan sebagai pantulan, projek ini juga menunjukkan cara memperluas REST API untuk mengawal PlayBulb anda ke atas klien teks IM, mis Telegram, seperti bercakap dengan rumah automatik anda melalui teks.

Projek ini dibina berdasarkan 3 modul:

  1. pyBulbDriver: Sambungkan ke PlayBulb melalui BLE gatttool dan python.
  2. pyBulbServer: Menggunakan pyBulbDriver untuk mendedahkan kawalan main bola melalui REST API.
  3. pyBulbMessenger: Menyambung ke bot telegram untuk menghantar dan menerima arahan melalui klien telegram yang dipasang di mana-mana telefon pintar, dan menggunakan REST API untuk mengeluarkan perintah ke PlayBulb.

Anda boleh mengklon projek melalui git repository:

Matlamat Projek:

Untuk membuat alat asas untuk berinteraksi dengan mentol anda melalui kaedah yang berbeza seperti menghantar teks buat masa ini, senario masa depan mungkin melibatkan arahan ucapan, memberi isyarat kepada lampu … dll.

Sumber lain yang digunakan untuk membuat arahan ini:

  • Protokol Bluetooth Warna PlayBulb:
  • Menyambungkan Python ke Playbulb melalui Bluetooth:
  • Menyiapkan bot telegram:

Sumbangan

pyBulbDriver diperluas agar lebih fleksibel dan parameter untuk kemudahan peluasan masa depan, membina senario untuk membolehkan anda bermain-main dengan menghantar teks lampu anda. Antara muka yang mudah untuk menguji dan bermain-main.

Batasan

Pemacu ditulis untuk PlayBulb Color, untuk jenis PlayBulb lain seperti Asli atau lilin, kod bluetooth di pyBulbDriver perlu diubah mengikut protokol yang disebutkan di atas.

Anda perlu mendaftarkan akaun telegram, dan mendapatkan kunci api, yang anda tambahkan di pyBulbMessenger.py, ikuti pengaturan bot telegram di sumber lain.

Langkah 1: Menyiapkan Projek

1. Mendapatkan kunci API anda dari Telegram

> Ikuti arahan semasa untuk mendapatkan kunci API anda

> Tambahkan kunci api anda ke pemboleh ubah api di pyBulbMessenger.py

2. Menetapkan Nama PlayBulb anda di pyBulbDriver

> Agar gatttool dapat mencari peranti tulis, tetapkan nama peranti anda untuk diimbas menggunakan pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Contohnya boleh didapati di pyBulbServer.py untuk menyediakan Pelayan REST anda

3. Untuk memulakan projek

> Anda perlu memulakan pyBulbServer.py terlebih dahulu, kemudian diikuti oleh pyBulbMessenger.py untuk menghantar teks. Anda boleh menguji arahan pyBulbServer menggunakan CURL.

4. Bahan yang Diperlukan:

> Raspberry Pi 3 dan PlayBulb Color atau PlayBulb Candle

> Memasang Telegram untuk Android atau iOS

5. Pemasangan Bluetooth Rasberry Pi 3 LE:

www.elinux.org/RPi_Bluetooth_LE

Langkah 2: Berjalan Melalui Kod

pyBulbDriver.py

pyBulbDriver mengandungi kelas pemacu untuk menyambung ke PlayBulb melalui BLE

pyBulbDriver dapat digunakan juga untuk projek generik lain, kerana ia hanya mengandungi kod untuk mengimbas dan mengatur sambungan playBulb.

API utama untuk antara muka Aplikasi Pengguna:

  • scanForBulb (devicename: String)> Untuk mengimbas PlayBulb atau PlayBulbs melalui nama peranti mereka
  • 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 merangkumi jenis kesan dan kelajuan. Untuk mengetahui lebih lanjut periksa bahagian Kesan protokol warna

Di kelas ini, anda juga akan menemui kaedah pembantu lain yang dimaksudkan untuk pemeriksaan integriti data dan bukan untuk antara muka pengguna

  • tukarRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (nombor)
  • checkModeAndSpeed (mod, offbeat, onbeat)
  • cekRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer memperlihatkan antara muka Aplikasi Pengguna ke dalam pautan RESTful menggunakan PUT dan JSON untuk menghantar dan menerima data ke pyBulbDriver. Imbasan dan inisialisasi sambungan BLE juga dibuat semasa pelayan diaktifkan.

pyBulbResource (Sumber) menyalurkan panggilan ke Pelayan REST menggunakan warna dan kesan untuk menentukan perintah mentol.

Contoh Untuk memberi kesan:

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 bertanggungjawab untuk menghubungkan bot Telegram yang disambungkan ke klien telefon pintar telegram anda. Untuk maklumat lebih lanjut mengenai cara mengkonfigurasi dan menyambung ke bot telegram semak

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

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

Langkah 3: Kesimpulannya

Reka bentuk seni bina semasa lebih kepada penyederhanaan daripada skalabiliti. Masih belum ada sambungan kumpulan, lebih banyak aplikasi mengenai menghantar teks mentol sama ada untuk arahan lurus atau interaksi suka bermain masih dalam penyelidikan.

Dengan melanggan git repo atau mengikuti, lebih banyak maklumat akan datang mengenai kemas kini ini. Alasan untuk projek seperti ini adalah untuk menghubungkan playBulb dan membuat antara muka RESTful untuk kemudahan pembangunan dalam IoT (senario internet of things) tetapi juga untuk membuka peluang untuk menggunakan kaedah yang berbeza melalui telegram IM Pelanggan seperti gambar, suara dan teks untuk berinteraksi dengan peralatan dari perspektif penyelidikan.

Disyorkan: