Innholdsfortegnelse:

SmartHome With Raspberry Pi: 5 trinn
SmartHome With Raspberry Pi: 5 trinn

Video: SmartHome With Raspberry Pi: 5 trinn

Video: SmartHome With Raspberry Pi: 5 trinn
Video: Smarter than a Smart TV! (Raspberry Pi Inside) 2024, Juli
Anonim
SmartHome med bringebær Pi
SmartHome med bringebær Pi

For dette prosjektet laget jeg et SmartHome som kan drives av et nettsted og en mobil. Til dette bruker jeg Raspberry PI som database og webserver.

Rekvisita

Hvis du vil starte dette, trenger du flere ting:

  • 5 hvite lysdioder (5 mm)
  • 1 sensortemperatur med én ledning
  • 1 LDR (lysavhengig motstand)
  • 2 servomotorer
  • 1 microSD (for Raspberry Pi)
  • 1 Strømforsyning til brødbrett
  • 1 Raspberry Pi 3 modell B+
  • 3 skumplater
  • 1 trinnmotor (5V)
  • 1 RFID-RC522-leser
  • 8 motstander (220 Ohm)
  • 1 motstand (10K Ohm)
  • 2 brødbrett
  • 2 pakker jumperwires
  • 1 16x2 LCD -skjerm
  • 1 PCF8574AN
  • 4 små vinduer (3D -trykt)
  • 1 dør (3D -trykt)
  • 2 store vinduer (3D -trykt)
  • 1 garasjeport (3D -trykt)

Hvis du trenger alt dette for å kjøpe, vil maksimal kostnad være rundt € 150

Trinn 1: Kabling

Kabling
Kabling
Kabling
Kabling
Kabling
Kabling

Den enkleste måten å starte er med ledningene slik at du allerede har det grunnleggende. Med denne metoden kan du enkelt kontrollere om alt fungerer når du skriver koden.

På denne måten kan du se om du har nok pins på Raspberry Pi til å koble til alt. I dette tilfellet brukte jeg PCF8574AN til å kontrollere LCD -skjermen min med mindre GPIO -pinner.

For å tegne opplegget brukte jeg Fritzing. Det er et praktisk program der du kan se kablingen din på en godt organisert måte.

Som du kan se på det andre bildet, er det mange kabler, så du må fortsatt jobbe organisert.

Trinn 2: Boliger

Boliger
Boliger
Boliger
Boliger
Boliger
Boliger
Boliger
Boliger

Til huset brukte jeg skumplater som vegger. Jeg brukte en kniv til å skjære brettene i ønsket form. Vinduene, dørene og garasjeporten er 3D-trykte. Selvfølgelig tegnet jeg huset på forhånd, så jeg visste hvilke dimensjoner jeg måtte bruke.

Jeg brukte SketchUp til å tegne huset. Jeg brukte en limpistol for å holde veggene rette og holde dem sammen. Hvis du kan se på bildene, er vinduet og garasjeporten festet med lim, så det ville være sterkt nok. Den svarte boksen på det tredje bildet er en eske jeg pleide å transportere slik at alt forblir intakt

Trinn 3: Database

Database
Database

Først av alt må du designe databasen ved hjelp av Mysql Workbench. Hvis dette lykkes, må du installere Mysql -databasen på Raspberry Pi.

Den første stammen du tar er å sjekke om Pi -en din er oppdatert. Du kan bruke følgende kommando:

sudo apt-get oppdatering

og

sudo apt-get oppgradering

Nå kan du installere Mysql -serveren:

sudo apt-get install mysql-server

Hvis Mysql -serveren er installert, installerer du Mysql -klienten

sudo apt-get install mysql-klient

Hvis du nå ser på sql -serveren med kommandoen:

sudo mysql

Du kan nå importere databasekoden ved å åpne.mwb -filen med SQL -arbeidsbenken og fremoveringeniøren. Du kan kopiere koden og lime den inn i mysql fra Raspberry. Databasen er laget.

For at brukeren skal få alle tillatelsene, må du bare legge til brukernavnet ditt i tabellen

gi alle privilegier på smarthome.* til 'dittnavn'@'%' identifisert med 'ditt navn';

Selvfølgelig må du oppdatere bordet nå

FLUSH -PRIVILEGER;

For å sjekke dette kan du bare prøve:

bruk smarthome;

velg * fra historiek;

I brukertabellen kommer navnene på brukerne sammen med merket deres, her kan du legge til nye brukere. I enhetstabellen finner du alle de aktive sensorene med deres ID. Historikk -tabellen viser alt som skjer som temperatursensoren, merke med statusen til garasjeporten og mer.

Trinn 4: Oppsett

For å sette bildet på Raspberry Pi kan du bruke Putty, dette er et gratis program. Du kan finne den grunnleggende bildefilen her:

Grensesnitt

Selvfølgelig må du aktivere noen grensesnitt på Pi. Gå først til konfigurasjonssiden.

sudo raspi-config

Nå kan du gå til kategoriene 1-Wire og Spi og begge aktivere dem. Du trenger disse for temperatursensoren.

Wifi

Følg de neste trinnene for å få wifi på Pi.

Logg deg først på som root

sudo-i

Fyll deretter inn navnet og passordet til wifi -nettverket ditt

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

Skriv deretter inn WPA -klienten

wpa_cli

velg grensesnittet

grensesnitt wlan0

Last inn konfigurasjonen på nytt

omkonfigurere

Og nå kan du sjekke om du er tilkoblet

ip a

Pakker

Det første du må gjøre er å oppdatere de nyeste versjonene

sudo apt oppdatering

For python installerer vi og sørger for at Pi velger riktig versjon

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

For at webserveren skal kjøre nettstedet på, må vi installere Apache2

sudo apt installere apache2 -y

Noen python -pakker må også installeres

  • Kolbe
  • Flask-Cors
  • Kolbe-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Python-socketIO
  • forespørsler
  • pip
  • gpio
  • Gevent
  • Gevent-websocket

Hvis det er problemer med en pakke som ikke finnes, høyreklikker du bare på den og lar den installere.

Trinn 5: Kode

Kode
Kode
Kode
Kode

baksiden

For backend skriver vi koden i python og bruker pycharm til å skrive inn. Rutene fra backend er mulige å sjekke med postbud. Med denne appen kan du bruke POST- og GET -metodene. I backend brukte jeg multithreading, så alt kjører i bakgrunnen og kan fungere sammen. For å sette bildet på Raspberry Pi kan du bruke Putty, dette er et gratis program.

frontend

På frontenden er det noen knapper som kan slå på lys, åpner garasjeporten og døren. Ved å bruke javascript og CSS endres stilen fra knappene når de er aktive. Det er også en levende temperatur og et diagram med tidligere temperaturer. På brukersiden kan du se de forskjellige brukerne, du kan også legge til en bruker i databasen, og det er en brukerhistorikk der du kan se hvem som åpnet eller lukket garasjeporten som sist.

Du finner koden for frontend og backend på

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

Anbefalt: