Kazalo:

Pametno parkirišče z uporabo Raspberry Pi: 5 korakov
Pametno parkirišče z uporabo Raspberry Pi: 5 korakov

Video: Pametno parkirišče z uporabo Raspberry Pi: 5 korakov

Video: Pametno parkirišče z uporabo Raspberry Pi: 5 korakov
Video: Leap Motion SDK 2024, November
Anonim
Pametno parkirišče z uporabo Raspberry Pi
Pametno parkirišče z uporabo Raspberry Pi

V teh navodilih bomo ustvarili popolnoma avtomatski parkirni sistem, povezan s spletnim vmesnikom. Videli boste, katera točka je zasedena, se odločili, kdo gre noter in kdo ven, opremljena pa je s samodejnim sistemom razsvetljave.

Zaloge

Strojna oprema

  • 2x ultrazvočni senzorji
  • 1x servo motor
  • 4x bele LED diode
  • 1x svetlobno odvisen upor
  • 1x 2*16 LCD zaslon

Računalništvo

  • 1x malina Pi 3 B+
  • 1x kartica SD (izbira je 8-16 GB)
  • 1x Adafruit I2S 3W ojačevalnik razreda D - MAX98357A
  • 1x MCP3008
  • 1x upor 2.2K Ohm
  • 9x upori 1K ohm

Različno

  • Mostične žice
  • Ogledna plošča
  • UTP-kabel
  • Adapter za vaš malinov pi
  • List multipleksa (za ohišje lahko uporabite kakršen koli material, ki ga želite)
  • Pištola za lepilo

Programska oprema

  • PUTTY
  • Programska oprema za urejanje kode (če želite, lahko uporabljate vse, kar želite: Python, HTML, CSS in java script
  • Win32 Disk Imager
  • Slika Raspbian OS
  • VNC Viewer (neobvezno)

1. korak: Nastavite RPI

Preden začnemo s povezovanjem strojne opreme, napišite datoteko

programsko opremo in izdelavo ohišja, bomo morali nastaviti vaš PI s potrebno programsko opremo, ki jo boste potrebovali za izvedbo projekta.

Za namestitev na kartico SD in zapis na kartico SD Win32 Disk Imager boste potrebovali sliko Raspbiana. Spodaj najdete povezave do obeh.

- Win32 Disk Imager:

- Raspbian image:

Namestitev

  1. Odprite Win32 Disk Imager

    1. Z ikono mape izberite sliko, ki ste jo pravkar prenesli
    2. V spustnem meniju izberite kartico SD
    3. Kliknite na piši
    4. Ko bo postopek končan, vas bo računalnik verjetno vprašal, ali želite formatirati kartico SD, tega ne storite

Ko končate s temi koraki, boste morali narediti nekaj dodatnih stvari, da boste lahko dostopali do programske opreme vašega PI.

  1. Odprite kartico SD v raziskovalcu
  2. Odprite datoteko "cmdline.txt"
  3. Na koncu boste videli dolgo vrstico besedila: ip = 169.254.10.1
  4. Shranite datoteko
  5. Ustvarite datoteko ssh brez razširitve (če ne veste, kako to storiti, kliknite novo datoteko, izberite novo besedilno datoteko, izbrišite razširitev in jo poimenujte ssh)
  6. Zadnji korak tega dela je, da varno izvržete kartico SD in jo vstavite v Raspberry PI

Povezovanje

Ko končate s prejšnjimi koraki, je čas, da se prvič povežete s pi. Najprej boste morali priključiti kabel UTP, en konec v računalniku, drugi pa v pi (pomembno je, da kabel LAN priključite, preden ga priključite).

  1. Namestite Putty:
  2. Ko ga namestite, ga odprite in vnesite 169.254.10.1 v polje IP
  3. Izberite SSH in vnesite vrata 22
  4. Kliknite odprto
  5. Izpolnite uporabniško ime: pi in geslo malina, to je standardna prijava na povsem novi sliki

Raspi-config

Preden nadaljujemo, boste morali v meniju raspi-config spremeniti kar nekaj nastavitev in ga odpreti z uporabo:

sudo raspi-config

1. Omogočite I2C in SPI v možnostih kategorije kategorije vmesnikov

2. Izberite kategorijo WIFI prek kategorije lokalizacije

3. Nastavitev Namizje/CLI v kategoriji možnosti zagona nastavite na Samodejna prijava na namizje.

4. V razdelku Napredne možnosti izberite A1 Razširi datotečni sistem (tako zagotovite, da uporabite prostor na celotni kartici SD

5. Zdaj zapustite in sudo ponovno zaženite

Wifi

Zdaj je čas, da svojo brezžično povezavo nastavite, seveda boste potrebovali poverilnice svojega wifija.

Najprej pojdite v korenski način z izvajanjem tega ukaza

Sudo -i

Zdaj imate pravice, potrebne za izvajanje teh ukazov:

Prepričajte se, da spremenite SSID v ime wifi in GESO v geslo za wifi

Wpa_passphrase “SSID” “PASSWORD” >> /etc/wpa_supplicant/wpa_supplicant.conf

Vnesite odjemalca WPA tako, da zaženete ta ukaz:

wpa_cli

Izberite vmesnik

Vmesnik wlan0

Znova naložite konfiguracijo

Ponovno konfigurirajte

Nenazadnje preverite, ali je delovalo. To lahko storite tako, da vnesete:

Ip a

Tukaj lahko preverite, ali imate IP pod vmesniki WLAN0, če ne sudo reboot (nikoli ne uspe (:).

Če vam to ni všeč z ukazno vrstico, lahko to vedno storite prek grafičnega vmesnika Raspbian, ki je nekoliko bolj prijazen do uporabnika.

  1. Namestite VNC-viewer tukaj:
  2. Kliknite datoteka, nova povezava in vnesite v naslovno vrstico IP: 169.254.10.1 in izberite poljubno ime
  3. Izpolnite uporabniško ime: pi in geslo malina
  4. Kliknite ikono wifi in se tako povežite

Paketi

Zdaj, ko smo povezani z internetom, lahko namestimo pakete, ki jih potrebujemo za zagon vse kode.

Najprej bomo morali osvežiti seznam paketov na najnovejšega z zagonom:

sudo apt posodobitev

sudo apt nadgradnja

Spletni strežnik Apache

Za zagon naše spletne aplikacije potrebujemo spletni strežnik. To lahko dosežemo z namestitvijo spletnega strežnika apache z izvajanjem tega ukaza:

sudo apt namestite apach2 -y

Paketi Python

Da bo vse delovalo, bomo potrebovali kar nekaj paketov. To so tisti, ki jih bomo potrebovali.

  • Bučka
  • Bučke
  • Podaljšek za bučko
  • Flask-MySQL
  • Vtičnica za bučkoIO
  • Python-socketio

Namestite jih lahko tako, da zaženete ta ukaz:

pip install Flask Flask-Cors Flask-Extension Flask-MySQL Flask-SocketIO python-socketio

2. korak: zbirka podatkov

Baza podatkov
Baza podatkov

MariaDB

Za namestitev MariaDB zaženite naslednji ukaz, to je sistem baze podatkov, ki je potreben za spremljanje vseh podatkov, ki jih berejo senzorji.

sudo apt namestite strežnik mariadb

Zdaj bomo morali zavarovati našo namestitev

Mysql_secure_installation

Ko zaženete ukaz, nas bo vprašal za korensko geslo, ki ga še nimamo, zato samo pritisnite enter.

Zdaj vas bo vprašal, če ga želite iz varnostnih razlogov, želimo ga, zato pritisnite Y na tipkovnici in izberite katero koli geslo, ki ga želite.

Zdaj vam bo še naprej postavljal nekaj vprašanj, na vsa odgovorite z Y

Zdaj, ko smo prišli do te točke, moramo iti v lupino SQL.

Če želite to narediti, moramo najprej znova postati root, da nam za to podelijo privilegije, tako da znova vnesemo ta ukaz:

sudo -i

Zdaj vnesite lupino mysql

mysql

Zdaj bomo ustvarili uporabnika, ki bo želeno ime postavil med narekovaje pred @ in geslo, ki ga želite identificirati

Zdaj moramo izprazniti tabelo dovoljenj z izvajanjem tega ukaza:

FLUSH PRIVILEGIJE;

Ko dokončate te korake, lahko znova ustvarite shemo db iz zgornje slike. Na žalost vam ne morem dati podatkovne zbirke, ker imam nekaj programskih napak.

3. korak: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Zdaj je čas za ožičenje projekta. Da bi olajšali postopek, najprej naredite shemo v programu z imenom fritzing. Fritzing vam olajša ponovno ustvarjanje ožičenja v resničnem življenju in dobite jasno sliko o tem, kaj izdelujete.

4. korak: Stanovanje

Nastanitev
Nastanitev
Nastanitev
Nastanitev
Nastanitev
Nastanitev

Prvi korak je rezanje lesa v oblikah, kot je prikazano na risbi. To sem naredil z laserskim rezanjem, vendar bo običajna žaga delovala enako dobro. Po tem boste želeli les pobarvati v črno, da dobi asfaltno barvo. Ko se barva posuši, lahko pobarvate bele črte, da dobite občutek parkirišča. Za ograjo poškropim pobarvane slamice, da izgledajo kot drogovi. Za ograjo sem pritrdil nekaj goj na stebre. Pregrada je narejena iz paer machéja, ki sem ga kasneje pobarval z brizganjem.

5. korak: Kodiranje

Kodiranje
Kodiranje
Kodiranje
Kodiranje
Kodiranje
Kodiranje

Zaledje: Zaledje projekta je napisano v Pythonu in TSQL. Prebere vse podatke senzorjev in jih zapiše v bazo podatkov, ki smo jo ustvarili malo prej. Zažene tudi spletni strežnik, tako da lahko nanj povežemo našo zunanjo stran. Kodo, potrebno za zaledje, sem napisal v pycharmu, seveda pa lahko uporabite karkoli želite.

Kodo za ozadje najdete tukaj:

Frontend: Frontend je napisan v HTML, CSS in Javascript. Za pisanje kode sem uporabil kombinacijo vizualne studijske kode in phpstorm. Koda v bistvu zapiše celotno spletno mesto in v datotekah javascript najdete kodo, potrebno za pridobivanje podatkov iz zaledja.

Kodo za prednjo stran najdete tukaj:

Priporočena: