Sisällysluettelo:

Kuinka ohjata pistorasioita Raspberry Pi: n avulla: 6 vaihetta
Kuinka ohjata pistorasioita Raspberry Pi: n avulla: 6 vaihetta

Video: Kuinka ohjata pistorasioita Raspberry Pi: n avulla: 6 vaihetta

Video: Kuinka ohjata pistorasioita Raspberry Pi: n avulla: 6 vaihetta
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Heinäkuu
Anonim
Kuinka ohjata pistorasioita Raspberry Pi: n avulla
Kuinka ohjata pistorasioita Raspberry Pi: n avulla
Kuinka ohjata pistorasioita Raspberry Pi: n avulla
Kuinka ohjata pistorasioita Raspberry Pi: n avulla
Kuinka ohjata pistorasioita Raspberry Pi: n avulla
Kuinka ohjata pistorasioita Raspberry Pi: n avulla

Tässä Instructable -ohjelmassa esittelen sinulle, miten voit luoda verkkokäyttöliittymän kotisi pistorasioiden ohjaamiseen Raspberry Pi: n avulla. Päätin kirjoittaa tämän projektin, kun näin Anturit -kilpailun, ja koska tämä projekti sisältää anturin käyttämisen koodien lukemiseen ostamasi pistorasian mukana toimitetusta kaukosäätimestä, ajattelin, että tämä projekti sopisi täydellisesti.

Pyrin pitämään tämän mahdollisimman korkealla tasolla ja annan koodin, jotta tämä kaikki toimisi. Kaikille teille koodiapinoille, kaivaa koodia ympäri ja tarkista minut kommenteissa! Etsin aina parannusta. Tässä on melko vähän meneillään, joten jos sinulla on kysyttävää jostakin vaiheesta, jätä kommentti, jotta voin päivittää Instructable -tiedoston tarvittavilla tiedoilla.

Tässä projektissa käytetään 433 MHz: n radiotaajuusohjattuja pistorasioita yhdessä vadelmapi -laitteeseen yhdistetyn RF -lähettimen kanssa. Pistorasioissa on kaukosäätimet, jotka voivat kytkeä pistorasiat päälle/pois, mutta se ei ole hauskaa! Käytämme sen sijaan vadelmapi: llä toimivaa verkkopalvelinta, jonka avulla kaikki verkkoon kytketyt voivat kytkeä tietyt pistorasiat päälle tai pois päältä. Tämän projektin web-käyttöliittymä on ihanteellinen, koska mitä tahansa verkkoon yhdistettyä laitetta verkossa voidaan käyttää kaukosäätimenä.

Tämä on projekti, jonka olen haaveillut saavan päätökseen jo vuosia, ja vaikka vielä on tilaa lisäyksille, seuraavassa kuvattu projekti on toimiva järjestelmä.

Tarvikkeet

  • A Raspberry Pi (käytin RPi 3 -mallia B+)
  • 433 MHz: n lähetin ja vastaanotin (käytin tätä)
  • 433 MHz: n pistorasiat (käytin tätä)
  • Naispuoliset puserot (ostin tämän joukon)
  • Tietokone tai kämmenlaite, joka pystyy käyttämään Internetiä

Vaihe 1: Määritä Raspberry Pi

Asenna Raspberry Pi
Asenna Raspberry Pi

Aloita asentamalla uusin Raspbian -versio uuteen Raspberry Pi -laitteeseesi. Jos aiot käyttää olemassa olevaa Pi: tä (voit täysin tehdä sen), sinun tarvitsee vain varmistaa, että Python 3 on Pi -laitteessasi, koska kaikki tarjoamani lähdekoodi on kirjoitettu sisään., tyyppi

python3

komentoriville. Jos sinulla on Python 3, sinun pitäisi nähdä python -päätelaite auki. Poistu terminaalista sulkemalla tai kirjoittamalla

poistu ()

Kun olet vahvistanut tämän, sinun on asennettava pullo Pi -laitteeseesi. Pullon avulla voimme luoda verkkopalvelimemme. Kirjoita Pi -komentoriville

sudo pip3 asennuspullo

Jos Pi -laitteeseen ei ole asennettu pip, sinun on kirjoitettava

sudo apt-get install python3-pip

Mieluummin kehitän Raspberry Pi: tä pöytätietokoneeni mukavuudesta. Jos myös pidät tästä vaihtoehdosta, sinun on asennettava jonkinlainen ympäristö SSH: hon Pi: hen. PuTTY toimii, mutta mieluummin minulla on graafinen käyttöliittymä (GUI), mikä saa sinut näyttämään siltä, että olet suoraan Pi: llä. GUI -vaihtoehtoa varten haluat asentaa VNC Viewerin tietokoneeseen, jonka kanssa aiot työskennellä. On myös asetuksia, joita sinun on säädettävä Pi -laitteessasi. Ohjeet asetusten muuttamiseen löytyvät täältä.

Vaihe 2: Laitteen liittäminen

Laitteiston liittäminen
Laitteiston liittäminen

Tässä vaiheessa on aika tehdä kaikki fyysiset yhteydet, jotka sinun on tehtävä valmistautuessasi tämän projektin lähdekoodin määrittämiseen. Yhdistät lähettimen ja vastaanottimen nastat Pi -laitteesi GPIO -nastoihin. Haluat viitata uskonnollisesti GPIO -nastojen pinout -kaavioon. Avaa tämä Pi -laitteen päätelaite ja kirjoita

Sokka irti

Seuraavat liitännät tein. Sinulla saattaa olla erilainen kokoonpano, jos ostit eri lähettimen/vastaanottimen laitteiston kuin esittelyssä kerroin. Jos päätät valita eri pin -numerot kuin alla mainitsemani, älä pelkää! Kun lataat lähdekoodia, muokkaa RxTx.py -tiedoston PIN -numeroita tarpeen mukaan.

Vastaanotin (iso siru):

  • GND - mikä tahansa nimetty maadoitustappi
  • DATA - Nasta 11
  • DER - Ei kytketty
  • +5V - Mikä tahansa +5V -nasta
  • ------
  • +5V - Mikä tahansa +5V -nasta
  • GND - mikä tahansa nimetty maadoitustappi
  • GND - Ei kytketty
  • ANT - Ei kytketty

Huomautus: Voit liittää antennin tarpeen mukaan, mutta huomasin, että minun ei tarvinnut. Tämä pieni siru oli yllättävän herkkä ja tunnistaa uskollisesti signaalit vähintään 50 jalan etäisyydelle siitä, missä se istui, ja vähintään kahden seinän läpi.

Lähetin:

  • P - 3.3V -nasta
  • DA - nasta 7
  • G - Mikä tahansa nimetty maadoitustappi
  • AN - ei kytketty

Huomautus: Jälleen voit liittää antennin lähettimeen tarpeen mukaan, mutta huomasin, että minun ei tarvinnut. Etäisyys on enemmän kuin riittävä (50+jalkaa).

Vaihe 3: Koodin lisääminen

Tämä on osa, johon vietin suurimman osan ajastani tämän projektin kehittämisen aikana. Yritän kommentoida mahdollisimman paljon, mutta jätin todennäköisesti aukkoja, jotka saattavat vaatia selitystä, jos joku teistä käyttää aikaa yrittääkseen ymmärtää sen. Jos tämä tapahtuu sinulle, jätä kommentti!

Tässä mukana olevat kielet ovat:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Pythonia käytetään pullo -palvelimessa ja

RxTx.py

tiedosto, joka käsittelee koodin lähetyksen ja vastaanoton. CSS: ää käytetään verkkosivun tyylin luomiseen. Kuka haluaa tylsän verkkosivuston !? Javascriptiä käytetään missä tahansa tapahtumakäsittelyssä (painikkeen painaminen jne.). HTML on verkkosivun keskeinen rakennuspalikka. Lopuksi JQuery/Ajaxia käytetään kommunikoimaan verkkosivun ja Python -taustaohjelman välillä.

Jos kaikki nämä kielet kuulostavat pelottavilta, älä huoli! Tiesin vain, että Python osallistui tähän projektiin, joka sattui olemaan kieli, joka sisälsi vähiten koodausta, mene kuvaan … Riittää, kun sanot, että vie aikaa aikaa koodin selaamiseen, jos päätät tehdä niin. Jos et halua, sinun ei tarvitse!

Seuraava on hakemistorakenne, jonka valitsin käyttämään tällä verkkosivulla. Tähän vaiheeseen liitetty zip -kansio sisältää kaiken lähdekoodin seuraavassa rakenteessa.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> verkkosivu-staattinen ----- favicon.ico ----- style.css-- mallit ----- index.html ----- aikataulu.html-- app.py-- data.file

Voit laittaa Outlet Switch -kansion mihin tahansa Pi -laitteeseesi. Kun olet valmis käyttämään verkkopalvelinta, avaa päätelaite Pi -laitteellasi ja

CD

(vaihda hakemisto) verkkosivun hakemistoon. Kirjoita sitten

python3 app.py

terminaaliin. Jos virheitä ei ole, sinun on hyvä mennä!

P. S. Ole kärsivällinen, jos törmäät virheisiin. Yritin purkaa ne kaikki ennen lataamista.

Vaihe 4: Anna sille laukaus

Yritä!
Yritä!

Nyt kun käytät koodia, voit tuntea web -käyttöliittymän käden ulottuvilla. Järjestelmän ohjaus on hyvin yksinkertaista:

  • Web -käyttöliittymän avulla voit lisätä niin monta myyntipistettä kuin haluat.
  • Poisto on yhtä helppoa kuin napsauttamalla muokkaa, valitsemalla poistettavat myyntipisteet ja napsauttamalla Poista.

Yllä oleva YouTube -video osoittaa, miten voit todella lisätä uuden pistorasian luetteloosi. Yhteenvetona mitä se näyttää:

  • Kirjoita ensin myyntipisteen nimi Otsikko -kenttään
  • Napsauta tai kosketa Otsikko -kentän ulkopuolella, jotta ohjelma voi tarkistaa, ettei otsikkoa ole jo olemassa. Et voi nimetä samannimisiä nimikkeitä
  • Kun ON -koodi ja OFF -koodi -painikkeet on vahvistettu, ne ovat käytössä.
  • Pidä mukana toimitetun kaukosäätimen ON -painiketta painettuna ja napsauta nopeasti käyttöliittymän ON Code -painiketta. Pidä kaukosäätimen painiketta painettuna, kunnes binäärikoodisi täyttää viereisen kentän.
  • Toista edellinen vaihe OFF -koodille.
  • Napsauta OK ja olet nyt valmis vaihtamaan tämän pistorasian!

Kuten johdannossa mainittiin, projekti ei ole 100% valmis omaan käyttöön. Suurin komponentti, jota minulla ei ole vielä suoritettu ja toteutettu, on ajoitusominaisuus. Aion antaa käyttäjälle mahdollisuuden luoda aikataulu, joka sallii pistorasioiden kytkemisen päälle ja pois päältä määrättyinä aikoina automaattisesti.

Vaihe 5: Virheenkorjaus ja RxTx.py -tiedosto

Virheenkorjaus ja RxTx.py -tiedosto
Virheenkorjaus ja RxTx.py -tiedosto
Virheenkorjaus ja RxTx.py -tiedosto
Virheenkorjaus ja RxTx.py -tiedosto
Virheenkorjaus ja RxTx.py -tiedosto
Virheenkorjaus ja RxTx.py -tiedosto
Virheenkorjaus ja RxTx.py -tiedosto
Virheenkorjaus ja RxTx.py -tiedosto

Ainoa tunnettu järjestelmän rajoitus on se, että eri toimittajien myyntipisteiden välillä on yhteensopimattomuuden mahdollisuus. Päälle- ja pois -koodiviestit ovat 25 bittiä järjestelmälleni, ja jos järjestelmässä on erilainen viestin pituus, se ei ole heti yhteensopiva tämän projektin kanssa. Jos noudatit tarkasti ohjeita ja sinulla on edelleen ongelmia tämän toimimisessa, seuraava olisi paras tapa korjata ongelma.

  • Varmista, että sinulla on matplotlib asennettuna Pi -laitteeseesi. Voit tehdä tämän kirjoittamalla Piin päätelaitteeseen seuraavan:

    • python3

    • tuo matplotlib

    • Jos saat virheilmoituksen, sinun on asennettava matplotlib.
    • Sulje python -kuori käyttämällä

      poistu ()

  • Asenna matplotlib kirjoittamalla

    sudo pip3 asenna matplotlib

  • terminaaliin
  • Lataa liitteenä oleva test.py -tiedosto ja aseta se RxTx.py -tiedoston rinnalle Pi -laitteellesi
  • Avaa python -pääte ja muuta hakemisto comm -kansioon.
  • Tyyppi

    python3 test.py

  • Kun näytössä lukee "** Tallennus aloitettu **", paina ja pidä kaukosäätimen ON- tai OFF -painiketta painettuna, kunnes tallennus päättyy.
  • Ohjelma lataa matplotlib -luvun, joka näyttää samanlaiselta kuin yllä. Lähennä, kunnes näet toistuvan signaalin yllä olevien kuvien osoittamalla tavalla.
  • Laske looginen kokonaisluku 1 ja looginen 0 jokaiselle viestille, jossa viesti on yksi iterointi yllä näkyvästä toistuvasta signaalista. Jos kokonaismäärä on 25, RxTx.py -tiedosto ei todennäköisesti ole syyllinen. Jos kohtaat jotain muuta kuin 25, muista kommentoida alla, ja retooloin RxTx.py-tiedoston avoimemmaksi (tai kokeile rohkeasti sitä).

Mitä jos en näe toistuvaa signaalia?

Jos et näe toistuvaa signaalia, toinen kahdesta asiasta on väärä. Tarkista ensin, että kaikki hyppyjohdinliitännät on tehty oikein. Jos kaikki näyttää hyvältä, sinulla voi olla huono vastaanotin. Ostitko ehdottamani? Kun ostin ensimmäisen vastaanotinpiirin, se oli erittäin meluisa. Niin meluisa, etten saanut selkeää signaalia. Palautin sitten sirun ja otin linkittämäni, eikä se olisi voinut toimia paremmin.

Vaihe 6: Nauti

Tiedät, että sinulla on mahdollisuus kytkeä pistorasiat päälle/pois puhelimesta, tabletista, tietokoneesta tai muusta verkkokäyttöisestä laitteesta! Kerro mielipiteesi kommenteissa!

Suositeltava: