Taula de continguts:

Inici_X: 5 passos
Inici_X: 5 passos

Vídeo: Inici_X: 5 passos

Vídeo: Inici_X: 5 passos
Vídeo: Become a slam poet in five steps - Gayle Danley 2024, De novembre
Anonim
Inici_X
Inici_X

Sóc estudiant de Howest Kortrijk que estudia nous mitjans de comunicació i tecnologia de comunicació (NMCT).

Tots havíem de fer un projecte basat en el gerd i / o l’Arduino. Vam haver d’utilitzar sensors i bases de dades per mostrar les dades en un lloc web, i va ser llavors quan vaig tenir la idea de crear una mini casa intel·ligent.

Amb la casa intel·ligent, podreu veure totes les lectures del sensor al lloc web.

En aquest instructiu us guiaré a través de cada pas perquè pugueu recrear aquest projecte per vosaltres mateixos.

Pas 1: Materials: què necessiteu

  • Raspberry Pi
  • DHT22
  • Grove - Sensor de qualitat de l'aire
  • Grove - Sensor de gas (MQ2)
  • Taula de pa
  • Cobbler Raspberry Pi T.
  • Filferros de pont masculí / femení
  • LED de 5 mm
  • Resistències
  • Fusta i eines
  • Servomotor
  • GrovePi +

Podeu comprar aquests articles en línia (Ali express, Amazon, kiwi electrònica …) o a les botigues locals.

A la llista de materials es mostra una llista detallada de les peces amb un enllaç a les botigues.

Pas 2: cablejat

Cablejat
Cablejat
Cablejat
Cablejat

Vaig utilitzar Fritzing per al cablejat per tenir una bona visió general de com s’hauria de fer el cablejat. Jo mateix vaig utilitzar un GrovePi + per a 2 dels meus sensors. Si teniu previst fer-ho sense un GrovePi +, seguiu l’esquema Fritzing. Els sensors I no funcionen per a vosaltres, proveu d'utilitzar diferents pins.

Podeu trobar el fitxer Fritzing a continuació.

Pas 3: base de dades mitjançant MySQL

Base de dades mitjançant MySQL
Base de dades mitjançant MySQL

Una de les tasques més essencials que vam haver d’implementar va ser la connexió amb una base de dades MySQL.

Cada vegada que un sensor obté lectures o s’encén un llum, veureu aquests canvis a la base de dades.

A continuació, la base de dades envia aquestes dades al lloc web perquè l'usuari també les pugui veure allà.

A continuació podeu trobar el meu fitxer.xml, on teniu una visió general del funcionament de la base de dades, però primer heu d’instal·lar MySQL i el matràs al Raspberry Pi.

La codificació dels sensors es va fer mitjançant pycharm, així que assegureu-vos que també estigui instal·lat (al vostre ordinador).

Primer heu de comprovar si hi ha actualitzacions i instal·lar paquets, com aquest:

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

Ara utilitzarem un entorn virtual:

me @ my-rpi: ~ $ python3 -m pip install --upgrade pip setuptools wheel 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

Us hauria de dir que mariadb.service està actiu.

Ara, a pycharm, aneu a VCS> Importa des del control de versions> GitHub en clone

A continuació, configureu la configuració de desplegament per al directori que acabeu de fer, per exemple. / home / jo / projecte1.

Un cop fet això, aneu a la configuració de l'intèrpret i configureu l'entorn virtual que acabeu de crear, per exemple. / home / jo / projecte / env / bin / python. També s’ha d’emplenar el mapatge de camins.

Si heu fet tot això, la base de dades ja hauria d'executar-se.

sudo systemctl estat mysql

Ara hem de crear usuaris per a la nostra base de dades, així:

sudo mariadb

CREA USUARI 'project-admin' @ 'localhost' IDENTIFICAT PER 'adminpassword'; CREA USUARI 'project-web' @ 'localhost' IDENTIFICAT PER 'webpassword'; CREA USUARI 'project-sensor' @ 'localhost' IDENTIFICAT PER 'sensorpassword'; Projecte CREATE DATABASE;

CONCEDIU TOTS ELS PRIVILEGIS DEL projecte. * A 'project-admin' @ 'localhost' AMB OPCIÓ DE CONCESSIÓ; CONCESSIÓ DE SELECCIÓ, INSERIMENT, ACTUALITZACIÓ, SUPRIMIT del projecte. * A 'project-web' @ 'localhost'; CONCESSIÓ DE SELECCIÓ, INSERT, ACTUALITZACIÓ, SUPRIMIT del projecte. * A 'project-sensor' @ 'localhost'; PRIVILEGIS DE FLUSH;

Ara per veure la nostra base de dades a pycharm hem de fer una connexió.

Ho podem fer anant a Veure> Eina Windows> Base de dades i fent clic al botó verd "més".

Font de dades> MySQL i feu clic (si n'hi ha) al botó Descarregar controlador que apareix.

A continuació, aneu a SSH / SSL i comproveu SSH. Empleneu l’amfitrió / usuari / contrasenya per al pi i utilitzeu el port 22 si encara no l’heu emplenat.

Si voleu que pycharm recordi la vostra contrasenya, marqueu la casella de selecció "Recorda la contrasenya".

A la pestanya "General", empleneu localhost a l'amfitrió, projecteu a Base de dades i utilitzeu project-admin amb la contrasenya per poder provar la connexió.

Per fer ara la base de dades utilitzable, cal que executeu el fitxer.sql que col·loqueu a continuació. Proveu d'utilitzar l'opció d'importació; si no podeu importar un fitxer de bolcat, heu d'afegir les taules manualment.

Un cop fet això, heu de trobar el directori conf amb els dos fitxers.service. Allà canvieu cada seb que trobeu amb el nom de l'usuari que utilitzeu al vostre pi. A més, el grup ha de ser www-data.

El següent pas és iniciar aquests serveis al vostre pi, així:

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

sudo systemctl daemon-recoad

sudo systemctl iniciar el projecte- *

sudo systemctl status project- *

Hauríeu de veure dos serveis actius quan tot vagi d’acord amb el previst.

L'últim pas és habilitar nginx.

Primer comproveu si hi ha apache2 al vostre pi, si teniu instal·lat, suprimiu-lo o desactiveu-lo.

Al fitxer nginx primer heu de canviar uwsgi_pass i després executar aquestes ordres.

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 reinicieu nginx.service

sudo systemctl status nginx.service

Nginx hauria d’estar actiu i en execució. Si tot és correcte, ara podeu navegar al vostre pi. Al principi veureu "Hello world", però encara heu de canviar el contingut d'aquest fitxer amb el meu codi a continuació.

Podeu habilitar els serveis perquè s'executin automàticament quan s'iniciï el pi.

Quan ho feu, assegureu-vos de posar almenys 1 casa amb adreça a la base de dades. Podeu fer-ho amb una senzilla inserció a.

Pas 4: Codificació

Codificació
Codificació
Codificació
Codificació

Podeu descarregar el codi a través de Github:

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

El codi dels sensors s'inclou al fitxer sensor.py.

No oblideu canviar el meu nom pel vostre (o per l'usuari del que utilitzeu al vostre pi) als fitxers de servei perquè puguin funcionar correctament i col·locar el meu codi als fitxers ja existents al vostre Pycharm.

Pas 5: Habitatge

Habitatge
Habitatge
Habitatge
Habitatge
Habitatge
Habitatge
Habitatge
Habitatge

Vaig fer un dibuix ràpid de com volia casa meva, però la vostra pot semblar completament diferent. Només heu d’assegurar-vos que teniu un tot perquè el servo pugui obrir i tancar una finestra.

He utilitzat principalment un trepant petit i una serra per tallar la fusta. També em vaig assegurar que les parets fossin prou gruixudes com per poder col·locar el meu servo a l'interior.

Quan hàgiu acabat el disseny i el servo estigui al seu lloc, només cal que connecteu els sensors i que col·loqueu el pi a l'interior de la casa i ja estigueu a punt.

Com he esmentat abans, la vostra casa pot semblar exactament igual que la meva, només heu de deixar lloc al servo i a la finestra.

Finalment, heu acabat amb el projecte. Espero que aquesta guia sigui prou clara perquè vosaltres també pugueu fer una casa intel·ligent fantàstica com jo.

Molta sort.

Recomanat: