Taula de continguts:

Com controlar els punts de venda mitjançant un Raspberry Pi: 6 passos
Com controlar els punts de venda mitjançant un Raspberry Pi: 6 passos

Vídeo: Com controlar els punts de venda mitjançant un Raspberry Pi: 6 passos

Vídeo: Com controlar els punts de venda mitjançant un Raspberry Pi: 6 passos
Vídeo: 10 привычек, чтобы стать счастливым 2024, Juliol
Anonim
Com controlar els punts de venda mitjançant un Raspberry Pi
Com controlar els punts de venda mitjançant un Raspberry Pi
Com controlar els punts de venda mitjançant un Raspberry Pi
Com controlar els punts de venda mitjançant un Raspberry Pi
Com controlar els punts de venda mitjançant un Raspberry Pi
Com controlar els punts de venda mitjançant un Raspberry Pi

En aquest instructiu, us mostraré com crear una interfície web per controlar els punts de venda de casa usant un Raspberry Pi. Vaig triar escriure aquest projecte quan vaig veure el concurs Sensors i, com que aquest projecte implica utilitzar un sensor per llegir codis del comandament a distància subministrat amb els punts de venda que heu comprat, vaig pensar que aquest projecte seria l’ajust perfecte.

Treballaré per mantenir aquest nivell tan alt com sigui possible i proporcionaré codi per fer que tot funcioni. Per a tots els micos de codi que hi ha, no dubteu a aprofundir en el codi i escriviu-me als comentaris. Sempre busco millorar. Hi ha força coses que passen, de manera que si teniu cap pregunta sobre algun pas, deixeu un comentari per poder actualitzar l’instructible amb els detalls necessaris.

Aquest projecte utilitza sortides controlades per radiofreqüència a 433 MHz juntament amb un transmissor de RF connectat al vostre raspberry pi. Els punts de venda inclouen comandaments a distància que poden activar / desactivar els punts de venda, però no és divertit. En lloc d’això, utilitzarem un servidor web que s’executa al raspberry pi que permet a qualsevol persona connectada a la xarxa activar o desactivar determinats punts de venda. Un front-end web per a aquest projecte és ideal, ja que qualsevol dispositiu connectat a la xarxa de la xarxa es pot utilitzar com a comandament a distància.

Aquest és un projecte que he somiat completar durant anys i, tot i que encara hi ha marge per afegir, el projecte que es descriu a continuació és un sistema funcional.

Subministraments

  • Un Raspberry Pi (he utilitzat un RPi 3 Model B +)
  • Un transmissor i un receptor de 433 MHz (he utilitzat aquest)
  • Preses de 433 MHz (ho he fet servir)
  • Jumpers de dona a dona (he comprat aquest grup)
  • Un ordinador o dispositiu de mà capaç d’accedir a Internet

Pas 1: configureu el vostre Raspberry Pi

Configureu el vostre Raspberry Pi
Configureu el vostre Raspberry Pi

Comenceu instal·lant la versió més recent de Raspbian al vostre nou Raspberry Pi. Si teniu previst utilitzar un Pi existent (cosa que podeu fer totalment), només cal que us assegureu que teniu Python 3 al vostre Pi, ja que és en això que està escrit tot el codi font que proporciono., escriviu

python3

a la línia d'ordres. Si teniu Python 3, hauríeu de veure obert el terminal python. Sortiu del terminal tancant o escrivint

sortir ()

Un cop ho hàgiu confirmat, heu d’instal·lar matràs al vostre Pi. Flask ens permet crear el nostre servidor web. A la línia d’ordres Pi, escriviu

sudo pip3 instal·lar el matràs

En el cas que no tingueu pip instal·lat al vostre Pi, haureu d’escriure

sudo apt-get install python3-pip

Prefereixo desenvolupar-me al meu Raspberry Pi des de la comoditat de l’ordinador de sobretaula. Si també preferiu aquesta opció, heu d’instal·lar algun tipus d’entorn a SSH al Pi. PuTTY funcionarà, però prefereixo tenir una GUI (interfície gràfica d'usuari), que fa que sembli que estigueu directament al Pi. Per a l'opció GUI, voldreu instal·lar VNC Viewer a l'ordinador en el qual voleu treballar. També hi ha configuracions que haureu d’ajustar al vostre Pi. Les instruccions per modificar la configuració es poden trobar aquí.

Pas 2: connectar el maquinari

Connectant el maquinari
Connectant el maquinari

En aquest moment, és hora de fer totes les connexions físiques que haureu de fer per preparar el codi font d’aquest projecte. Connectareu els pins del transmissor i el receptor als pins GPIO del vostre Pi. Voldreu fer referència religiosament al diagrama de pinout dels pins GPIO. Per fer-ho, obriu el terminal del vostre Pi i escriviu

pinout

A continuació es detallen les connexions que he fet. És possible que tingueu una configuració diferent si heu comprat un maquinari de transmissor / receptor diferent del que he indicat a la introducció. Si decidiu triar números de pins diferents dels que us indiquem a continuació, no tingueu por! Quan descarregueu el codi font, només cal que modifiqueu els números de PIN segons sigui necessari al fitxer RxTx.py.

Receptor (xip gran):

  • GND: qualsevol pin de terra designat
  • DADES - Pin 11
  • DER: no està connectat
  • + 5V: qualsevol pin designat de + 5V
  • ------
  • + 5V: qualsevol pin designat de + 5V
  • GND: qualsevol pin de terra designat
  • GND: no està connectat
  • ANT - No està connectat

Nota: Podeu connectar una antena segons calgui, però he trobat que no calia. Aquest petit xip era sorprenentment sensible i detecta fidelment els senyals a almenys 50 peus des d'on estava assegut i a través d'almenys dues parets.

Emissor:

  • P - El pin de 3,3 V.
  • DA - Pin 7
  • G - Qualsevol passador de terra designat
  • AN: no està connectat

Nota: Una vegada més, podeu connectar una antena al transmissor segons sigui necessari, però he trobat que no ho necessitava. L'interval és més que suficient (50 + peus).

Pas 3: afegiu el codi

Aquesta és la part amb la qual vaig passar la major part del temps quan desenvolupava aquest projecte. Intento comentar tant com sigui possible, però probablement deixi buits que poden requerir explicació si algú de vosaltres passa temps intentant entendre-ho. Si això us passa, deixeu un comentari.

Els idiomes que hi intervenen són:

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

El Python s'utilitza al servidor de flask i al fitxer

RxTx.py

que gestiona la transmissió i recepció del codi. CSS s’utilitza per generar l’estil de la pàgina web. Qui vol un lloc web avorrit !? Javascript s’utilitza en qualsevol de les manipulacions d’esdeveniments (prement un botó, etc.). HTML és el bloc bàsic de la pàgina web. Finalment, JQuery / Ajax s’utilitza per comunicar-se entre la pàgina web i el backend de Python.

Si tots aquests idiomes semblen intimidatoris, no us preocupeu. Només sabia que Python entraria en aquest projecte, que va ser el llenguatge que implicava menys quantitat de codificació, vaja figura … Només cal dir-ho, preneu-vos el temps pentinant el codi si és el que decidiu fer. Si no ho voleu, no cal.

La següent és l’estructura de directoris que he escollit per utilitzar amb aquesta pàgina web. La carpeta comprimida adjunta a aquest pas conté tot el codi font de l'estructura següent.

Commutador de sortida-> comm-- DataRW.py-- keys.py-- RxTx.py-> pàgina web-- estàtic ----- favicon.ico ----- style.css-- plantilles ----- index.html ----- schedul.html-- app.py-- data.file

Podeu col·locar la carpeta Outlet Switch a qualsevol lloc del vostre Pi. Quan estigueu a punt per executar el vostre servidor web, obriu el terminal al vostre Pi i

cd

(canvieu el directori) al directori de la pàgina web. A continuació, escriviu

python3 app.py

al terminal. Si no hi ha hagut cap error, hauríeu d'anar-hi bé.

P. S. Tingueu paciència si teniu algun error. Vaig intentar aixafar-los tots abans de penjar-los.

Pas 4: doneu-li un tret

Dóna-li un tret!
Dóna-li un tret!

Ara que executeu el codi, podreu conèixer la interfície web al vostre abast. El control del sistema és molt senzill:

  • Podeu afegir tants punts de venda com vulgueu mitjançant la interfície web.
  • La supressió és tan senzilla com fer clic a Edita, seleccionar els punts de venda que vulgueu suprimir i fer clic a Suprimeix.

El vídeo de YouTube anterior mostra com podeu afegir un nou outlet a la vostra llista. Per resumir el que mostra:

  • Primer introduïu el títol de sortida al camp Títol
  • Feu clic o toqueu fora del camp Títol per permetre que el programa comprovi que el títol encara no existeix. No podeu tenir títols amb el mateix nom
  • Un cop validats, els botons ON Code i OFF Code estan activats.
  • Mantingueu premut el botó ACTIVAT del comandament remot proporcionat i feu clic ràpidament al botó Codi ON de la interfície. Manteniu premut el botó del comandament fins que el vostre codi binari ompli el camp adjacent.
  • Repetiu el pas anterior per al codi OFF.
  • Feu clic a D'acord i ja esteu a punt per canviar aquesta presa.

Com es va esmentar a la introducció, el projecte no està complet al 100% per als meus propis usos. El component més gran que he de completar i implementar és la capacitat de planificació. Tinc previst permetre a l’usuari construir un horari que permeti que els punts de venda s’encenguin i s’apaguin automàticament a les hores assenyalades.

Pas 5: depuració i fitxer RxTx.py

Depuració i fitxer RxTx.py
Depuració i fitxer RxTx.py
Depuració i fitxer RxTx.py
Depuració i fitxer RxTx.py
Depuració i fitxer RxTx.py
Depuració i fitxer RxTx.py
Depuració i fitxer RxTx.py
Depuració i fitxer RxTx.py

L'única limitació coneguda del sistema és que hi ha possibilitats d'incompatibilitat entre els diferents punts de venda. Els missatges de codi activats i desactivats són de 25 bits per al meu sistema i, si un sistema té una longitud de missatge diferent, no és compatible immediatament amb aquest projecte. Si heu seguit exactament les instruccions i encara teniu problemes perquè això funcioni, el següent seria la millor manera de depurar el problema.

  • Assegureu-vos que teniu matplotlib instal·lat al vostre Pi. Podeu fer-ho escrivint el següent al terminal del Pi:

    • python3

    • importar matplotlib

    • Si rebeu un error, heu d’instal·lar matplotlib.
    • Sortiu de l'intèrpret d'ordres de Python amb

      sortir ()

  • Per instal·lar matplotlib, escriviu

    sudo pip3 instal·la matplotlib

  • al terminal
  • Baixeu-vos el fitxer test.py adjunt i col·loqueu-lo al costat del fitxer RxTx.py al vostre Pi
  • Obriu el terminal Python i canvieu el directori a la carpeta comm.
  • Tipus

    python3 test.py

  • Quan es digui "** Inicia la gravació **", mantén premut el botó ON o OFF del comandament fins que finalitzi la gravació.
  • El programa carregarà una xifra de matplotlib que té un aspecte similar a l’anterior. Amplieu fins que vegeu el senyal repetitiu tal com es mostra a les fotos anteriors.
  • Compteu el total lògic 1 i el lògic 0 per a cada missatge, on un missatge és una iteració del senyal repetitiu que es veu més amunt. Si el total és de 25, és probable que el fitxer RxTx.py no tingui cap culpa. Si trobeu alguna cosa que no sigui 25, assegureu-vos de comentar a continuació i tornaré a configurar el fitxer RxTx.py perquè sigui més obert (o no dubteu a provar-ho).

Què passa si no veig cap senyal repetitiu?

Si no veieu cap senyal repetitiu, una de les dues coses està malament. En primer lloc, comproveu que totes les connexions del cable de pont estan ben fetes. Si tot sembla bo, és possible que tingueu un mal receptor. Has comprat el que et vaig suggerir? Quan vaig comprar el meu primer xip receptor, era molt sorollós. Tan sorollós que no podia obtenir un senyal clar. Aleshores vaig tornar aquell xip i vaig agafar el que vaig enllaçar i no podria haver funcionat millor.

Pas 6: gaudiu

Ja sabeu que teniu la possibilitat d’encendre / apagar preses de corrent des del telèfon, la tauleta, l’ordinador o qualsevol altre dispositiu compatible amb la web. Feu-me saber què en penseu als comentaris.

Recomanat: