Gingerbread Home Automation: 7 Steps (with Pictures)

Gingerbread Home Automation: 7 Steps (with Pictures)

Talaan ng mga Nilalaman:

Anonim

Inspirasyon

Nagkaroon kami ng isang gingerbread house building event sa trabaho sa mga pista opisyal. Hindi pa ako nagtayo ng isang tinapay mula sa gingerbread house bago, ngunit nais kong gumawa ng isa na interactive. Ang ideya ay upang bumuo ng mga maliit na sensors ng Bluetooth upang ilagay sa paligid ng iyong bahay (sa kasong ito, sa harap ng pintuan lamang). Pagkatapos ay mag-mimic ang bahay ng gingerbread kung ano ang ginagawa ng tunay na bahay. Halimbawa, kapag ang pintuan sa harap ay bubukas sa iyong tunay na bahay, ang pintuan sa gingerbread house ay bubukas din. At upang gawing mas maligaya, idinagdag ko ang LED na maaari mong kontrolin mula sa isang app ng telepono o sa pamamagitan ng nerbiyos. Nais kong gumamit ng mas maraming open source software hangga't maaari, kabilang ang MQTT, Node-RED, at OpenHAB. Narito ang isang demo na video.

System Diagram

  1. (Inputs) BLE Sensor Ito ay Bluetooth Low Energy (BLE) na module mula sa Silicon Labs. Naka-mount ako ng magnetic switch ng reed upang malaman kung ang pinto ay nabuksan o sarado. Kapag mayroong aktibidad ng pinto, ang sensor na ito ay nagpapadala ng bagong posisyon ng pinto sa gateway.
  2. (Output) ESP8266-Powered Gingerbread House: Gumagamit ako ng ESP8266 WiFi module upang makontrol ang LEDs ng tinapay mula sa luya at front door servo motor. Ang ESP8266 ay nakakakuha ng mga posisyon ng pinto at mga LED na kulay sa pamamagitan ng pag-subscribe sa mga paksa ng MQTT.
  3. BLE-MQTT Gateway: Upang tulay ang sensor ng BLE sa bahay ng tinapay mula sa luya ng WiFi, gumawa ako ng BLE-MQTT gateway. Ang gateway na ito ay may dalawang bahagi. Isang module ng BLE upang makuha ang data ng sensor at isang Raspberry Pi upang mai-publish ang data ng sensor sa MQTT.

Ang Raspberry Pi ay tumatakbo rin sa OpenHAB at Node-RED. Gumagamit ako ng OpenHAB upang ibigay ang pag-andar ng mobile app upang masubaybayan ang katayuan ng pinto sa malayo at baguhin ang LED na kulay sa bahay ng gingerbread. Ang Node-RED ay ginagamit upang mag-interface sa Twitter o magpadala ng mga text message. Kaya maaari mong baguhin ang mga LED na kulay sa pamamagitan ng Twitter tweet, at makatanggap ng mga text message kung ang basement mo ay basa.

...

Thunderboard React BLE Module

Ang Thunderboard React ay isang development board mula sa Silicon Labs. Ito ay may Bluetooth Low Energy module (BGM111), na may ilan sa mga I / O pin na nasira sa pamamagitan ng mga butas sa hole na kung saan maaari naming maghinang sensor. Ito ay pinapatakbo ng isang baterya ng baterya ng barya at may dalawang mga pindutan ng on-board at LEDs. Ang pinaka-kapaki-pakinabang para sa amin ay ang maliit na sukat at mahusay na saklaw. May sapat na pag-abot ito para sa mga proyekto sa pag-aautomat sa bahay, at sapat itong maliit upang maging kapaki-pakinabang para sa paggawa ng mga sensor. Ang module na Thunderboard React na ito ay ginagamit para sa parehong sensor at gateway.

Network

Gusto kong i-set up ito kaya ang tinapay mula sa luya bahay ay hindi kailangang maging sa parehong lokal na network bilang ang mga sensor ng bluetooth. Nais kong maipasok ang sensor ng BLE at gateway sa isang bahay, at ang bahay ng gingerbread ay malayo, ngunit mayroon pa rin itong bagay na pinto.

BOM

BLE-MQTT Bridge

  • Raspberry Pi 2
  • Silicon Lab's Thunderboard React BLE module

Sensor

  • Silicon Lab's Thunderboard React BLE module
  • Kahon
  • Reed Switch

Gingerbread House

  • ESP8266 wifi microcontroller
  • Antas shifter
  • MG90S Servo motor
  • WS2812 LED ring, 12
  • WS2812 LED ring, 24
  • WS2812 LED singles (qty 8)

Software: Github Project. Ang iba't ibang piraso ng software ay ipinaliwanag sa buong proyekto.

Ang pagbuo ng ito ay halos tulad ng anumang iba pang mga proyekto ng elektronika. I-download ang code papunta sa microcontrollers, at i-wire up ang LEDs at servos na ipinapakita sa mga diagram ng mga kable. Umaasa ako na ang aking mga paliwanag kung paano ito gumagana ay sapat na detalyado para baguhin ng iba para sa kanilang mga pangangailangan.

Mga Kagamitan:

Hakbang 1: Buuin ang BLE-MQTT Bridge

Ang tulay ng BLE-MQTT ay marahil ang pinaka-kumplikadong bahagi ng proyekto, kaya gusto kong ipaliwanag kung paano ito gumagana nang detalyado.

Upang maisalin ang kaganapan ng sensor ng bluetooth sa isang bagay na nakikita ng wifi module, kailangan naming tulay ang dalawang protocol. Iyan ang ginagawa ng gateway na BLE-MQTT na ito. Gumagamit ako ng isa pang module ng Thunderboard React bilang BLE scanner. Ang BLE scanner ay patuloy na ini-scan para sa aming data ng BLE sensor. Kapag nakikita nito ang isa, tinitingnan nito ang katangian na tinukoy namin sa sensor at binabasa ang data na iyon, at binubuga ang data na iyon sa UART.

Ang data ng UART mula sa BLE scanner ay nasa format

TTTTTT M

Saan T ay ang 6-byte na MAC address ng sensor ng Bluetooth, at M ang data ng sensor. Ang diagram na ito ay nagpapaliwanag ng mas mahusay na ito.

Ang script ng Python sa Raspberry Pi ay sinusubaybayan ang UART na makatanggap ng pin. Inaasahan nito ang format na ito, at tinutulak ang data na ito sa IP network gamit ang MQTT. Ang gateway na ito talaga ang nagbabasag ng data ng BLE papunta sa LAN, na nagpapahintulot sa WIFI module na makita ang data.

Ang Raspberry Pi ay tumatakbo rin sa OpenHAB, isang platform na nagbibigay ng functionality ng telepono ng app. Ang OpenHAB ay gumagamit ng parehong MQTT mekanismo upang makipag-usap sa tinapay mula sa luya bahay wifi module upang baguhin ang LED kulay. Kapag ginamit mo ang app na baguhin ang mga LED na kulay, inilalabas ng OpenHAB ang mga halaga ng Red, Green, at Blue (RGB) sa pamamagitan ng MQTT. Katulad nito, ang OpenHAB ay sumusubaybay sa paksa ng sensor ng pinto ng MQTT, at ina-update ang katayuan ng "Front Door Is" ng telepono nang naaayon. Hindi ako sigurado na ito ay may anumang kahulugan upang gamitin ang telepono app upang mano-manong buksan / isara ang pinto ng gingerbread house, ngunit nais kong idokumento ang mekanismo para sa paggawa nito.

Software

Mayroong 3 piraso ng software na kinakailangan sa gateway. Lahat sila ay nasa parehong proyekto sa aking github account.

  1. BGM111 gateway code para sa gateway BLE module.
  2. Python script
  3. Configuration ng OpenHAB

Kakailanganin mong i-install ang Mosquitto, ang MQTT broker, sa Pi.

sudo apt-get install mosquitto mosquitto-clients python-mosquitto

Patakbuhin ang script ng Python sa likod ng lupa.

nohup./ble_gateway.py &

I-download ang runtime ng OpenHAB. Palitan ang pagsasaayos ng demo sa isa na nakalista sa itaas. Ito ay isang bit ng isang simplistic paglalarawan, ngunit makikita ko iwanan ang detalyadong paliwanag sa pagpapatakbo ng OpenHAB sa kanilang wiki. Hindi kinakailangan ang OpenHAB upang makuha ang sensor upang buksan at isara ang pinto ng tinapay mula sa luya, ngunit kinakailangan upang baguhin ang mga LED na kulay.

Gumawa

Upang magtayo ng gateway, magsimula sa paglo-load ng gateway firmware papunta sa isang module ng Thunderboard React. Kailangan mong gamitin ang kit ng pag-unlad na nakalista sa BOM. Maaaring may mas murang paraan sa programa na hindi ko alam tungkol sa, ngunit kit na ito ay ang opisyal na paraan.

Gamitin ang gabay na "Quick Start QSG108" upang makapagsimula sa BGTools. Talaga, nais mong buksan ang file ng proyekto ng gateway na naka-link sa itaas gamit ang BGTools, itala ito upang makabuo ng.bin file, at pagkatapos ay i-download ang.bin sa Thunderboard React BLE module gamit ang isang hiwalay na programa na tinatawag na Simplicity Commander o EA Monitor (ito ay dumating gamit ang pag-install ng BGTool). Kung mayroon kang problema, ang Silicon Labs forum ay isang magandang lugar upang maghanap o magtanong.

Sa sandaling ang module ay nakaprograma sa gateway code, sundin ang nasa itaas na mga diagram ng mga kable upang ikunekta ang BLE module sa Raspberry Pi 2. Ang aking pag-setup ay gumagamit ng Pi 2 dahil sa libreng hardware na UART. Kung gumagamit ka ng Pi3, kakailanganin mong paganahin ang miniUART. Tandaan din na ang module ng Thunderboard React ay may switch na pinipili sa pagitan ng baterya at panlabas na kapangyarihan. Dapat itong ilipat upang gumamit ng panlabas na kapangyarihan, habang pinapalakas namin ang module mula sa 3.3V supply ng Pi.

Inimuntar ko ang module tulad ng isang beanstalk sa Pi, gamit ang isang zip tie at malagkit upang i-hold ito. Ang pagkakalagay ng gateway ay medyo mahalaga. Gusto mo itong centrally matatagpuan upang magbigay ng mas maraming coverage sa isang solong gateway hangga't maaari, kung hindi, maaaring kailangan mong bumuo ng isa pang gateway. Ang bahagi ng BGM111 sa Thunderboard React ay medyo magandang output power habang namamahala pa rin na tumakbo sa isang coin cell. Sa isang gateway, nakakaabot ako sa lahat ng aking tatlong silid-tulugan na bahay.

Hakbang 2: Bumuo ng BLE Sensor

Ang sensor ay isa pang board ng Thunderboard React. Pag-compile at programin ang module ng sensor gamit ang mga tagubilin na matatagpuan sa hakbang ng gateway, ngunit gamitin ang sensor code dito. Ang sensor ay gumagamit ng isang simpleng switch ng tambo na konektado sa pagitan ng isa sa mga pin kapangyarihan at pin PD13. Iyon lang, ang mga kable ay medyo simple. Huwag kalimutan na ilipat ang paglipat sa VBAT upang ang baterya ay makapangyarihan sa modyul. Ang code ay lumiliko sa LEDs upang makita mo kapag ito ay pagpapadala at pagkonekta sa gateway. Iulat ang mga linyang ito kapag tiwala ka sa mga bagay na nagtatrabaho.

Kapag ang module ay programmed at ang reed switch soldered, ang BLE sensor ay maaaring ilagay sa isang enclosure at naka-mount sa pinto. Maglakip ng magneto sa pinto.

Kapag sinubukan ko ang hanay sa mga modyul na ito, nakuha ko ang lahat ng aking bahay kapag ang gateway ay medyo matatagpuan sa gitna.

Hakbang 3: Gumawa ng Gingerbread House!

Ito ang kasiya-siyang bahagi. Narito ang ilang mga pag-unlad ng mga larawan kung paano ko itinayo ang gingerbread house. Ihambing ito sa kung anong mayroon ka. Ito ang aking unang bahay ng tinapay mula sa luya, at pagkatapos makita kung ano ang magagawa ng ibang tao, inamin ko na ang aesthetic na bahagi ng aking pagtatayo ay medyo kakaiba. Sa susunod na taon, higit pang mga icing at dekorasyon!

Pagputol Ang Door / Window

Ginamit ko ang isang dremel upang i-cut ang mga pinto at window ng mga bakanteng, pati na rin ang USB cable na pagbubukas sa likod ng bahay. Ito ay nagtrabaho ng nakakagulat na rin, hindi ito gumuho. Ang init mula sa dremel na uri ng tool ng cauterizes ang cut ibabaw ng tinapay mula sa luya, kaya na ay medyo kawili-wiling.

LEDs

Ang bubong LED ay isang serye ng 8 indibidwal na WS8212 na soldered magkasama sa isang hugis V. Nagustuhan ko ang hitsura nila kapag tinakpan ng frosting. Sinuri ko upang tiyakin na ang frosting ay hindi kondaktibo bago slathering ito sa hubad LED contact.

Ang taong yari sa niyebe ay isang 12-na humantong singsing at isang 24 na humantong singsing ng WS8212s naka-wire sa serye. Mainit ang nakadikit sa tray kaya nakatayo itong tuwid. Ginamit ko ang papel ng parchment at inilagay ito sa mga singsing ng LEDs. Sa wakas ay natagpuan ang isang paggamit para sa sampung taon gulang na sulatan papel.

Pambungad na pintuan

Ang paggawa ng pinto sa harap ay nakakalito. Gumawa ako ng bracket-fit bracket para sa servo motor gamit ang … stuff. Well, ito ay ang plastic safety cover mula sa isa sa mga murang extension cord. Huwag mag-atubiling mag-imbak, dahil tinitingnan ko lamang ang paligid para sa anumang bagay na maaaring magtrabaho. Gumamit ako ng mainit na pangkola upang ilakip ang bracket sa tinapay mula sa luya. Na nagtrabaho nakakagulat na rin hangga't ang ibabaw na lugar ay malaki. Ang aktwal na pinto ay isang piraso lamang ng matigas na papel mula sa junk mail na nakadikit sa braso ng servo.

Hakbang 4: ESP8266, LEDs at Servo

Nag-uugnay ang ESP8266 sa broker ng MQTT sa Raspberry Pi upang matukoy ang mga kulay na ipapakita sa LED pati na rin kung paano i-posisyon ang front door servo motor. Ang ESP8266 code ay narito. Ginagamit ko ang bersyon ng NodeMCU ng ESP8266. Ang isang pares ng mga item na kailangang ma-edit ay ang iyong mga natatanging wifi credentials at ang iyong Raspberry Pi MQTT broker IP address.

Ang microcontroller at breadboard ay nasa loob ng bahay ng tinapay mula sa luya, na may dalawang USB cable na nakabitin sa likod ng bahay. Kakailanganin mo ang dalawang USB cable. Ang isa sa kanila ay may kapangyarihan sa ESP8266 (iniwan ko na sa labas ng mga diagram ng mga kable dahil maliwanag na naka-plug ito sa wifi module). Ang iba pang USB cable ay nagbibigay ng 5V power rail para sa LEDs at servo motor. Ang ESP8266 ay hindi maaaring magbigay ng sapat na kasalukuyang para sa lahat ng mga LED at servo. Ang signal mula sa ESP8266 ay tumatakbo sa pamamagitan ng 4-channel na antas ng shifter sa LEDs at servo. Nagtagay ako ng isang kapasitor sa 5V na linya ng kuryente, ngunit hindi ito talagang kailangan dahil may sapat na capacitors sa mga USB charger, kaya inalis ko na sa labas ng eskematiko.

Narito ang isang maikling clip ng servo motor na nagiging pinto, para lamang magbigay sa iyo ng isang ideya kung paano i-posisyon ang servo.

Hakbang 5: Node-RED Nagdaragdag ng Higit pang Pagkakakonekta

Dahil ang parehong mga sensor at ang LEDs at Motors ay tumatakbo sa MQTT, talagang madali itong gamitin Node-RED upang magdagdag ng higit na pagkakakonekta sa gingerbread house. Mayroon nang isang MQTT node na nagbibigay-daan sa iyo upang mag-subscribe at mag-publish sa MQTT broker sa Pi. Mayroon ding mga email at Twitter node. Maaari naming gamitin ang Node-RED upang payagan ang mga tweet na baguhin ang kulay ng mga LEDs ng gingerbread house halimbawa. Maaari rin naming gamitin ang mga tweet upang buksan at isara ang pinto, bagaman ang ganitong uri ng mga nakakasira mula sa pagiging kapaki-pakinabang ng pintuan sa gingerbread house. Ngunit ang punto ay na maaari mong:)

Ang nangungunang seksyon ay sinusubaybayan ang mga tweet at sinulat ang teksto sa tweet upang makita kung ito ay isang kulay (at kung anong kulay). Pagkatapos ay inilalathala nito sa MQTT ang halaga ng RGB na naaayon sa kulay ng tweet na iyon.

Maaari din naming magkaroon ng tweet ng post sensor ng pinto kapag ang pinto ay nabuksan o sarado. Ang pangalawang daloy ay sinusubaybayan ang mensahe ng MQTT na naaayon sa Bluetooth door sensor at nag-tweet ito.

Ang lahat ng mga Node-RED daloy ay matatagpuan dito. Maaari mo lamang kopyahin ang teksto at i-import ito sa iyong daloy.

http: //github.com/tsaitsai/gingerbread-house/blob …

Hakbang 6: Paggawa ng Sensor ng Leak ng Tubig

Iyan ay para sa bahay ng gingerbread. Ngunit gusto kong gumawa ng isa pang sensor. Ito ay mahusay na magkaroon ng kakayahang umangkop upang gumawa ng mga sensor upang gawin kung ano ang kailangan mo. Ang parehong sensor ng pinto ay maaaring magamit upang gumawa ng isang sensor na tumagas ng tubig na magpapadala ng text message kapag natagpuan ang tubig.

Ang larawan gallery ay halos naglalarawan kung paano gumawa ng sensor. Ngunit para sa pagkakumpleto:

  1. Ginamit ko ang eksaktong parehong circuit bilang sensor ng pinto, ngunit sa halip ng isang switch ng tambo, ginamit ko ang dalawang wires sa kapangyarihan at PD13 Pins. Ang mga ito ay kumilos bilang mga probes ng tubig.
  2. Mag-drill ng mga butas para sa mga wires na lumabas sa kahon.
  3. Ilakip ang bula sa ilalim na gilid upang maaari itong lumutang kung mayroong maraming tubig. Gusto kong i-save ang sensor pati na rin ang basement.
  4. Gamitin ang daloy ng Node-RED mula sa nakaraang hakbang, ang sensor ay kasama sa daloy na iyon. Maraming mga pagpipilian kung paano makakuha ng mga notification. Ang email at text message ay higit na makatutulong kaysa sa Twitter. Para sa mga text message, gumagamit ako ng Twilio upang makuha ang kakayahang tumugon, ngunit ang email ay gagana rin ng maayos.

Mayroon akong reservation tungkol sa kung gaano kahusay ang circuit na ito ay gumagana sa ilalim ng lahat ng mga kondisyon. Kung mayroon kang mas mababang antas ng deposito ng mineral sa iyong tubig, maaaring hindi ito gumana. Ngunit nais kong ipakita ang kakayahang umangkop ng mga sensor ng DIY BLE kapag pinagsama sa isang cool na platform tulad ng Node-RED.

Ang video ay kinunan sa basement laundry room. Ang gateway ay nakaupo upstairs sa pamamagitan ng router, lamang upang magbigay ng ilang mga ideya ng saklaw.

Hakbang 7: Maligaya 2017

:)

Ikatlong Prize sa

IoT Builders Contest