Talaan ng mga Nilalaman:

Paano makontrol ang mga outlet gamit ang isang Raspberry Pi: 6 Hakbang
Paano makontrol ang mga outlet gamit ang isang Raspberry Pi: 6 Hakbang

Video: Paano makontrol ang mga outlet gamit ang isang Raspberry Pi: 6 Hakbang

Video: Paano makontrol ang mga outlet gamit ang isang Raspberry Pi: 6 Hakbang
Video: Lesson 24: Smart Car Part 2: Moving Forwared, Reverse, left and right and Controling Speed of Car 2024, Hulyo
Anonim
Paano makontrol ang mga outlet gamit ang isang Raspberry Pi
Paano makontrol ang mga outlet gamit ang isang Raspberry Pi
Paano makontrol ang mga outlet gamit ang isang Raspberry Pi
Paano makontrol ang mga outlet gamit ang isang Raspberry Pi
Paano makontrol ang mga outlet gamit ang isang Raspberry Pi
Paano makontrol ang mga outlet gamit ang isang Raspberry Pi

Sa Instructable na ito, ipapakita ko sa iyo kung paano lumikha ng isang web interface upang makontrol ang mga outlet sa iyong bahay gamit ang isang Raspberry Pi. Pinili kong isulat ang proyektong ito nang makita ko ang paligsahan ng Sensors, at dahil ang proyektong ito ay nagsasangkot ng paggamit ng isang sensor upang basahin ang mga code mula sa remote na ibinigay sa mga outlet na iyong binili, naisip kong ang proyektong ito ay magiging perpektong akma.

Magtatrabaho ako upang mapanatili itong kasing mataas ng antas hangga't maaari at magbigay ng code upang magawa itong lahat. Para sa inyong lahat na mga code unggoy doon, huwag mag-atubiling maghukay sa paligid ng code, at suriin ako sa mga komento! Palagi akong naghahanap upang mapabuti. Mayroong medyo nangyayari sa ito, kaya kung mayroon kang mga katanungan sa anumang hakbang, mangyaring mag-iwan ng komento upang ma-update ko ang Makatuturo sa mga kinakailangang detalye.

Gumagamit ang proyektong ito ng mga outlet ng kontrolado ng dalas ng radyo sa 433MHz na kaisa ng isang RF transmitter na konektado sa iyong raspberry pi. Ang mga outlet ay may mga remote na maaaring i-on / i-off ang mga outlet, ngunit hindi iyon masaya! Sa halip ay gagamit kami ng isang web server na tumatakbo sa raspberry pi na nagbibigay-daan sa sinumang nakakonekta sa network na i-on o i-off ang ilang mga saksakan. Ang isang web front-end sa proyektong ito ay mainam dahil ang anumang aparato na nakakonekta sa web sa iyong network ay maaaring magamit bilang iyong remote.

Ito ay isang proyekto na pinangarap kong makumpleto sa loob ng maraming taon, at kahit na may puwang pa para sa mga karagdagan, ang proyekto na inilarawan tulad ng sumusunod ay isang functional system.

Mga gamit

  • Isang Raspberry Pi (Gumamit ako ng isang RPi 3 Model B +)
  • Isang 433MHz Transmitter at Receiver (Ginamit ko ang isang ito)
  • 433MHz Outlets (Ginamit ko ito)
  • Mga Jumpers ng Babae-sa-Babae (Binili ko ang bungkos na ito)
  • Isang computer o handheld device na may kakayahang mag-access sa internet

Hakbang 1: I-set up ang Iyong Raspberry Pi

I-set up ang Iyong Raspberry Pi
I-set up ang Iyong Raspberry Pi

Magsimula sa pamamagitan ng pag-install ng pinakabagong bersyon ng Raspbian sa iyong bagong Raspberry Pi. Kung balak mong gumamit ng isang mayroon nang Pi (na maaari mong ganap na gawin), ang kailangan mo lang ay tiyakin na mayroon kang Python 3 sa iyong Pi, dahil iyan ang isinulat sa lahat ng pinagmulang code na ibinigay ko. Upang magawa ito, uri

sawa3

sa linya ng utos. Kung mayroon kang Python 3, dapat mong makita na bukas ang terminal ng sawa. Lumabas sa terminal sa pamamagitan ng pagsasara o pagta-type

exit ()

Sa sandaling nakumpirma mo ito, kailangan mong mag-install ng prasko sa iyong Pi. Pinapayagan kami ng Flask na lumikha ng aming web server. Mula sa linya ng utos ng Pi, uri

sudo pip3 install flask

Kung sakaling wala kang naka-install na pip sa iyong Pi, kakailanganin mong mag-type

sudo apt-get install python3-pip

Mas gusto kong bumuo sa aking Raspberry Pi mula sa kaginhawaan ng aking desktop computer. Kung mas gusto mo rin ang pagpipiliang ito, kailangan mong mag-install ng ilang uri ng kapaligiran sa SSH sa Pi. Gagana ang PuTTY, ngunit mas gusto ko na magkaroon ng isang GUI (grapiko na interface ng gumagamit), na nagpapahiwatig na direkta kang nasa Pi. Para sa pagpipiliang GUI, gugustuhin mong i-install ang VNC Viewer sa computer na plano mong gumana. Mayroon ding mga setting na kakailanganin mong ayusin sa iyong Pi. Ang mga tagubilin para sa pagbabago ng mga setting ay matatagpuan dito.

Hakbang 2: Pag-hook ng Iyong Hardware

Pag-hook up ng iyong Hardware
Pag-hook up ng iyong Hardware

Sa puntong ito, oras na upang gawin ang lahat ng mga pisikal na koneksyon na kakailanganin mong gawin bilang paghahanda sa pagse-set up ng source code para sa proyektong ito. Ikokonekta mo ang mga pin ng transmiter at ang tatanggap sa mga GPIO pin ng iyong Pi. Gusto mong sanggunian sa relihiyon ang pinout diagram ng mga GPIO pin. Upang magawa ito, buksan ang terminal sa iyong Pi at i-type

pinout

Ang mga sumusunod ay ang mga koneksyon na ginawa ko. Maaari kang magkaroon ng ibang pagsasaayos kung bumili ka ng iba't ibang mga hardware ng transmitter / receiver kaysa sa ipinahiwatig ko sa pagpapakilala. Kung magpasya kang pumili ng iba't ibang mga numero ng pin kaysa sa mga isinasaad ko sa ibaba, huwag kang matakot! Kapag na-download mo ang source code, baguhin lamang ang mga numero ng pin kung kinakailangan sa RxTx.py file.

Tumatanggap (malaking maliit na tilad):

  • GND - Anumang itinalagang ground pin
  • DATA - Pin 11
  • DER - Hindi konektado
  • + 5V - Anumang itinalagang + 5V pin
  • ------
  • + 5V - Anumang itinalagang + 5V pin
  • GND - Anumang itinalagang ground pin
  • GND - Hindi konektado
  • ANT - Hindi nakakonekta

Tandaan: Maaari mong ikonekta ang isang antena kung kinakailangan, ngunit nalaman kong hindi ko kailangan. Ang maliit na maliit na tilad na ito ay nakakagulat na sensitibo at matapat na nakakakita ng mga signal sa hindi bababa sa 50ft mula sa kung saan ito nakaupo at dumaan sa hindi bababa sa dalawang pader.

Transmitter:

  • P - Ang 3.3V pin
  • DA - Pin 7
  • G - Anumang itinalagang ground pin
  • AN - hindi konektado

Tandaan: Muli, maaari mong ikonekta ang isang antena sa transmitter kung kinakailangan, ngunit nalaman kong hindi ko na kailangan. Ang saklaw ay higit pa sa sapat (50 + ft).

Hakbang 3: Pagdaragdag ng Code

Ito ang bahagi kung saan ginugol ko ang karamihan ng aking oras noong binuo ko ang proyektong ito. Sinusubukan kong magkomento hangga't maaari, ngunit malamang na nag-iwan ako ng mga puwang na maaaring mangailangan ng paliwanag kung ang sinuman sa iyo ay gumugol ng oras sa pagsubok na maunawaan ito. Kung nangyari ito sa iyo, mangyaring mag-iwan ng komento!

Ang mga wikang kasangkot dito ay:

  • Sawa
  • CSS
  • Javascript
  • HTML
  • JQuery / Ajax

Ang Python ay ginagamit sa flask server at sa

RxTx.py

file, na humahawak sa paghahatid ng code at resibo. Ginagamit ang CSS sa pagbuo ng istilo ng webpage. Sino ang gusto ng isang boring website !? Ginagamit ang Javascript sa alinman sa paghawak ng kaganapan (pagtulak sa isang pindutan, atbp.). Ang HTML ay ang pangunahing bloke ng pagbuo ng webpage. Sa wakas, ang JQuery / Ajax ay ginagamit upang makipag-usap sa pagitan ng webpage at ng backend ng Python.

Kung ang lahat ng mga wikang ito ay nakakatakot, huwag mag-alala! Alam ko lamang ang pagpunta ni Python sa proyektong ito, na kung saan ay naging wika na nagsasangkot ng hindi gaanong halaga ng pag-coding, pumunta sa numero … Sapat na sabihin, dalhin ang iyong oras sa pagsusuklay sa pamamagitan ng code kung iyon ang pinili mong gawin. Kung ayaw mo, hindi mo na kailangan!

Ang sumusunod ay ang istraktura ng direktoryo na pinili kong gamitin sa webpage na ito. Ang naka-zip na folder na naka-attach sa hakbang na ito ay naglalaman ng lahat ng source code sa sumusunod na istraktura.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> webpage-- static ----- favicon.ico ----- style.css-- template ----- index.html ----- iskedyul.html-- app.py-- data.file

Maaari mong ilagay ang folder ng Outlet Switch saanman sa iyong Pi. Kapag handa ka nang patakbuhin ang iyong web server, buksan ang terminal sa iyong Pi, at

cd

(baguhin ang direktoryo) sa direktoryo ng webpage. Pagkatapos mag-type

python3 app.py

papasok sa terminal. Kung walang anumang mga error, dapat kang maging mahusay na pumunta!

P. S. Mangyaring maging mapagpasensya kung nasagasaan ka ng anumang mga bug. Sinubukan kong kalabasa lahat sa kanila bago mag-upload.

Hakbang 4: Bigyan Ito ng isang shot

Bigyan Ito ng shot!
Bigyan Ito ng shot!

Ngayon na pinapatakbo mo ang code, maaari kang makakuha ng isang pakiramdam para sa web interface sa iyong mga kamay. Ang kontrol ng system ay napaka-simple:

  • Maaari kang magdagdag ng maraming mga outlet hangga't gusto mo gamit ang web interface.
  • Ang pagtanggal ay kasing simple ng pag-click sa pag-edit, pagpili ng mga outlet na nais mong tanggalin, at pag-click sa tanggalin.

Ipinapakita ng video sa itaas sa YouTube kung paano talaga pumunta tungkol sa pagdaragdag ng isang bagong outlet sa iyong listahan. Upang buod kung ano ang ipinapakita nito:

  • Una ipasok ang pamagat ng outlet sa patlang ng Pamagat
  • Mag-click o pindutin ang labas ng patlang ng Pamagat upang payagan ang programa na suriin na ang pamagat ay wala na. Hindi ka maaaring magkaroon ng mga pamagat sa parehong pangalan
  • Kapag napatunayan, ang mga ON Code at OFF Code na mga pindutan ay pinagana.
  • Pindutin nang matagal ang pindutang ON sa iyong ibinigay na remote at mabilis na i-click ang pindutang ON Code sa interface. Hawakan ang pindutan sa remote hanggang ang iyong binary code ay mapunan ang katabing patlang.
  • Ulitin ang naunang hakbang para sa OFF Code.
  • Mag-click sa OK, at handa ka na ngayong ilipat ang outlet na ito!

Tulad ng nabanggit sa pagpapakilala, ang proyekto ay hindi 100% kumpleto para sa aking sariling mga gamit. Ang pinakamalaking sangkap na hindi ko pa nakukumpleto at naipatupad ay ang kakayahan sa pag-iiskedyul. Plano kong payagan ang gumagamit na bumuo ng isang iskedyul na magpapahintulot sa mga outlet na buksan at patayin sa mga itinalagang oras na awtomatiko.

Hakbang 5: Pag-debug at ang RxTx.py File

Ang pag-debug at ang RxTx.py File
Ang pag-debug at ang RxTx.py File
Ang pag-debug at ang RxTx.py File
Ang pag-debug at ang RxTx.py File
Ang pag-debug at ang RxTx.py File
Ang pag-debug at ang RxTx.py File
Ang pag-debug at ang RxTx.py File
Ang pag-debug at ang RxTx.py File

Ang tanging kilalang limitasyon ng system ay mayroong posibilidad na hindi magkatugma sa mga outlet ng iba't ibang vendor. Ang naka-on at naka-off na mga mensahe ng code ay 25 piraso para sa aking system, at kung ang isang system ay may iba't ibang haba ng mensahe, hindi ito kaagad katugma sa proyektong ito. Kung eksaktong nasunod mo ang mga tagubilin at nagkakaroon ka pa rin ng mga isyu sa paggana nito, ang sumusunod ay ang pinakamahusay na paraan upang mai-debug ang problema.

  • Tiyaking mayroon kang naka-install na matplotlib sa iyong Pi. Maaari mo itong gawin sa pamamagitan ng pag-type sa sumusunod sa terminal ng Pi:

    • sawa3

    • i-import ang matplotlib

    • Kung nakatanggap ka ng isang error, kailangan mong mag-install ng matplotlib.
    • Lumabas sa shell ng sawa gamit ang

      exit ()

  • Upang mai-install ang matplotlib, i-type

    sudo pip3 i-install ang matplotlib

  • papasok sa terminal
  • I-download ang nakalakip na test.py file, at ilagay ito sa tabi ng RxTx.py file sa iyong Pi
  • Buksan ang terminal ng sawa at baguhin ang direktoryo sa folder ng comm.
  • Uri

    pagsubok sa python3.py

  • Kapag sinabing "** Started Recording **," pindutin nang matagal ang iyong ON o OFF button sa iyong remote hanggang matapos ang recording.
  • Maglo-load ang programa ng isang matplotlib na pigura na mukhang katulad sa itaas. Mag-zoom in hanggang sa makita mo ang paulit-ulit na signal tulad ng ipinakita sa mga larawan sa itaas.
  • Bilangin ang kabuuang lohikal na 1 at lohikal na 0 para sa bawat mensahe, kung saan ang isang mensahe ay isang pag-ulit ng paulit-ulit na signal na nakikita sa itaas. Kung ang kabuuan ay 25, ang RxTx.py file ay malamang na walang kasalanan. Kung nakatagpo ka ng isang bagay bukod sa 25, tiyaking magbigay ng puna sa ibaba, at ibabalik ko ang file na RxTx.py upang maging mas bukas (o huwag mag-atubiling subukan ito.)

Paano kung hindi ako nakakakita ng paulit-ulit na signal?

Kung hindi ka nakakakita ng paulit-ulit na signal, mali ang isa sa dalawang bagay. Una, suriin na ang lahat ng iyong koneksyon sa jumper wire ay maayos na ginawa. Kung ang lahat ay mukhang maganda, maaari kang magkaroon ng isang hindi magandang tatanggap. Nabili mo ba ang iminungkahi ko? Kapag binili ko ang aking unang chip ng tatanggap, napakaingay nito. Kaya maingay hindi ako makakuha ng isang malinaw na signal. Ibinalik ko pagkatapos ang chip na iyon at kinuha ang na-link ko, at hindi ito maaaring gumana nang mas mahusay.

Hakbang 6: Mag-enjoy

Alam mong may kakayahang mag-on / off ng mga outlet mula sa iyong telepono, tablet, computer, o iba pang aparato na pinagana ng web! Ipaalam sa akin kung ano ang palagay mo sa mga komento!

Inirerekumendang: