Kazalo:

SmartHome z Raspberry Pi: 5 korakov
SmartHome z Raspberry Pi: 5 korakov

Video: SmartHome z Raspberry Pi: 5 korakov

Video: SmartHome z Raspberry Pi: 5 korakov
Video: Дисплей для Orange Pi, Rasbery Pi ... из матрицы 5" 7" 9" 10" планшетов и нетбуков PCB800099 V.9 2024, Julij
Anonim
SmartHome z Raspberry Pi
SmartHome z Raspberry Pi

Za ta projekt sem naredil SmartHome, ki ga lahko upravlja spletna stran in mobilni telefon. Za to uporabljam Raspberry PI kot bazo podatkov in spletni strežnik.

Zaloge

Če želite začeti s tem, potrebujete več stvari:

  • 5 belih LED diod (5 mm)
  • 1 enožični senzor temperature
  • 1 LDR (svetlobno odvisen upor)
  • 2 servo motorja
  • 1 microSD (za Raspberry Pi)
  • 1 Napajanje iz plošče
  • 1 Raspberry Pi 3 Model B+
  • 3 Plošče iz pene
  • 1 koračni motor (5V)
  • 1 čitalnik RFID-RC522
  • 8 uporov (220 ohmov)
  • 1 upor (10K Ohm)
  • 2 deske
  • 2 pakiranja mostičnih žic
  • 1 LCD zaslon 16x2
  • 1 PCF8574AN
  • 4 majhna okna (3D natisnjena)
  • 1 vrata (3D natisnjena)
  • 2 velika okna (3D -tiskanje)
  • 1 garažna vrata (3D natisnjena)

Če vse to potrebujete za nakup, bodo najvišji stroški okoli 150 €

1. korak: Ožičenje

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

Najlažji način za začetek je ožičenje, tako da že imate osnove, s to metodo lahko preprosto preverite, ali vse deluje, ko pišete kodo.

Na ta način lahko vidite, ali imate na Raspberry Pi dovolj zatičev, da vse povežete. V tem primeru sem uporabil PCF8574AN za nadzor LCD -ja z manj zatiči GPIO.

Za risanje sheme sem uporabil Fritzing. To je priročen program, kjer si lahko svoje kable ogledate na dobro organiziran način.

Kot lahko vidite na drugi fotografiji, je veliko kablov, zato morate še vedno delati organizirano.

2. korak: Stanovanje

Nastanitev
Nastanitev
Nastanitev
Nastanitev
Nastanitev
Nastanitev
Nastanitev
Nastanitev

Za ohišje sem kot stene uporabil pene. Z nožem sem rezal deske v želenih oblikah. Okna, vrata in garažna vrata so 3D-tiskana. Seveda sem hišo narisal vnaprej, da sem vedel, katere dimenzije moram uporabiti.

Uporabil sem SketchUp za risanje hiše. Uporabil sem pištolo za lepilo, da so stene ravne in jih držijo skupaj. Če vidite na fotografijah, so okna in garažna vrata pritrjena z lepilom, da bodo dovolj močna. Črna škatla na 3. fotografiji je škatla, ki sem jo nekoč prevažal, da je vse ostalo nedotaknjeno

3. korak: zbirka podatkov

Baza podatkov
Baza podatkov

Najprej morate oblikovati bazo podatkov z delovno mizo Mysql. Če to uspe, morate na Raspberry Pi namestiti bazo podatkov Mysql.

Prvi korak, ki ga naredite, je preveriti, ali je vaš Pi posodobljen. Uporabite lahko naslednji ukaz:

sudo apt-get posodobitev

in

sudo apt-get nadgradnja

Zdaj lahko namestite strežnik Mysql:

sudo apt-get install mysql-server

Če je strežnik Mysql nameščen, namestite odjemalca Mysql

sudo apt-get install mysql-client

Če zdaj pogledate strežnik sql z ukazom:

sudo mysql

Kodo zbirke podatkov lahko uvozite tako, da odprete datoteko.mwb z delovno mizo sql in inženirjem posredovanja. Kodo kopirate in prilepite v datoteko mysql iz Raspberryja. Baza podatkov je narejena.

Če želite uporabnik dobiti vsa dovoljenja, v tabelo dodajte svoje uporabniško ime

podeli vse privilegije za smarthome.* 'vašemu imenu'@'%', ki ga označi 'vaše ime';

seveda morate zdaj osvežiti mizo

FLUSH PRIVILEGIJE;

Če želite to preveriti, preprosto poskusite:

uporabite pametni dom;

izberite * iz historieka;

V tabeli uporabnikov so imena uporabnikov skupaj z značko, tukaj lahko dodate nove uporabnike. V tabeli naprav najdete vse aktivne senzorje z njihovimi ID -ji. Tabela Historiek prikazuje vse, kar se dogaja, kot so temperaturni senzor, značka s stanjem garažnih vrat in drugo.

4. korak: Nastavitev

Za nastavitev slike na Raspberry Pi lahko uporabite Putty, to je brezplačen program. Osnovno slikovno datoteko najdete tukaj:

Vmesniki

Seveda morate omogočiti nekaj vmesnikov na Pi. Najprej pojdite na stran s konfiguracijo.

sudo raspi-config

Zdaj lahko greste v kategorijo 1-Wire in Spi in oba ju omogočite. Potrebovali jih boste za temperaturni senzor.

Wifi

Sledite naslednjim korakom, da dobite WiFi na Pi.

Najprej se prijavite kot root

sudo-i

Nato vnesite ime in geslo svojega omrežja WiFi

wpa_passphrase = "wifiname" "geslo" >> /etc/wpa_supplicant/wpa_supplicant.conf

Nato vnesite odjemalca WPA

wpa_cli

izberite vmesnik

vmesnik wlan0

Zdaj znova naložite konfiguracijo

ponovno konfigurirati

Zdaj lahko preverite, ali ste povezani

ip a

Paketi

Najprej morate posodobiti najnovejše različice

sudo apt posodobitev

Za python namestimo in se prepričamo, da Pi izbere pravilno različico

update-alternative --install/usr/bin/python python /usr/bin/python2.7 1update-alternative --install/usr/bin/python python/usr/bin/python3 2

Če želimo, da spletni strežnik zažene spletno mesto, moramo namestiti Apache2

sudo apt namestite apache2 -y

Prav tako je treba namestiti nekatere pakete python

  • Bučka
  • Bučke
  • Flask-MySQL
  • Vtičnica za bučkoIO
  • PyMySQL
  • Python-socketIO
  • zahteve
  • pip
  • gpio
  • Gevent
  • Gevent-websocket

če obstajajo težave z paketom, ki ga ne najdete, ga kliknite z desno miškino tipko in pustite, da se namesti.

5. korak: Koda

Koda
Koda
Koda
Koda

backend

Za zaledje kodo zapišemo v python in za vpis uporabimo pycharm. Poti iz zaledja je mogoče preveriti pri poštarju. S to aplikacijo lahko uporabite metode POST in GET. V ozadju sem uporabljal večnitnost, tako da vse teče v ozadju in lahko deluje skupaj. Za nastavitev slike na Raspberry Pi lahko uporabite Putty, to je brezplačen program.

frontend

Na sprednji strani je nekaj gumbov, ki lahko prižgejo luči, odprejo vrata in vrata garaže. Z uporabo javascript in CSS se slog gumbov spremeni, ko so aktivni. Obstaja tudi temperatura v živo in grafikon s preteklimi temperaturami. Na uporabniški strani si lahko ogledate različne uporabnike, v bazo podatkov lahko dodate tudi uporabnika, obstaja pa tudi zgodovina uporabnikov, kjer lahko vidite, kdo je zadnji odprl ali zaprl garažna vrata.

Kodo za vmesnik in zaledje najdete na naslovu

github.com/NMCT-S2-Project-1/nmct-s2-proje…

Priporočena: