Talaan ng mga Nilalaman:

TextPlayBulb: REST Pinagana ang PlayBulb Paggamit ng Raspberry Pi 3, BLE at Telegram: 3 Mga Hakbang
TextPlayBulb: REST Pinagana ang PlayBulb Paggamit ng Raspberry Pi 3, BLE at Telegram: 3 Mga Hakbang

Video: TextPlayBulb: REST Pinagana ang PlayBulb Paggamit ng Raspberry Pi 3, BLE at Telegram: 3 Mga Hakbang

Video: TextPlayBulb: REST Pinagana ang PlayBulb Paggamit ng Raspberry Pi 3, BLE at Telegram: 3 Mga Hakbang
Video: Как работает Spring Boot и что такое auto-configuration. Магия? 2024, Nobyembre
Anonim
TextPlayBulb: REST Pinagana ang PlayBulb Paggamit ng Raspberry Pi 3, BLE at Telegram
TextPlayBulb: REST Pinagana ang PlayBulb Paggamit ng Raspberry Pi 3, BLE at Telegram

Ipinapakita ng itinuturo na ito kung paano kumonekta sa isang lampara ng Kulay ng Bluetooth ng PlayBulb gamit ang Python, isang Raspberry Pi 3 at Bluetooth library at upang pahabain ang mga kontrol sa pamamagitan ng isang REST API para sa isang scenario ng IoT, at bilang isang bouns, ipinapakita rin ng proyekto kung paano pahabain ang REST API upang makontrol ang iyong PlayBulb sa isang IM text client hal Telegram, tulad ng pakikipag-usap sa iyong awtomatikong bahay sa pamamagitan ng teksto.

Ang proyektong ito ay binuo sa 3 mga module:

  1. pyBulbDriver: Kumonekta sa PlayBulb sa pamamagitan ng BLE gatttool at python.
  2. pyBulbServer: Paggamit ng pyBulbDriver upang mailantad ang kontrol ng playbulb sa pamamagitan ng REST API.
  3. pyBulbMessenger: Kumokonekta sa isang bot ng telegram upang magpadala at makatanggap ng mga utos sa pamamagitan ng telegram client na naka-install sa anumang smart phone, at ginagamit ang REST API upang mag-isyu ng mga utos sa PlayBulb.

Maaari mong i-clone ang proyekto sa pamamagitan ng git repository:

Layunin ng Proyekto:

Upang lumikha ng isang batayang tool para sa pakikipag-ugnay sa iyong bombilya sa pamamagitan ng iba't ibang mga modalidad tulad ng pag-text sa ngayon, ang mga pangyayari sa hinaharap ay maaaring kasangkot sa mga utos ng pagsasalita, paggalaw sa lampara … atbp.

Iba pang mga mapagkukunan na ginamit upang likhain ang itinuturo na ito:

  • PlayBulb Color Bluetooth Protocol:
  • Pagkonekta sa Python sa Playbulb sa pamamagitan ng Bluetooth:
  • Pagse-set up ng bot ng telegram:

Kontribusyon

Ang pyBulbDriver ay pinalawig upang maging mas may kakayahang umangkop at gawing parameter para sa kadalian ng hinaharap na extension, pagbuo ng isang senaryo upang payagan kang makalikot sa pag-text sa iyong lampara. Simpleng interface para sa pagsubok at pagkalikot sa paligid.

Limitasyon

Ang driver ay nakasulat para sa Kulay ng PlayBulb, para sa iba pang mga uri ng PlayBulb hal. Orihinal o kandila, ang Bluetooth code sa pyBulbDriver ay kailangang mabago alinsunod sa nabanggit na protokol.

Kailangan mong magparehistro ng isang telegram account, at kumuha ng isang api key, na idaragdag mo sa pyBulbMessenger.py, sundin ang pag-set up ng telegram bot sa mga mapagkukunang O.

Hakbang 1: Pagse-set up ng Project

1. Pagkuha ng iyong API key mula sa Telegram

> Sundin ang kasalukuyang itinuturo upang makuha ang iyong API key

> Idagdag ang iyong api key sa variable api sa pyBulbMessenger.py

2. Ang pagtatakda ng iyong Pangalan ng PlayBulb sa pyBulbDriver

> Para mahanap ng gatttool ang aparato ng pagsulat, itakda ang pangalan ng iyong aparato upang mai-scan gamit ang pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Ang halimbawa ay matatagpuan sa pyBulbServer.py upang mai-set up ang iyong REST Server

3. Upang simulan ang proyekto

> Kailangan mong simulan muna ang pyBulbServer.py, pagkatapos ay sundan ng pyBulbMessenger.py para sa pag-text. Maaari mong subukan ang mga utos na pyBulbServer gamit ang CURL.

4. Materyal na Kailangan:

> Raspberry Pi 3 at PlayBulb Color o PlayBulb Candle

> Pag-install ng Telegram para sa Android o iOS

5. Pag-install ng Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Blu Bluetooth_LE

Hakbang 2: Paglalakad sa Pamamagitan ng Code

pyBulbDriver.py

Naglalaman ang pyBulbDriver ng mga klase ng driver para sa pagkonekta sa PlayBulb sa pamamagitan ng BLE

Maaaring magamit din ang pyBulbDriver para sa anumang iba pang mga pangkaraniwang proyekto, dahil naglalaman lamang ito ng code upang i-scan at i-set up ang mga koneksyon sa playBulb.

Ang pangunahing mga API para sa interface ng Application ng User:

  • scanForBulb (devicename: String)> Upang i-scan ang PlayBulb o PlayBulbs sa pamamagitan ng kanilang pangalan ng aparato
  • setBulbColor (s: int, r: int, g: int, b: int)> Upang tukuyin ang liwanag at kulay ng RGB (0 hanggang 255) na mga halaga
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Katulad ng setBulbColor, ngunit may kasamang uri ng epekto at bilis. Upang malaman ang higit na suriin ang seksyon ng Mga Epekto ng Protokol ng

Sa klase na ito mahahanap mo rin ang iba pang mga pamamaraan ng tumutulong na nilalayon para sa pagsusuri ng integridad ng data at hindi para sa interface ng gumagamit

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (numero)
  • checkModeAndSpeed (mode, offbeat, onbeat)
  • mga tsekeRGBInBounds (s, r, g, b)

pyBulbServer.py

Inilalantad ng pyBulbServer ang interface ng Application ng User sa RESTful hyperlink gamit ang PUT at JSON upang magpadala at makatanggap ng data sa pyBulbDriver. Gayundin ang pag-scan at pagsisimula ng koneksyon ng BLE ay ginawa kapag ang server ay naaktibo.

Nag-channel ang pyBulbResource (Resource) ng mga tawag sa REST Server gamit ang kulay at epekto upang tukuyin ang utos ng bombilya.

Halimbawa Para sa pag-uutos ng isang epekto:

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

Sa wakas ang pyBulbMessenger ay responsable para sa interfacing ng Telegram bot na konektado sa iyong telegram smart phone client. Para sa higit pang mga detalye tungkol sa kung paano mag-configure at kumonekta sa isang telegram bot check

Ang cmdHandler (bot, update) ay kung saan ang mga utos ng teksto ay tinukoy at konektado sa PlayBulb sa pamamagitan ng RESTful API.

Sa kasalukuyan ang proyekto ay mayroon lamang teksto, isa pang layunin ay upang magpadala din ng naitala na mga mensahe ng boses na ipapadala sa isang tagakilala sa pagsasalita upang buhayin ang iba pang mga utos (Hindi Naipatupad Pa).

Hakbang 3: Konklusyon

Ang kasalukuyang disenyo ng arkitektura ay higit pa sa pagpapasimple kaysa sa kakayahang sumukat. Nawawala pa rin ang pagkakakonekta ng pangkat, marami ring mga application tungkol sa pag-text sa bombilya alinman para sa tuwid na utos o mapaglarong pakikipag-ugnay ay nasa ilalim pa rin ng pagsasaliksik.

Sa pamamagitan ng pag-subscribe sa git repo o pagsunod, maraming mga detalye ang darating sa mga pag-update na ito. Ang dahilan para sa naturang proyekto ay upang mai-interface ang playBulb at lumikha ng isang RESTful interface para sa kadalian ng pag-unlad sa isang IoT (senaryo ng mga bagay sa internet) ngunit upang buksan din ang pagkakataon na gumamit ng iba't ibang mga modalidad sa pamamagitan ng IM Client telegram tulad ng mga larawan, boses at teksto upang makipag-ugnay sa mga appliances mula sa isang pananaw sa pananaliksik.

Inirerekumendang: