Tartalomjegyzék:

Érintésmentes szökőkút: 9 lépés (képekkel)
Érintésmentes szökőkút: 9 lépés (képekkel)

Videó: Érintésmentes szökőkút: 9 lépés (képekkel)

Videó: Érintésmentes szökőkút: 9 lépés (képekkel)
Videó: What to Know Know Before You Go: London 2024, Július
Anonim
Érintésmentes szökőkút
Érintésmentes szökőkút

Az első évem végén, amikor MCT -hallgató voltam, azt a feladatot kaptam, hogy készítsek egy projektet, amely tartalmazza az összes olyan képességet, amelyet az év során tanfolyamokon szereztem.

Olyan projektet kerestem, amely ellenőrizné a tanáraim által támasztott összes követelményt, és ugyanakkor szórakoztató lenne számomra. Amikor témát kerestem, nem tudtam nem érezni a Covid-19 inspirációját (ez még azelőtt volt, hogy világszerte kitört volna.) Úgy döntöttem, hogy kevesebb érintkezésű szökőkutat/adagolót használok, mivel vizet inni anélkül, hogy megérintene néhány gombot, mielőtt a víz kijön.

Ez a projekt távolságérzékelővel érzékeli, hogy egy csésze vagy pohár került -e a vízkimenet alá, majd a szökőkút 60 másodpercig (100 ml / perc) folytatja a vízkimenetet. Ez következetesebbé teszi a dolgot, mert az üveg elhúzásának észlelése túl nehéznek/lassúnak bizonyult egy feladatnál, ezért került be az időzítő. Miután az üveget megtöltötte 100 ml vízzel, várhat 5 másodpercet, és ha az üveg még mindig a távolságérzékelő előtt van, akkor egy másik időt tölt be (ez azt jelenti, hogy két különböző töltés között 5 másodperc időtúllépés is van) tételek).

Kellékek

Alkatrészek

- 1x RaspberryPi (én a 4. verziót használtam, de a régebbi verziók is működhetnek)- 1x S8050 tranzisztor vagy 1x PN2222 tranzisztor is működhet- 1x fotorezisztor- 1x HC-SR04 (ultrahangos távolságérzékelő)- 1x RFID-RC522- 3x különböző színek LED-ek (kék, sárga, piros)- 1x LCD1602- 1x aktív zümmögő- 1x PCF8574- 1x MCP3008- 1x vízpumpa (12V-os perisztaltikus szivattyút használtak, link erre a tételre)

- 1x egyenáramú tápegység (12v, 600mAh)- 1x tápegység 3 ponttal- 3x kenyérlap (valószínűleg kevesebbet használhat)- T-cobbler a RaspberryPi GPIO csapokhoz- T-cobbler kábel (pi és cobbler közötti csatlakozáshoz)

A felhasznált anyagok és eszközök

- Fúró a következő fúrószárakkal:

- 4 mm (lyukak előfúrásához a csavarokhoz) - 15 mm (lyukak fúrásához a távolságérzékelőhöz)

- Bármilyen csavarhúzó- 30 csavar 45 mm hosszú- 6 csavar 20 mm- 2 csuklópánt az ajtóhoz- Egy MDF lemez, körülbelül 130 cm- 80 cm- Pár fájl

1. lépés: Az áramkör összeszerelése

Az áramkör összeszerelése
Az áramkör összeszerelése
Az áramkör összeszerelése
Az áramkör összeszerelése
Az áramkör összeszerelése
Az áramkör összeszerelése

Az áramkörhöz 2 érzékelőnk van, egy távolságérzékelő és egy fotorezisztor. A távolságérzékelőt annak érzékelésére használják, hogy egy csésze került -e a szökőkút hatótávolságába, és opcionálisan hozzáadtam egy fényellenállást, ezt használják annak érzékelésére, hogy a házat kinyitotta -e valaki, akinek nem szabad kinyitnia. Ezen kívül van egy RFID -olvasónk, amellyel hitelesíthetjük a szerelőt, akinek ki kell nyitnia a burkolatot a víztartály feltöltéséhez, vagy más mechanikai probléma miatt.

Az aktív elemeknél van LCD1602, aktív zümmögő és perisztaltikus szivattyú, az LCD -n megjelenítheti az állapotot, például, ha a tok nyitva van, vagy a szivattyú működik, valamint megjelenik az eszköz IP -címe, a hangjelző riasztó hangot adnak ki, amikor az ügyet úgy nyitották meg, hogy azt senki nem engedélyezte.

Hozzáadtam az alábbi áramkör kenyeretáblát és sematikus nézeteit.

2. lépés: A RaspberryPi beállítása

A RaspberryPi beállításához le kell töltenünk a képalkotó szoftvert a Raspberry webhelyéről, ezzel letöltheti a kívánt Raspbian verziót, és leképezheti az SDCARD kártyát. Az eszköz elvégzése után megnyithatja az SDCARD kártyát a Windows Intézőben, és látni fogja a RaspberryPi rendszerindító partícióját. Itt találunk egy cmdline.txt nevű fájlt (ne nyissa meg ezt a fájlt Jegyzettömbben, nyissa meg Notepad ++ vagy más IDE -ben). A fájl végéhez hozzáadjuk az ip = 169.254.10.1 fájlt, hogy meggyőződhessünk arról, hogy Ethernet -kapcsolaton keresztül tudunk csatlakozni eszközünkhöz (ügyeljen arra, hogy ne adjon meg ENTER -t a fájl végéhez, különben baj lesz).

Most behelyezheti SDCARD -ját a RaspberryPi -be, és újraindíthatja, csatlakoztathatja a Pi -t a számítógépéhez, és a Putty segítségével csatlakozhat a Pi -hez SSH -n keresztül. A Putty használata helyett a következő paranccsal csatlakozom a Pi -hez. "ssh [email protected]" ez időtúllépést okozhat, ezért legyen türelmes, és várja meg, amíg a Pi elindul. Amint jelszót kér, kitöltjük a "málna" alapértelmezett jelszavát. Ne felejtse el megváltoztatni ezt a jelszót bejelentkezés után, hogy megakadályozza, hogy rossz szándékú személyek hozzáférjenek a Raspberry Pi -hez.

Most konfiguráljuk a Pi-t, hogy biztosítsa a kódunkhoz szükséges funkciókat. A "sudo raspi-config" használatával nyissa meg a konfigurációs menüt, és itt lépünk az Interfészbeállítások elemre.

Itt a következő opciókat kapcsoljuk BE:- SPI-I2C

Kövesse ezt az útmutatót a vezeték nélküli internetkapcsolat beállításához a Pi készüléken, miután ezt sikeresen elvégezte, megkezdhetjük a szükséges csomagok telepítését.

Csomagok: (futtassa a parancsokat az itt megadott sorrendben)

Az alábbiak szerint szerezheti be a Pi- sudo apt update && apt upgrade -y legújabb frissítéseit

Telepítse MySQL szerverünket és webszerverünket- sudo apt install mariadb-server apache2

A MySQL Workbench segítségével fogom használni az adatbázist az útmutató későbbi részében, ha nem ezt használja, és inkább a phpmyadmin szolgáltatást szeretné telepíteni a következő paranccsal, akkor szabadon használhat bármely más MySQL klienst is, amíg képes megfelelően importálni az adatbázist.- sudo apt install phpmyadmin

A fentiek elvégzése után létre kell hoznunk egy felhasználót adatbázisunkhoz. A "sudo mysql -u root" használatával jelentkezzen be MySQL szerverére, itt létrehozunk egy db_admin nevű felhasználót a megfelelő jelszóval. ezt a jelszót valahol megjegyezte az utasítások későbbi szakaszában. GRANT MINDEN PRIVILEGES ON * *

A "\ q" paranccsal lépjen ki a MySQL terminálról.

Python csomagok: Továbbra is telepítenünk kell néhány python csomagot, mielőtt folytatnánk, futtassa az alábbi parancsot, hogy megbizonyosodjon arról, hogy minden rendelkezésre áll a hibátlan élmény érdekében.

sudo pip3 install Flask Flask-Cors Flask-SocketIO gevent gevent-websocket greenlet spi SPI-Pyspidev

Valamint a következő MySQL connect python csomagokudo apt telepíteni python3 -mysql.connector -y

Ha minden rendben ment, akkor látogassa meg Pi -jét webböngészőjében a következő címmel:

3. lépés: A háttérrendszer beállítása

A háttérrendszer beállítása
A háttérrendszer beállítása

Itt elmagyarázom, hogyan állíthatja be saját maga a háttérrendszert, először töltse le alulról a rar fájlt, majd bontsa ki egy ideiglenes könyvtárba. Csatlakozzon RaspberryPi készülékéhez a FileZilla vagy a WinSCP segítségével a következő hitelesítő adatokkal:

IP: 169.254.10.1 Felhasználó: piPassword: málna (ha megváltoztatta a jelszót, itt is megteheti)

Ezután folytathatja a kicsomagolt fájlok átvitelét a pi felhasználó saját könyvtárában található kívánt könyvtárba. Az egyszerűség kedvéért ebben a beállításban feltételezzük, hogy minden fájlunkat feltöltöttük a dokumentumkönyvtárba.

Tartsa nyitva FTP programját a következő lépéshez!

Most nyissa meg újra a parancssort az SSH -kapcsolattal, mert módosítanunk kell a webszervert, hogy a kezelőfelület kommunikálni tudjon a háttérrel. Megnyitjuk az alapértelmezett Apache2 konfigurációs fájlt, és kissé módosítjuk: sudo nano /etc/apache2/sites-available/000-default.conf

Adja hozzá a következő sorokat a DocumentRoot alá a most megnyitott konfigurációs fájlban: ProxyPass/api/https://127.0.0.1:5000/api/ProxyPassReverse/api/https://127.0.0.1:5000/api/

Példaként megnézheti a mellékelt képet.

4. lépés: A kezelőfelület beállítása

Mielőtt továbbítanánk a fájljainkat, tennünk kell valamit, mielőtt elkezdhetjük a frontend fájljaink átvitelét. Nyissa meg a parancssort az előzőleg létrehozott SSH kapcsolattal, és használja az alábbi parancsot a RaspberryPi root felhasználójához való váltáshoz: "sudo su -"

Ezt követően a következő paranccsal módosíthatjuk root felhasználónk jelszavát: "passwd" Ez új jelszó megadását kéri, miután ezt megtette, visszatérhet az FTP programjához, és bejelentkezhet a root hitelesítő adataival:

IP: 169.254.10.1 Felhasználó: root Jelszó:

Töltse le alulról a rar fájlt, és bontsa ki egy ideiglenes mappából, és áthelyezheti ezeket a fájlokat a RaspberryPi készülékére a következő könyvtárba:/var/www/html/, miután ezt megtette, a https:// /169.254.10.1, még nem léphet kapcsolatba egymással, mert még nem fut a háttér, ebben az útmutatóban később megmutatom, hogyan kell ezt megtenni.

5. lépés: Adatbázis importálása a projektünkhöz

Projektünk adatbázisának importálása
Projektünk adatbázisának importálása
Projektünk adatbázisának importálása
Projektünk adatbázisának importálása

Nyissa meg kedvenc MySQL szerverkezelő programját, és csatlakozzon Raspberry Pi készülékéhez a 2. lépésben létrehozott hitelesítő adatokkal.

Töltse le az adatbázis kiíratását alulról, és importálja a megszokott módon, a MySQL munkaasztalon menjen a Fájl> SQL parancsfájl megnyitása elemre, és válassza ki a letöltött adatbázis kiíratását. Ezután nyomja le a CTRL + SHIFT + ENTER billentyűkombinációt, és az SQL parancsfájlt le kell futtatni és a szerkezetet az adatbázist létre kell hozni.

Az alábbiakban példaként hozzáadtam a RaspberryPi -hez használt hitelesítő adatokat, valamint néhány képet az adatbázis struktúrájáról.

6. lépés: A projekt elindítása

Projektünk elindítása
Projektünk elindítása
Projektünk elindítása
Projektünk elindítása

Mielőtt elindíthatnánk projektünket, meg kell változtatnunk a config.py fájl adatbázis -hitelesítő adatait, ha pontosan követte az utasításokat, ahogy az útmutató is mondta, akkor a /home/pi/Documents/Backend/src/config.py itt meg kell változtatnia a db_config változó hitelesítő adatait, hogy azok megfeleljenek azoknak, amelyeket korábban az adatbázisunkhoz készítettünk. Az alábbiakban példát adtam arra, hogy mit fog látni ebben a fájlban.

Ezt követően hozzáadunk egy.service fájlt, ez a fájl biztosítja, hogy projektünk elinduljon a RaspberryPi elindításakor, és győződjön meg arról, hogy megfelelően módosította a könyvtárat a háttérfájlok telepítési helyéről. Használja a következő parancsot a szervizfájl létrehozásához: sudo nano /etc/systemd/system/dispenser.service Ezzel létrejön egy szolgáltatásfájl, és másolja be az alábbi kódot ebbe a fájlba.

[Unit] Leírás = Water DispenserAfter = mysql.service

[Szolgáltatás] Típus = simpleRestart = mindigRestartSec = 1User = piExecStart =/usr/bin/python3 /home/pi/Documents/Backend/index.py

[Telepítés] WantedBy = multi-user.target

Módosítsa a /home/pi/Documents/Backend/index.py sort arra a helyre, ahová a háttérfájlokat telepítette, ha nem ezt teszi megfelelően, a projekt nem indul el megfelelően! Alább hozzáadok egy példa fájlt.

Miután ezt megtette és kilépett a szövegszerkesztőből, a következő parancsokkal engedélyezhetjük a szolgáltatást:- sudo systemctl daemon-reload- sudo systemctl engedélyezze az adagolót- sudo systemctl start adagoló

Kiegészítésként futtathatjuk: sudo systemctl állapotadagolóEz néhány információt jelenít meg a szolgáltatásunk körül, akár aktív, akár nem,…

7. lépés: Az ügy

Az ügy
Az ügy
Az ügy
Az ügy
Az ügy
Az ügy
Az ügy
Az ügy

Gratulálunk, hogy már majdnem ott vagyunk, hozzáadok néhány képet, amelyek pontosan mutatják a projektemhez használt méreteket, 18 mm vastag MDF lemezeket használtam, opcionálisan más vastagságot is használhat. A burkolatom iránymutatásként használható a tied tervezéséhez, vagy újra létrehozhatod, amit készítettem. (Ha más vastagságú MDF-t használ, a rajzaim többé nem teszik lehetővé a tervezésemet, ne felejtse el módosítani!) Az általam készített panelek:- 2 db 32 x 42 cm-es panel (oldalsó panelek)- 1 24 cm-es panel 32 cm (alsó lemez)- 2 panel 16 cm x 24 cm (elülső lemez, ahol az LCD és a szomszédos lemez)- 1 panel 28 cm x 24 cm (középső lemez elölről nézve)- 1 panel 30 cm x 24 cm (felső lemez)

8. lépés: Csodálja meg a végterméket

Csodálja meg a végterméket
Csodálja meg a végterméket
Csodálja meg a végterméket
Csodálja meg a végterméket

A végére értél, és mostanra remélhetőleg sikerült megvalósítani az egészet. Ha csak egy járókelő olvassa végig, üdvözöljük, köszönöm, hogy az utolsó lépésig elolvasta!

Sok vért, izzadságot és könnyeket költöttem ebbe a projektbe, ezért megköszönném, ha megjegyzést hagyna, bármilyen kritikát a fejlesztéssel kapcsolatban szívesen fogadok!

9. lépés: A problémák

A projektet jelenlegi állapotába helyezném működő prototípusként, amely sokkal több fejlesztést láthat.

A háttérrendszer kódbázisa úgy van felépítve, hogy a master -slave reláció tökéletesen létrejöhessen, ahol az egyik szökőkút a fő frontendként fog működni, és az összes többi forrás az adatokat és a változásokat a mester REST api fölé tolja. Az API token rendszer maradványai is találhatók a kódban, mivel ezt a megvalósításra szánták, de az időbeli korlátozások miatt később levágták.

Feltöltöttem a kódomat a Gitlab szerverre, és ott megnézheti a kód egészét:

Ajánlott: