Table des matières:

Accueil_X : 5 étapes
Accueil_X : 5 étapes

Vidéo: Accueil_X : 5 étapes

Vidéo: Accueil_X : 5 étapes
Vidéo: L'ACCUEIL DU CLIENT (Prise en charge et installation) 2024, Juillet
Anonim
Accueil_X
Accueil_X

Je suis un étudiant à Howest Kortrijk qui étudie les nouveaux médias et les technologies de la communication (NMCT).

Nous devions tous faire un projet basé sur la framboise et/ou l'Arduino. Nous avons dû utiliser des capteurs et des bases de données pour afficher les données sur un site Web, et c'est à ce moment-là que j'ai eu l'idée de créer une mini maison intelligente.

Avec la maison intelligente, vous pourrez voir toutes les lectures des capteurs sur le site Web.

Dans ce instructable, je vais vous guider à travers chaque étape afin que vous puissiez recréer ce projet pour vous-même.

Étape 1: Matériaux: de quoi avez-vous besoin

  • Tarte aux framboises
  • DHT22
  • Grove - Capteur de qualité de l'air
  • Grove - Capteur de gaz (MQ2)
  • Planche à pain
  • Cordonnier Framboise Pi T
  • Fils de cavalier mâle/femelle
  • LED de 5 mm
  • Résistances
  • Bois et outils
  • Servomoteur
  • GrovePi+

Vous pouvez acheter ces articles en ligne (Ali express, amazon, kiwi electronics…) ou dans vos magasins locaux.

Une liste détaillée des pièces avec un lien vers les magasins est donnée ci-dessous dans la nomenclature.

Étape 2: Câblage

Câblage
Câblage
Câblage
Câblage

J'ai utilisé Fritzing pour le câblage afin d'avoir un bon aperçu de la façon dont mon câblage doit être fait. J'ai moi-même utilisé un GrovePi+ pour 2 de mes capteurs. Si vous prévoyez de le faire sans GrovePi+, suivez le schéma Fritzing. Les capteurs I ne fonctionnent pas pour vous, essayez d'utiliser des broches différentes.

Vous pouvez trouver le fichier Fritzing ci-dessous.

Étape 3: Base de données utilisant MySQL

Base de données utilisant MySQL
Base de données utilisant MySQL

L'une des tâches les plus essentielles que nous avons dû implémenter était la connexion avec une base de données MySQL.

Chaque fois qu'un capteur obtient des lectures ou qu'un voyant s'allume, vous verrez ces changements dans la base de données.

La base de données envoie ensuite ces données au site Web afin que l'utilisateur puisse également les voir là-bas.

Ci-dessous vous pouvez trouver mon fichier.xml où vous avez un aperçu du fonctionnement de la base de données, mais vous devez d'abord installer MySQL et flask sur le Raspberry Pi.

Le codage des capteurs s'est fait via pycharm, alors assurez-vous qu'il est également installé (sur votre ordinateur).

Vous devez d'abord vérifier les mises à jour et installer les packages, comme ceci:

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

Nous allons maintenant utiliser un environnement virtuel:

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

Il devrait vous dire que mariadb.service est actif.

Maintenant, dans pycharm, accédez à VCS > Importer à partir du contrôle de version > GitHub en clone

Configurez ensuite la configuration de déploiement pour le répertoire que vous venez de créer, ex. /accueil/moi/projet1.

Après cela, allez dans les paramètres de l'interpréteur et configurez l'environnement virtuel que vous venez de créer, ex. /home/me/project/env/bin/python. La cartographie des chemins doit également être remplie.

Si vous avez fait tout cela, la base de données devrait déjà être en cours d'exécution.

statut sudo systemctl mysql

Nous devons maintenant créer des utilisateurs pour notre base de données, comme ceci:

sudo mariadb

CRÉER UN UTILISATEUR 'project-admin'@'localhost' IDENTIFIÉ PAR 'adminpassword'; CRÉER UN UTILISATEUR 'project-web'@'localhost' IDENTIFIÉ PAR 'webpassword'; CRÉER UN UTILISATEUR 'project-sensor'@'localhost' IDENTIFIÉ PAR 'sensorpassword'; projet CRÉER UNE BASE DE DONNÉES;

ACCORDER TOUS LES PRIVILÈGES SUR project.* to 'project-admin'@'localhost' AVEC GRANT OPTION;GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; PRIVILÈGES DE FLASH;

Maintenant, pour voir notre base de données dans pycharm, nous devons établir une connexion.

Nous pouvons le faire en allant dans Affichage > Fenêtres d'outils > Base de données et en cliquant sur le bouton vert "plus".

Source de données > MySQL et cliquez (le cas échéant) sur le bouton Télécharger le pilote qui s'affiche.

Ensuite, allez dans SSH/SSL et vérifiez SSH. Remplissez hôte/utilisateur/mot de passe pour le pi et utilisez le port 22 s'il n'est pas encore renseigné.

Si vous voulez que pycharm se souvienne de votre mot de passe, cochez la case "Mémoriser le mot de passe".

Dans l'onglet "Général", remplissez localhost dans host, project dans Database et utilisez project-admin avec le mot de passe pour pouvoir tester la connexion.

Pour maintenant rendre la base de données utilisable, vous devez exécuter le.sql que je place ci-dessous. Essayez d'utiliser l'option d'importation, si vous ne pouvez pas importer un fichier de vidage, vous devez ajouter les tables manuellement.

Après cela, vous devez trouver le répertoire conf avec les deux fichiers.service. Là, changez chaque seb que vous trouvez avec le nom de l'utilisateur que vous utilisez sur votre pi. De plus, le groupe doit être www-data.

L'étape suivante consiste à démarrer ces services sur votre pi, comme ceci:

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

sudo systemctl démon-recharger

projet de démarrage sudo systemctl-*

projet d'état sudo systemctl-*

Vous devriez voir deux services actifs lorsque tout se passe comme prévu.

La dernière étape consiste à activer nginx.

Vérifiez d'abord apache2 sur votre pi, si vous l'avez installé, supprimez-le ou désactivez-le.

Dans le fichier nginx, vous devez d'abord modifier uwsgi_pass, puis exécuter ces commandes.

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 redémarrer nginx.service

état sudo systemctl nginx.service

Nginx doit être actif et en cours d'exécution. Si tout est correct, vous pouvez maintenant surfer sur votre pi. Vous verrez d'abord "Hello world" mais vous devez toujours modifier le contenu de ce fichier avec mon code ci-dessous.

Vous pouvez activer les services pour qu'ils s'exécutent automatiquement au démarrage du pi.

Lorsque vous avez fait tout cela, assurez-vous d'avoir mis au moins 1 maison avec adresse dans la base de données. Vous pouvez le faire avec une simple insertion dans.

Étape 4: Codage

Codage
Codage
Codage
Codage

Vous pouvez télécharger le code via Github:

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

Le code des capteurs est inclus dans le fichier sensor.py.

N'oubliez pas de changer mon nom en le vôtre (ou l'utilisateur que vous utilisez sur votre pi) dans les fichiers de service afin qu'ils puissent fonctionner correctement et placer mon code dans les fichiers déjà existants dans votre Pycharm.

Étape 5: Logement

Logement
Logement
Logement
Logement
Logement
Logement
Logement
Logement

J'ai fait un dessin rapide de la façon dont je voulais ma maison, mais la vôtre peut être complètement différente. Il faut juste s'assurer d'avoir un tout pour que le servo puisse ouvrir et fermer une fenêtre.

J'ai principalement utilisé une petite perceuse et une scie pour couper le bois. Je me suis également assuré que les murs étaient suffisamment épais pour que je puisse placer mon servo à l'intérieur.

Lorsque vous avez terminé votre conception et que le servo est en place, il vous suffit de connecter les capteurs et de placer le pi à l'intérieur de la maison et vous êtes prêt à partir.

Comme je l'ai mentionné précédemment, votre maison peut ressembler exactement à la mienne, il vous suffit de faire de la place pour le servo et la fenêtre.

Enfin, vous avez terminé avec le projet. J'espère que ce guide est suffisamment clair pour que vous puissiez vous aussi créer une maison intelligente géniale comme je l'ai fait.

Bonne chance.

Conseillé: