Inhoudsopgave:

SmartHome met Raspberry Pi: 5 stappen
SmartHome met Raspberry Pi: 5 stappen

Video: SmartHome met Raspberry Pi: 5 stappen

Video: SmartHome met Raspberry Pi: 5 stappen
Video: Supervised Home Assistant. Легкая установка на RaspiOS 64 - Raspberry PI 4B в корпусе Argon One M.2 2024, November
Anonim
SmartHome met Raspberry Pi
SmartHome met Raspberry Pi

Voor dit project heb ik een SmartHome gemaakt die bediend kan worden door een website en mobiel. Hiervoor gebruik ik de Raspberry PI als database en webserver.

Benodigdheden

Als je hiermee wilt beginnen, heb je een aantal dingen nodig:

  • 5 witte leds (5mm)
  • 1 eendraads temperatuursensor
  • 1 LDR (lichtafhankelijke weerstand)
  • 2 servomotoren
  • 1 microSD (voor Raspberry Pi)
  • 1 Breadboard voeding
  • 1 Raspberry Pi 3 Model B+
  • 3 Schuimplaten
  • 1 Stappenmotor (5V)
  • 1 RFID-RC522-lezer
  • 8 weerstanden (220 Ohm)
  • 1 weerstand (10K Ohm)
  • 2 Breadboards
  • 2 pakjes jumperdraden
  • 1 16x2 LCD-scherm
  • 1 PCF8574AN
  • 4 kleine vensters (3D geprint)
  • 1 deur (3D geprint)
  • 2 grote ramen (3D geprint)
  • 1 garagedeur (3D geprint)

Als je dit allemaal nodig hebt om te kopen, zijn de maximale kosten ongeveer € 150

Stap 1: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading

De gemakkelijkste manier om te beginnen is met de bedrading zodat je de basis al hebt, met deze methode kun je tijdens het schrijven van de code eenvoudig controleren of alles werkt.

Zo kun je zien of je genoeg pinnen op de Raspberry Pi hebt om alles aan te sluiten. In dit geval heb ik de PCF8574AN gebruikt om mijn LCD te bedienen met minder GPIO-pinnen.

Om het schema te tekenen heb ik Fritzing gebruikt. Het is een handig programma waarmee je overzichtelijk je bekabeling kunt bekijken.

Zoals je op de tweede foto kunt zien zijn er veel kabels dus je moet nog wel geordend werken.

Stap 2: Huisvesting

huisvesting
huisvesting
huisvesting
huisvesting
huisvesting
huisvesting
huisvesting
huisvesting

Voor de behuizing heb ik foamboards als wanden gebruikt. Ik gebruikte een mes om de planken in de gewenste vormen te snijden. De ramen, deuren en garagedeur zijn 3D-geprint. Natuurlijk heb ik het huis van te voren getekend zodat ik wist welke afmetingen ik moest gebruiken.

Ik heb SketchUp gebruikt om het huis te tekenen. Ik heb een lijmpistool gebruikt om de muren recht te houden en bij elkaar te houden. Als je op de foto's kunt zien, zijn het raam en de garagedeur met lijm bevestigd, zodat het sterk genoeg zou zijn. De zwarte doos op de 3e foto staat een doos die ik vroeger vervoerde zodat alles heel blijft

Stap 3: Database

Database
Database

Allereerst moet u de database ontwerpen met Mysql Workbench. Als dit is gelukt, moet je de Mysql-database op de Raspberry Pi installeren.

De eerste stap die u neemt, is controleren of uw Pi is bijgewerkt. U kunt de volgende opdracht gebruiken:

sudo apt-get update

en

sudo apt-get upgrade

Nu kunt u de Mysql-server installeren:

sudo apt-get install mysql-server

Als de Mysql-server is geïnstalleerd, installeer dan de Mysql-client

sudo apt-get install mysql-client

Als je nu naar de sql-server kijkt met het commando:

sudo mysql

U kunt nu uw databasecode importeren door het.mwb-bestand te openen met de sql workbench en forward engineer. U kopieert de code en plakt deze in de mysql van de Raspberry. De databank is gemaakt.

Om ervoor te zorgen dat de gebruiker alle rechten krijgt, hoeft u alleen uw gebruikersnaam in de tabel toe te voegen

verleen alle privileges op smarthome.* aan 'uwnaam'@'%' geïdentificeerd door 'uwnaam';

natuurlijk moet je de tabel nu verversen

SPOEL VOORRECHTEN;

Om dit te controleren, kunt u eenvoudig proberen:

gebruik smarthome;

selecteer * uit historiek;

In de gebruikerstabel komen de namen van de gebruikers samen met hun badge, hier kunt u nieuwe gebruikers toevoegen. In de apparatentabel vindt u alle actieve sensoren met hun id. De historiek-tabel toont alles wat er gebeurt zoals de temperatuursensor, badge met de status van de garagedeur en meer.

Stap 4: Instellen

Om de afbeelding op de Raspberry Pi in te stellen, kunt u Putty gebruiken, dit is een gratis programma. U kunt het basisafbeeldingsbestand hier vinden:

Interfaces

Natuurlijk moet je een aantal interfaces op de Pi inschakelen. Ga eerst naar de configuratiepagina.

sudo raspi-config

Nu kunt u naar de categorieën 1-Wire en Spi gaan en beide inschakelen. Deze heb je nodig voor de temperatuursensor.

Wifi

Volg de volgende stappen om wifi op de Pi te krijgen.

Log eerst in als root

sudo-i

Vul dan de naam en het wachtwoord van je wifi netwerk in

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

Voer vervolgens de WPA-client in

wpa_cli

selecteer de interface

interface wlan0

Herlaad nu de configuratie

opnieuw configureren

En nu kun je controleren of je verbonden bent

ip a

Pakketjes

Het eerste dat u moet doen, is de nieuwste versies bijwerken

sudo apt update

Voor python installeren we en zorgen we ervoor dat de Pi de juiste versie kiest

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

Voor de webserver waarop de site kan worden uitgevoerd, moeten we Apache2 installeren

sudo apt installeer apache2 -y

Sommige python-pakketten moeten ook worden geïnstalleerd

  • Kolf
  • Kolf-Cors
  • Kolf-MySQL
  • Kolf-SocketIO
  • PyMySQL
  • Python-socketIO
  • verzoeken
  • Pip
  • gpio
  • Gent
  • Gevent-websocket

als er problemen zijn met een pakket dat niet wordt gevonden, klik er dan met de rechtermuisknop op en laat het installeren.

Stap 5: Coderen

Code
Code
Code
Code

backend

Voor de backend schrijven we de code in python en gebruiken we pycharm om in te schrijven. De routes vanuit de backend zijn te controleren bij de postbode. Met deze app kun je de POST- en GET-methoden gebruiken. In de backend heb ik multithreading gebruikt, zodat alles op de achtergrond draait en kan samenwerken. Om de afbeelding op de Raspberry Pi in te stellen kun je Putty gebruiken, dit is een gratis programma.

voorkant

Aan de voorkant zijn er een paar knoppen die de lichten kunnen aanzetten, de garagepoort en de deur openen. Door gebruik te maken van javascript en CSS verandert de stijl van de knoppen wanneer ze actief zijn. Er is ook een live temperatuur en een grafiek met de afgelopen temperaturen. Op de gebruikerspagina kunt u de verschillende gebruikers zien, u kunt ook een gebruiker toevoegen aan de database en er is een gebruikershistorie waar u kunt zien wie de garagedeur als laatste heeft geopend of gesloten.

De code voor de frontend en backend vind je op

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

Aanbevolen: