Tartalomjegyzék:

A kimenetek vezérlése Raspberry Pi használatával: 6 lépés
A kimenetek vezérlése Raspberry Pi használatával: 6 lépés

Videó: A kimenetek vezérlése Raspberry Pi használatával: 6 lépés

Videó: A kimenetek vezérlése Raspberry Pi használatával: 6 lépés
Videó: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Július
Anonim
Hogyan vezérelheti az aljzatokat a Raspberry Pi segítségével
Hogyan vezérelheti az aljzatokat a Raspberry Pi segítségével
Hogyan vezérelheti az aljzatokat a Raspberry Pi segítségével
Hogyan vezérelheti az aljzatokat a Raspberry Pi segítségével
Hogyan vezérelheti az aljzatokat a Raspberry Pi segítségével
Hogyan vezérelheti az aljzatokat a Raspberry Pi segítségével

Ebben az utasításban bemutatom, hogyan hozhat létre webes felületet az otthoni konnektorok vezérléséhez Raspberry Pi segítségével. Úgy döntöttem, hogy megírom ezt a projektet, amikor megláttam a Szenzorok versenyt, és mivel ez a projekt magában foglalja az érzékelő használatát a kódok leolvasásához a vásárolt konnektorokhoz mellékelt távirányítóról, úgy gondoltam, hogy ez a projekt tökéletesen megfelel.

Azon dolgozom, hogy ezt a lehető legmagasabb szinten tartsam, és megadom a kódot, hogy mindez működjön. Mindannyian kódmajmok számára, bátran ássatok bele a kódba, és figyeljetek rám a megjegyzésekben! Mindig javítani akarok. Elég sok minden folyik ebben, ezért ha kérdése van bármilyen lépéssel kapcsolatban, kérjük, hagyjon megjegyzést, hogy frissíthessem az Instructable -t a szükséges részletekkel.

Ez a projekt rádiófrekvenciás, 433 MHz -es kimeneteket használ a málna pi -hez csatlakoztatott RF -adókkal együtt. Az aljzatokhoz távirányítók tartoznak, amelyek ki- és bekapcsolhatják a konnektorokat, de ez nem szórakozás! Ehelyett a málna pi -n futó webszervert fogjuk használni, amely lehetővé teszi, hogy a hálózathoz csatlakozó személyek be- vagy kikapcsoljanak bizonyos konnektorokat. Ennek a projektnek a webes kezelőfelülete ideális, mivel a hálózat bármely, webhez csatlakoztatott eszköze távirányítóként használható.

Ez egy olyan projekt, amelyről évek óta álmodom, hogy befejezem, és bár még mindig van hely a kiegészítésekhez, az alábbiakban leírt projekt funkcionális rendszer.

Kellékek

  • A Raspberry Pi (RPi 3 B+modellt használtam)
  • 433 MHz -es adó és vevő (ezt használtam)
  • 433 MHz -es kimenetek (ezt használtam)
  • Női-női pulóverek (ezt a csokrot vettem)
  • Számítógép vagy kézi eszköz, amely képes az internet elérésére

Lépés: Állítsa be a Raspberry Pi -t

Állítsa be a Raspberry Pi -t
Állítsa be a Raspberry Pi -t

Kezdje a Raspbian legújabb verziójának telepítésével az új Raspberry Pi -re. Ha egy meglévő Pi használatát tervezi (amit teljes mértékben meg is tud tenni), akkor mindössze annyit kell tennie, hogy meggyőződik arról, hogy a Python 3 van a Pi -n, mivel az összes általam megadott forráskód be van írva., típus

python3

a parancssorba. Ha van Python 3, akkor látnia kell, hogy a python terminál nyitva van. Lépjen ki a terminálból, ha bezár, vagy gépel

kijárat()

Miután ezt megerősítette, telepítenie kell a lombikot a Pi -re. A lombik lehetővé teszi webszerverünk létrehozását. Írja be a Pi parancssorba

sudo pip3 telepítő lombik

Abban az esetben, ha nincs pip telepítve a Pi -re, gépelnie kell

sudo apt-get install python3-pip

Inkább asztali számítógépem kényelméből fejlesztem a Raspberry Pi -t. Ha Ön is ezt az opciót részesíti előnyben, telepítenie kell valamilyen környezetet az SSH -ba a Pi -be. A PuTTY működni fog, de én inkább a GUI -t (grafikus felhasználói felületet) használom, ami miatt úgy tűnik, hogy közvetlenül a Pi -n vagy. A GUI opciónál telepíteni kell a VNC Viewer programot arra a számítógépre, amelyen dolgozni szeretne. Vannak olyan beállítások is, amelyeket módosítania kell a Pi -n. A beállítások módosítására vonatkozó utasítások itt találhatók.

2. lépés: A hardver csatlakoztatása

A hardver csatlakoztatása
A hardver csatlakoztatása

Ezen a ponton itt az ideje, hogy hozzon létre minden fizikai kapcsolatot, amelyet meg kell tennie a projekt forráskódjának beállításához. Csatlakoztatni fogja az adó és a vevő csapjait a Pi GPIO csapjaihoz. Vallásilag hivatkozni kell a GPIO csapok pinout diagramjára. Ehhez nyissa meg a terminált a Pi -n, és írja be

kitűz

Az alábbiakban az általam létrehozott kapcsolatokat mutatom be. Előfordulhat, hogy eltérő konfigurációjú lesz, ha a távadó/vevő hardvert más, mint a bevezetőben feltüntetett hardvert vásárolta. Ha úgy dönt, hogy más PIN -számokat választ, mint az alábbiak, ne féljen! A forráskód letöltésekor egyszerűen módosítsa a PIN -kódokat, ha szükséges az RxTx.py fájlban.

Vevő (nagy chip):

  • GND - Bármely kijelölt földelőcsap
  • ADATOK - 11. tű
  • DER - Nincs csatlakoztatva
  • +5V - Bármely kijelölt +5V -os tű
  • ------
  • +5V - Bármely kijelölt +5V -os tű
  • GND - Bármely kijelölt földelőcsap
  • GND - Nincs csatlakoztatva
  • ANT - Nincs csatlakoztatva

Megjegyzés: Lehet, hogy szükség szerint csatlakoztatott egy antennát, de azt tapasztaltam, hogy nem kell. Ez a kis chip meglepően érzékeny volt, és hűen érzékeli a jeleket legalább 50 láb távolságra attól a helytől, ahol ült, és legalább két falon keresztül.

Adó:

  • P - A 3.3V -os tű
  • DA - 7. tű
  • G - Bármely kijelölt földelőcsap
  • AN - nincs csatlakoztatva

Megjegyzés: Ismét csatlakoztathat egy antennát az adóhoz, ha szükséges, de rájöttem, hogy nem kell. A hatótávolság több mint elegendő (50+láb).

3. lépés: A kód hozzáadása

Ez az a rész, amellyel a legtöbb időt töltöttem a projekt kidolgozása során. Igyekszem a lehető legtöbbet kommentálni, de valószínűleg hagytam olyan hiányosságokat, amelyek magyarázatot igényelhetnek, ha valamelyikük időt szán arra, hogy megértse. Ha ez történik veled, írj egy megjegyzést!

Az itt érintett nyelvek a következők:

  • Piton
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

A Python a lombik szerverben és a

RxTx.py

fájl, amely kezeli a kódtovábbítást és -fogadást. A CSS a weboldal stílusának létrehozására szolgál. Ki szeretne unalmas weboldalt !? A Javascript az eseménykezelés bármelyikében használható (gomb megnyomása stb.). A HTML a weboldal alapvető építőköve. Végül a JQuery/Ajax a weboldal és a Python háttérprogram közötti kommunikációra szolgál.

Ha ezek a nyelvek mindegyike félelmetesnek hangzik, ne aggódjon! Csak azt tudtam, hogy Python belemegy ebbe a projektbe, ami történetesen a legkevesebb kódolási nyelv volt, menj csak … Elég, ha mondod, szánj rá időt a kód átfésülésére, ha ezt választod. Ha nem akarod, nem kell!

A következő könyvtárszerkezetet választottam ezzel a weboldallal. Az ehhez a lépéshez csatolt tömörített mappa tartalmazza az összes forráskódot a következő struktúrában.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> weboldal-statikus ----- favicon.ico ----- style.css-- sablonok ----- index.html ----- menetrend.html-- app.py-- data.file

Az Outlet Switch mappát bárhol elhelyezheti a Pi -n. Ha készen áll a webszerver futtatására, nyissa meg a terminált a Pi -n, és

CD

(könyvtár módosítása) a weboldal könyvtárába. Ezután írja be

python3 app.py

a terminálba. Ha nem történt hiba, akkor érdemes elindulni!

P. S. Kérjük, legyen türelmes, ha bármilyen hibába ütközik. Feltöltés előtt megpróbáltam összezúzni mindegyiket.

4. lépés: Próbáld ki

Próbáld meg!
Próbáld meg!

Most, hogy futtatja a kódot, kéznél érezheti a webes felületet. A rendszer vezérlése nagyon egyszerű:

  • A webes felület segítségével annyi üzletet adhat hozzá, amennyit csak akar.
  • A törlés olyan egyszerű, mint a szerkesztés, a törölni kívánt üzletek kiválasztása és a törlés gombra kattintás.

A fenti YouTube -videó bemutatja, hogyan lehet valójában új üzletet hozzáadni a listához. Összefoglalva, mit mutat:

  • Először írja be az üzlet címét a Cím mezőbe
  • Kattintson vagy érintse meg a Cím mezőn kívül, hogy a program ellenőrizze, hogy a cím még nem létezik -e. Nem rendelkezhet azonos nevű címekkel
  • Az érvényesítés után az ON Code és OFF Code gombok engedélyezve vannak.
  • Nyomja meg és tartsa lenyomva a bekapcsológombot a mellékelt távirányítón, és gyorsan kattintson a kezelőfelületen lévő BE kód gombra. Tartsa lenyomva a gombot a távirányítón, amíg a bináris kódja be nem tölti a szomszédos mezőt.
  • Ismételje meg az előző lépést az OFF kódhoz.
  • Kattintson az OK gombra, és most készen áll a váltásra!

Amint azt a bevezetőben említettük, a projekt nem 100% -ban teljes saját célokra. A legnagyobb komponens, amit még be kell fejeznem és megvalósítanom, az az ütemezési képesség. Azt tervezem, hogy megengedem a felhasználónak, hogy összeállítson egy ütemtervet, amely lehetővé teszi az aljzatok automatikus be- és kikapcsolását a megadott időpontokban.

5. lépés: Hibakeresés és az RxTx.py fájl

Hibakeresés és az RxTx.py fájl
Hibakeresés és az RxTx.py fájl
Hibakeresés és az RxTx.py fájl
Hibakeresés és az RxTx.py fájl
Hibakeresés és az RxTx.py fájl
Hibakeresés és az RxTx.py fájl
Hibakeresés és az RxTx.py fájl
Hibakeresés és az RxTx.py fájl

A rendszer egyetlen ismert korlátja az, hogy a különböző gyártók üzletei között fennáll az inkompatibilitás esélye. A be- és kikapcsolási kódüzenetek 25 bitesek a rendszerem számára, és ha egy rendszer eltérő üzenethosszúságú, akkor nem kompatibilis ezzel a projekttel. Ha pontosan követte az utasításokat, és továbbra is problémái vannak a működés elérésével, akkor a következő módszer a legjobb megoldás a probléma elhárítására.

  • Győződjön meg arról, hogy a Matplotlib telepítve van a Pi -re. Ezt úgy teheti meg, hogy beírja a következőt a Pi termináljába:

    • python3

    • import matplotlib

    • Ha hibaüzenetet kap, telepítenie kell a matplotlib programot.
    • Lépjen ki a python shellből a gombbal

      kijárat()

  • A matplotlib telepítéséhez írja be

    sudo pip3 telepítse a matplotlib programot

  • a terminálba
  • Töltse le a csatolt test.py fájlt, és tegye az RxTx.py fájl mellé a Pi -re
  • Nyissa meg a python terminált, és változtassa meg a könyvtárat a comm mappába.
  • típus

    python3 test.py

  • Amikor a „** Rögzítés megkezdődött **” felirat jelenik meg, nyomja meg és tartsa lenyomva a távirányító BE vagy KI gombját, amíg a felvétel befejeződik.
  • A program betölt egy matplotlib ábrát, amely hasonlít a fentiekhez. Nagyítson, amíg meg nem látja az ismétlődő jelet, amint azt a fenti fényképek mutatják.
  • Számolja meg a teljes logikai 1 -et és a logikai 0 -t minden üzenetnél, ahol az üzenet a fent látható ismétlődő jel egy iterációja. Ha az összes 25, akkor az RxTx.py fájl valószínűleg nem hibás. Ha a 25-ösön kívül mással találkozik, feltétlenül tegye meg megjegyzéseit az alábbiakban, és az RxTx.py fájlt nyitottabbá alakítom (vagy bátran próbálkozzon vele).

Mi van, ha nem látok ismétlődő jelet?

Ha nem lát ismétlődő jelet, akkor két dolog közül az egyik rossz. Először ellenőrizze, hogy az összes jumper vezeték csatlakozás megfelelően van -e csatlakoztatva. Ha minden jól néz ki, akkor lehet, hogy rossz vevője van. Megvetted az általam javasoltat? Amikor megvettem az első vevő chipet, nagyon zajos volt. Annyira zajos, hogy nem kaptam egyértelmű jelet. Ezután visszaadtam azt a chipet, és felvettem azt, amit linkeltem, és nem is működhetett volna jobban.

6. lépés: Élvezze

Tudja, hogy képes be- és kikapcsolni az aljzatokat a telefonjáról, táblagépéről, számítógépről vagy más internetes eszközről! Mondja el véleményét kommentben!

Ajánlott: