Inhoudsopgave:

Home_X: 5 stappen
Home_X: 5 stappen

Video: Home_X: 5 stappen

Video: Home_X: 5 stappen
Video: 5000 STEPS IN 30 MIN AT HOME | Do it twice to get 10000 STEPS | Weight Loss Workout | NO JUMPING 2024, Juli-
Anonim
Home_X
Home_X

Ik ben een student aan Howest Kortrijk die Nieuwe Media en Communicatie Technologie (NMCT) studeert.

We moesten allemaal een project maken dat was gebaseerd op framboos en/of Arduino. We moesten sensoren en databases gebruiken om de gegevens in een website weer te geven, en toen kwam ik op het idee om een mini slim huis te maken.

Met het slimme huis zie je alle sensormetingen op de website.

In deze instructable zal ik je bij elke stap begeleiden, zodat je dit project voor jezelf opnieuw kunt maken.

Stap 1: Materialen: wat heb je nodig?

  • Raspberry Pi
  • DHT22
  • Grove - Luchtkwaliteitssensor
  • Grove - Gassensor (MQ2)
  • Breadboard
  • Raspberry Pi T schoenmaker
  • Mannelijke/vrouwelijke verbindingsdraden
  • 5 mm LED's
  • Weerstanden
  • Hout en gereedschap
  • Servomotor
  • GrovePi+

U kunt deze artikelen online kopen (Ali express, amazon, kiwi electronics…) of in uw plaatselijke winkels.

Een gedetailleerde lijst van onderdelen met een link naar de winkels vindt u hieronder in de stuklijst.

Stap 2: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading

Ik heb Fritzing gebruikt voor de bedrading om een mooi overzicht te hebben van hoe mijn bedrading moet worden gedaan. Zelf heb ik voor 2 van mijn sensoren een GrovePi+ gebruikt. Als je van plan bent dit zonder GrovePi+ te maken, volg dan het Fritzing-schema. I sensoren werken niet voor u, probeer verschillende pinnen te gebruiken.

Je vindt het Fritzing-bestand hieronder.

Stap 3: Database met MySQL

Database met MySQL
Database met MySQL

Een van de meest essentiële taken die we moesten uitvoeren, was de koppeling met een MySQL-database.

Elke keer dat een sensor meetwaarden krijgt of een lampje gaat branden, ziet u deze wijzigingen in de database.

De database stuurt deze gegevens vervolgens naar de website zodat de gebruiker ze daar ook kan zien.

Hieronder vind je mijn.xml bestand waar je een overzicht hebt van hoe de database werkt, maar eerst moet je MySQL en flask op de Raspberry Pi installeren.

De codering van de sensoren gebeurde via pycharm, dus zorg ervoor dat deze ook is geïnstalleerd (op uw computer).

Eerst moet je controleren op updates en pakketten installeren, zoals deze:

sudo apt-get update && sudo apt-get upgrade

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Nu gaan we een virtuele omgeving gebruiken:

me@my-rpi:~ $ python3 -m pip install --upgrade pip setuptools wiel virtualenvme@my-rpi:~ $ mkdir project1 && cd project1 me@my-rpi:~/project1 $ python3 -m venv --system- site-packages env me@my-rpi:~/project1 $ source env/bin/activate (env)me@my-rpi:~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPauth Flask-MySQL mysql-connector-python passlib

Het zou u moeten vertellen dat mariadb.service actief is.

Ga nu in pycharm naar VCS > Importeren vanuit versiebeheer > GitHub en kloon

Configureer vervolgens de implementatieconfiguratie voor de map die u zojuist hebt gemaakt, bijv. /home/ik/project1.

Nadat dit is gedaan, gaat u naar de tolkinstellingen en configureert u de virtuele omgeving die u zojuist hebt gemaakt, bijv. /home/me/project/env/bin/python. Path mapping moet ook worden ingevuld.

Als je dit allemaal hebt gedaan, zou de database al moeten draaien.

sudo systemctl status mysql

Nu moeten we gebruikers voor onze database maken, zoals:

sudo mariadb

MAAK GEBRUIKER 'project-admin'@'localhost' GEDENTIFICEERD DOOR 'adminpassword'; MAAK GEBRUIKER 'project-web'@'localhost' GEDENTIFICEERD DOOR 'webwachtwoord'; MAAK GEBRUIKER 'project-sensor'@'localhost' GEDENTIFICEERD DOOR 'sensorpassword'; CREATE DATABASE-project;

VERLENEN ALLE PRIVILEGES OP project.* aan 'project-admin'@'localhost' MET SUBSIDIEOPTIE; VERLENEN SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; SPOEL VOORRECHTEN;

Om onze database in pycharm te zien, moeten we een verbinding maken.

We kunnen dit doen door naar Beeld > Tool Windows > Database te gaan en op de groene "plus"-knop te klikken.

Gegevensbron > MySQL en klik (indien aanwezig) op de knop Stuurprogramma downloaden die verschijnt.

Ga dan naar SSH/SSL en vink SSH aan. Vul host/gebruiker/wachtwoord in voor de pi en gebruik poort 22 indien nog niet ingevuld.

Als u wilt dat pycharm uw wachtwoord onthoudt, vink dan het selectievakje "Wachtwoord onthouden" aan.

Vul in het tabblad "Algemeen" localhost in host, project in Database in en gebruik project-admin met het wachtwoord om de verbinding te kunnen testen.

Om de database nu bruikbaar te maken, moet je de.sql uitvoeren die ik hieronder plaats. Probeer de importoptie te gebruiken, als u een dumpfile niet kunt importeren, moet u de tabellen handmatig toevoegen.

Nadat dit is gedaan, moet u de conf-map met de twee.service-bestanden vinden. Daarin verander je elke seb die je vindt met de naam van de gebruiker die je op je pi gebruikt. De groep moet ook www-data zijn.

De volgende stap is om deze services op je pi te starten, zoals:

sudo cp conf/project-*.service /etc/systemd/system/

sudo systemctl daemon-reload

sudo systemctl start project-*

sudo systemctl status project-*

U zou twee actieve services moeten zien als alles volgens plan verloopt.

De laatste stap is om nginx in te schakelen.

Controleer eerst op apache2 op je pi, als je dit hebt geïnstalleerd, verwijder het of schakel het uit.

In het bestand nginx moet je eerst jesgi_pass wijzigen en daarna deze commando's uitvoeren.

sudo cp conf/nginx /etc/nginx/sites-available/project

sudo rm /etc/nginx/sites-enabled/default

sudo ln -s /etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project

sudo systemctl herstart nginx.service

sudo systemctl status nginx.service

Nginx moet actief en actief zijn. Als alles klopt, kun je nu naar je pi surfen. Je zult eerst "Hallo wereld" zien, maar je moet nog steeds de inhoud van dat bestand wijzigen met mijn onderstaande code.

U kunt services inschakelen zodat ze automatisch worden uitgevoerd wanneer de pi wordt gestart.

Als je dit allemaal hebt gedaan, zorg er dan voor dat je minimaal 1 huis met adres in de database hebt gezet. U kunt dit doen met een eenvoudige invoeging in.

Stap 4: Coderen

codering
codering
codering
codering

Je kunt de code downloaden via Github:

github.com/NMCT-S2-Project-I/project-i-Tib…

De code voor de sensoren is opgenomen in het bestand sensor.py.

Vergeet niet mijn naam te veranderen in de jouwe (of de gebruiker die je op je pi gebruikt) in de servicebestanden zodat ze goed kunnen werken en plaats mijn code in de reeds bestaande bestanden in je Pycharm.

Stap 5: Huisvesting

huisvesting
huisvesting
huisvesting
huisvesting
huisvesting
huisvesting
huisvesting
huisvesting

Ik heb even snel een tekening gemaakt van hoe ik mijn huis wilde, maar die van jou kan er heel anders uitzien. Je moet er alleen voor zorgen dat je een geheel hebt zodat de servo een venster kan openen en sluiten.

Ik gebruikte voornamelijk een kleine boor en een zaag om het hout te zagen. Ik zorgde er ook voor dat de muren dik genoeg waren zodat ik mijn servo erin kon plaatsen.

Als je klaar bent met je ontwerp en de servo op zijn plaats zit, hoef je alleen maar de sensoren aan te sluiten en de pi in het huis te plaatsen en je bent klaar om te gaan.

Zoals ik al eerder zei, kan je huis er precies hetzelfde uitzien als het mijne, je hoeft alleen maar ruimte te maken voor de servo en het raam.

Eindelijk ben je klaar met het project. Ik hoop dat deze handleiding duidelijk genoeg is, zodat ook jij een geweldig smarthouse kunt maken zoals ik deed.

Veel succes.

Aanbevolen: