INHOUDSOPGAWE:

Hoe om die afsetpunte te beheer met 'n framboos Pi: 6 stappe
Hoe om die afsetpunte te beheer met 'n framboos Pi: 6 stappe

Video: Hoe om die afsetpunte te beheer met 'n framboos Pi: 6 stappe

Video: Hoe om die afsetpunte te beheer met 'n framboos Pi: 6 stappe
Video: Электрика в квартире своими руками. Переделка хрущевки от А до Я #9 2024, Julie
Anonim
Hoe om die afsetpunte te beheer met 'n framboos Pi
Hoe om die afsetpunte te beheer met 'n framboos Pi
Hoe om die afsetpunte te beheer met 'n framboos Pi
Hoe om die afsetpunte te beheer met 'n framboos Pi
Hoe om die afsetpunte te beheer met 'n Framboos Pi
Hoe om die afsetpunte te beheer met 'n Framboos Pi

In hierdie instruksies sal ek u demonstreer hoe u 'n webkoppelvlak kan skep om afsetpunte in u huis te beheer met 'n Raspberry Pi. Ek het gekies om hierdie projek te skryf toe ek die Sensors -wedstryd sien, en aangesien hierdie projek die gebruik van 'n sensor behels om kodes af te lees van die afstandsbediening wat by die afsetpunte wat u koop, gelees het, het ek gedink dat hierdie projek die perfekte pas sou wees.

Ek sal werk om dit so hoog as moontlik te hou en kode te verskaf om dit alles te laat werk. As u almal ape daar buite het, kan u gerus in die kode gaan soek en my in die kommentaar ondersoek! Ek is altyd op soek na verbetering. Daar is nogal iets aan die gang, so as u vrae het oor enige stap, laat dan 'n opmerking, sodat ek die Instructable kan opdateer met die nodige besonderhede.

Hierdie projek gebruik afsetpunte met 'n radiofrekwensie -beheer by 433MHz, tesame met 'n RF -sender wat aan u framboospi gekoppel is. Die afsetpunte het afstandsbedienings wat afsetpunte aan/uit kan skakel, maar dit is nie lekker nie! Ons sal in plaas daarvan 'n webbediener gebruik wat op die framboospi werk, sodat almal wat aan die netwerk gekoppel is, sekere afsetpunte kan aan- of uitskakel. 'N Webfront aan hierdie projek is ideaal, aangesien enige met die internet gekoppelde toestel op u netwerk as u afstandbeheer gebruik kan word.

Dit is 'n projek wat ek al jare lank wil voltooi, en hoewel daar nog ruimte is vir aanvullings, is die projek soos volg beskryf 'n funksionele stelsel.

Voorrade

  • 'N Framboos Pi (ek het 'n RPi 3 Model B+gebruik)
  • 'N 433MHz sender en ontvanger (ek het hierdie een gebruik)
  • 433 MHz afsetpunte (ek het dit gebruik)
  • Springers van vrou tot vrou (ek het hierdie klomp gekoop)
  • 'N Rekenaar of 'n draagbare toestel wat toegang tot die internet kan verkry

Stap 1: Stel u Framboos Pi op

Stel u Framboos Pi op
Stel u Framboos Pi op

Begin deur die nuutste weergawe van Raspbian op u nuwe Raspberry Pi te installeer. As u van plan is om 'n bestaande Pi te gebruik (wat u heeltemal kan doen), is alles wat u hoef te doen om seker te maak dat u Python 3 op u Pi het, want dit is waarin al die bronkode wat ek verskaf, geskryf is., tik

luislang 3

in die opdragreël. As u Python 3 het, moet u die python -terminale sien oopmaak. Verlaat die terminaal deur te sluit of te tik

uitgang ()

Nadat u dit bevestig het, moet u die kolf op u Pi installeer. Met die fles kan ons ons webbediener skep. Tik vanaf die opdragreël Pi

sudo pip3 installeer fles

As u geen pip op u Pi geïnstalleer het nie, moet u tik

sudo apt-get install python3-pip

Ek verkies om op my Raspberry Pi te ontwikkel vanuit die gemak van my tafelrekenaar. As u ook hierdie opsie verkies, moet u 'n soort omgewing op SSH in die Pi installeer. PuTTY sal werk, maar ek verkies om 'n GUI (grafiese gebruikerskoppelvlak) te hê, wat dit laat lyk asof u direk op die Pi is. Vir die GUI -opsie wil u VNC Viewer installeer op die rekenaar waarmee u wil werk. Daar is ook instellings wat u op u Pi moet aanpas. Instruksies vir die wysiging van instellings kan hier gevind word.

Stap 2: Sluit u hardeware aan

Sluit jou hardeware aan
Sluit jou hardeware aan

Op hierdie punt is dit tyd om al die fisiese verbindings te maak wat u moet doen ter voorbereiding vir die opstel van die bronkode vir hierdie projek. U verbind die penne van die sender en die ontvanger met die GPIO -penne van u Pi. U sal die pinout -diagram van die GPIO -penne godsdienstig wil verwys. Om dit te doen, maak die terminale op u Pi oop en tik

pinout

Die volgende is die verbindings wat ek gemaak het. U kan 'n ander konfigurasie hê as u ander sender-/ontvangerhardeware koop as wat ek in die inleiding aangedui het. As u besluit om ander speldnommers te kies as die wat ek hieronder aandui, moet u nie vrees nie! As u die bronkode aflaai, verander die speldnommers soos benodig in die RxTx.py -lêer.

Ontvanger (groot chip):

  • GND - Enige aangewese grondpen
  • DATA - pen 11
  • DER - Nie gekoppel nie
  • +5V - Enige aangeduide +5V -pen
  • ------
  • +5V - Enige aangeduide +5V -pen
  • GND - Enige aangewese grondpen
  • GND - Nie gekoppel nie
  • ANT - Nie gekoppel nie

Opmerking: u kan 'n antenna aansluit soos nodig, maar ek het gevind dat ek dit nie nodig gehad het nie. Hierdie klein skyfie was verbasend sensitief en bespeur getrou seine tot minstens 50 voet van waar dit gesit het en deur ten minste twee mure.

Sender:

  • P - Die 3.3V -pen
  • DA - pen 7
  • G - Enige aangewese grondpen
  • AN - nie gekoppel nie

Opmerking: u kan weer 'n antenna aan die sender koppel soos nodig, maar ek het gevind dat dit nie nodig was nie. Die reikafstand is meer as voldoende (50+voet).

Stap 3: Voeg die kode by

Dit is die deel waaraan ek die meeste van my tyd bestee het toe ek hierdie projek ontwikkel het. Ek probeer om soveel moontlik kommentaar te lewer, maar ek het waarskynlik leemtes gelaat wat moontlik verduideliking vereis as iemand van u tyd spandeer om dit te verstaan. Gee 'n opmerking as dit met u gebeur!

Die tale wat hier betrokke is, is:

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

Die Python word gebruik in die kolfbediener en in die

RxTx.py

lêer, wat die oordrag en ontvangs van die kode hanteer. CSS word gebruik om die styl van die webblad te genereer. Wie wil 'n vervelige webwerf hê !? Javascript word gebruik in enige van die gebeurtenishantering (druk op 'n knoppie, ens.). HTML is die belangrikste bousteen van die webblad. Uiteindelik word JQuery/Ajax gebruik om te kommunikeer tussen die webblad en die Python -agterkant.

As al hierdie tale intimiderend klink, moenie bekommerd wees nie! Ek het net geweet dat Python hierdie projek aangaan, wat toevallig die taal was wat die minste kodering behels, maar dit is genoeg om te sê, neem die tyd om die kode deur te kry as dit is wat u kies om te doen. As jy nie wil nie, hoef jy nie!

Die volgende is die gidsstruktuur wat ek gekies het om met hierdie webblad te gebruik. Die ritsmap wat by hierdie stap aangeheg is, bevat al die bronkode in die volgende struktuur.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> webblad-- staties ----- favicon.ico ----- style.css-- templates ----- index.html ----- skedule.html-- app.py-- data.file

U kan die gids Outlet Switch oral op u Pi plaas. As u gereed is om u webbediener uit te voer, maak u die terminale op u Pi oop en

cd

(verander gids) na die webbladlys. Tik dan

python3 app.py

na die terminale. As daar geen foute was nie, moet u klaar wees!

P. S. Wees geduldig as u foute ondervind. Ek het probeer om hulle almal te stamp voordat ek dit oplaai.

Stap 4: gee 'n kans

Gee dit 'n kans!
Gee dit 'n kans!

Noudat u die kode gebruik, kan u 'n gevoel van die webkoppelvlak binne u vingers kry. Die stelsel se beheer is baie eenvoudig:

  • U kan soveel afsetpunte byvoeg as wat u wil met die webkoppelvlak.
  • Om uit te vee, is so eenvoudig soos om op wysig te klik, die afsetpunte te kies wat u wil verwyder en op verwyder te klik.

Bogenoemde YouTube -video demonstreer hoe u eintlik 'n nuwe afsetpunt by u lys kan voeg. Om op te som wat dit toon:

  • Voer eers die titel van uitlaat in die veld Titel in
  • Klik of raak buite die veld Titel sodat die program kan kontroleer dat die titel nie reeds bestaan nie. U kan nie titels met dieselfde naam hê nie
  • Sodra dit bekragtig is, word die knoppies AAN en UIT -kode aangeskakel.
  • Hou die AAN -knoppie op u afstandbeheer ingedruk en klik vinnig op die AAN -kode -knoppie op die koppelvlak. Hou die knoppie op die afstandsbediening ingedruk totdat u binêre kode die aangrensende veld vul.
  • Herhaal die vorige stap vir die OFF -kode.
  • Klik op OK, en nou is u gereed om hierdie skakelaar oor te skakel!

Soos in die inleiding genoem, is die projek nie 100% voltooi vir my eie gebruik nie. Die grootste komponent wat ek nog moet voltooi en implementeer, is die skeduleringsvermoë. Ek is van plan om die gebruiker toe te laat om 'n skedule op te stel waarmee outomaties afsetpunte op aangewese tye in- en uitgeskakel kan word.

Stap 5: Ontfouting en die RxTx.py -lêer

Ontfouting en die RxTx.py -lêer
Ontfouting en die RxTx.py -lêer
Ontfouting en die RxTx.py -lêer
Ontfouting en die RxTx.py -lêer
Ontfouting en die RxTx.py -lêer
Ontfouting en die RxTx.py -lêer
Ontfouting en die RxTx.py -lêer
Ontfouting en die RxTx.py -lêer

Die enigste bekende beperking van die stelsel is dat daar 'n kans is op onversoenbaarheid tussen verskillende verkopers se winkels. Die aan en af kode boodskappe is 25 bisse vir my stelsel, en as 'n stelsel 'n ander boodskaplengte het, is dit nie onmiddellik versoenbaar met hierdie projek nie. As u die instruksies presies gevolg het en u steeds probleme ondervind om dit te laat werk, is die volgende die beste manier om die probleem te ontfout.

  • Maak seker dat u matplotlib op u Pi geïnstalleer het. U kan dit doen deur die volgende in die Pi se terminale in te tik:

    • luislang 3

    • invoer matplotlib

    • As u 'n fout ontvang, moet u matplotlib installeer.
    • Verlaat die luislang met

      uitgang ()

  • Om matplotlib te installeer, tik

    sudo pip3 installeer matplotlib

  • na die terminale
  • Laai die aangehegte test.py -lêer af en plaas dit langs die RxTx.py -lêer op u Pi
  • Maak die python -terminale oop en verander die gids in die comm -gids.
  • Tik

    python3 test.py

  • As dit '** begin met opname' sê ', hou u u aan- of afknoppie op u afstandsbediening ingedruk totdat die opname eindig.
  • Die program laai 'n matplotlib -syfer wat soortgelyk is aan die bostaande. Zoom in totdat u die herhalende sein sien, soos op die foto's hierbo getoon.
  • Tel die totale logiese 1 en logiese 0 vir elke boodskap, waar 'n boodskap 'n herhaling is van die herhalende sein hierbo. As die totaal 25 is, is die RxTx.py -lêer waarskynlik nie die skuld nie. As u iets anders as 25 teëkom, moet u hieronder kommentaar lewer, en ek sal die RxTx.py-lêer herontwerp om meer oop te wees (of probeer dit gerus).

Wat as ek nie 'n herhalende sein sien nie?

As u nie 'n herhalende sein sien nie, is een van twee dinge verkeerd. Kontroleer eers of al u verbindingsdraadverbindings behoorlik gemaak is. As alles goed lyk, het u moontlik 'n slegte ontvanger. Het jy die een wat ek voorgestel het gekoop? Toe ek my eerste ontvanger -chip koop, was dit baie raserig. So raserig dat ek nie 'n duidelike sein kon kry nie. Ek het toe die chip teruggegee en die een wat ek gekoppel het, opgetel, en dit kon nie beter gewerk het nie.

Stap 6: Geniet dit

U weet dat u die afsetpunte vanaf u telefoon, tablet, rekenaar of 'n ander web-toestel kan aan-/afskakel! Laat weet my wat u dink in die kommentaar!

Aanbeveel: