Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Määritä Raspberry Pi
- Vaihe 2: Laitteen liittäminen
- Vaihe 3: Koodin lisääminen
- Vaihe 4: Anna sille laukaus
- Vaihe 5: Virheenkorjaus ja RxTx.py -tiedosto
- Vaihe 6: Nauti
Video: Kuinka ohjata pistorasioita Raspberry Pi: n avulla: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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
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
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
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
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:
DIY -- Kuinka tehdä hämähäkkirobotti, jota voidaan ohjata älypuhelimella Arduino Unon avulla: 6 vaihetta
DIY || Kuinka tehdä hämähäkkirobotti, jota voidaan hallita älypuhelimella Arduino Unon avulla: Hämähäkkirobotin valmistuksen aikana voi oppia niin paljon robotiikasta. Tässä videossa näytämme sinulle kuinka tehdä hämähäkin robotti, jota voimme käyttää älypuhelimellamme (Androi
Kuinka rakentaa 8x8x8 LED -kuutio ja ohjata sitä Arduinolla: 7 vaihetta (kuvilla)
Kuinka rakentaa 8x8x8 LED -kuutio ja hallita sitä Arduinolla: tammikuu 2020 edit: Jätän tämän pois, jos joku haluaa käyttää sitä ideoiden luomiseen, mutta ei ole enää mitään järkeä rakentaa kuutiota näiden ohjeiden perusteella. LED -ohjainpiirejä ei enää valmisteta, ja molemmat luonnokset on kirjoitettu vanhassa versiossa
Kuinka ohjata osoitettavia LED -valoja Fadecandyn ja prosessoinnin avulla: 15 vaihetta (kuvilla)
Kuinka ohjata osoitettavia LED-valoja Fadecandyn ja prosessoinnin avulla: Mitä tämä on vaiheittainen opetusohjelma Fadecandyn ja prosessoinnin käyttämisestä osoitettavien LED-valojen ohjaamiseen. (Voit yhdistää useita Fadecandys -laitteita yhteen tietokoneeseen lisätäksesi
Kuinka ohjata robottivartta 6 -kanavaisella servosoitimella ilman koodausta: 5 vaihetta
Kuinka ohjata robottivartta 6 -kanavaisella servo -soittimella ilman koodausta: Tämä opetusohjelma osoittaa, kuinka ohjata robottivartta 6 -kanavaisella servo -soittimella ilman koodausta
Kuinka ohjata paljon LED -valoja muutamasta mikro -ohjaimen nastasta: 6 vaihetta (kuvilla)
Kuinka ohjata paljon LED-valoja muutamasta mikro-ohjaimen nastasta: Käyttämällä sitä tosiasiaa, että monilla mikro-ohjaimen nastoilla on kolme tilaa (+V, GND tai "korkea impedanssi"), voit ohjata N*(N-1) LEDiä N-nastasta . Joten pieni 8 -nastainen mikro -ohjain, kuten PIC12Fxxx tai ATtiny11, voi ajaa 20 LED -valoa viidellä saatavilla olevalla