Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46
Pour un projet scolaire, nous devions créer un appareil IoT avec un site Web pour visualiser les informations recueillies de manière agréable. J'ai choisi de créer une station météo alimentée par un Raspberry Pi 3 exécutant Flask pour le site Web réactif, MySQL (MariaDB) pour ma base de données et un script python pour collecter des informations avec tous mes capteurs. Cela m'a pris environ 2 semaines du début à la fin pour terminer.
Nous avons été encouragés à créer un instructable pour partager nos progrès avec le reste de la communauté du bricolage, alors le voici !
Étape 1: Sélection des pièces, outils et matériaux
Je devais d'abord déterminer quels types de capteurs étaient essentiels à une station météo. J'ai décidé que je voulais mesurer toutes les données suivantes:
- Température
- Pression de l'air
- Humidité
- Vitesse du vent
- L'indice UV
Voici tous les outils, matériaux et pièces que j'ai utilisés
Les pièces:
- DHT22/AM2302 pour les lectures de température et d'humidité. (15 €)
- Adafruit BMP280 pour la pression barométrique et la température. (12 euros)
- Adafruit SI1145 pour la mesure de l'indice UV. (10 €)
- Anémomètre analogique Adafruit pour mesurer la vitesse du vent (50 EUR)
- Un MCP3008 pour convertir les signaux analogiques en numérique.
- Résistance 10kOhm comme pull-up pour mon AM2302.
- Un adaptateur 9V pour « alimenter » l'anémomètre
- Un adaptateur 5V pour le Raspberry Pi
- Raspberry Pi 3 (N'importe quel Pi devrait suffire)
Matériaux:
Un récipient en plastique pour ranger tout et le rendre résistant à la pluie
Outils:
- Fer à souder et étain
- Multimètre
- Silicone
- du ruban adhésif
Donc, au total, tous les capteurs m'ont coûté environ 85 euros, ce qui est assez raide, mais je voulais vraiment inclure un compteur de vitesse du vent approprié, donc je pense que cela en vaut la peine.
Vous pouvez trouver une liste plus détaillée avec les magasins où vous pouvez tout acheter, dans le pdf ci-dessous:)
Étape 2: connexion de notre matériel
Bien sûr, nous allons devoir connecter nos capteurs à notre Raspberry Pi. Ci-dessus, vous pouvez voir le schéma fritzing que vous pouvez suivre pour tout connecter correctement.
Sur le schéma, vous pouvez voir qu'une batterie 9V est utilisée comme source d'alimentation pour notre anémomètre, elle est mieux utilisée pour les tests uniquement car elle ne durera pas trop longtemps, vous pouvez remplacer la batterie 9V pour n'importe quelle source d'alimentation 7-12V que vous choisir.
Nos capteurs SI1145 et BMP280 seront tous deux contrôlés à l'aide du protocole I2C car c'est le plus facile à utiliser et qui nécessite moins de fils.
L'anémomètre sur le schéma est représenté ici comme un LDR car il a un câblage à peu près identique à celui de l'anémomètre et je n'ai pas pu trouver un véritable anémomètre à mettre sur mon schéma fritzing:)
Étape 3: Connecter tout: Configurer le Pi
Tout d'abord, nous devons nous assurer que nous sommes connectés à Internet.
Pour ce faire dans le terminal vous pouvez aller dans votre fichier wpa_supplicant en exécutant la commande suivante: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Dans le fichier, vous pouvez ajouter ceci:
network={ssid= "Your_Wifi_SSID" psk="Your_Wifi_Password" key_mgmt=WPA-PSK
}
Vous pouvez également choisir de définir votre adresse IP sur statique pour un accès plus facile à l'avenir. Pour ce faire, vous devez accéder au fichier dhcpcd.conf en exécutant cette commande: sudo nano /etc/dhcpcd.conf
Ajoutez ceci dans le fichier:
interface wlan0static ip_address=192.168.0.100/24
Ensuite, nous allons nous assurer que les packages déjà installés sur notre Pi sont entièrement mis à jour:
sudo apt-get update && sudo apt-get upgrade
Cela peut prendre un certain temps, alors ne vous inquiétez pas
Vous devrez activer le protocole I2C et SPI dans la configuration raspi. Vous pouvez le faire en exécutant cette commande:
sudo raspi-config
Ensuite, allez dans les options d'interfaçage et activez les deux, I2C et SPI
Vous devez d'abord créer un répertoire dans lequel vous souhaitez mettre votre projet (nous le nommerons 'weatherstation'):
station météo cd ~ mkdirstation météo cd
Ensuite, nous configurons notre environnement virtuel python3:
python3 -m pip install --upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env/bin/activatepython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-connector -python-rf
Ensuite, nous devrons installer d'autres packages nécessaires pour que tout fonctionne correctement:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Maintenant, nous allons faire notre base de données:
Cependant, nous devons encore configurer notre base de données. Vous pouvez le faire en exécutant le fichier code/sql situé dans le dossier 'sql' comme ceci:
sudo mariadb < sql/db_init.sql
La requête SQL créera les tables dont nous avons besoin et créera également quelques utilisateurs pour sécuriser un peu plus notre base de données.
Cela mettra également des exemples de données d'historique dans notre base de données pour s'assurer que notre site Web affiche tout correctement lorsqu'il n'y a pas encore de données réelles recueillies.
Pour installer Adafruit_GPIO et MyPyDHT, vous devrez faire d'autres choses. Revenez d'abord dans votre dossier d'utilisation, puis:
git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py installer
cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install
Étape 4: Logiciel / Code
Nous devons configurer le back-end de la station météo, qui comprend:
- Une base de données mariadb pour stocker mes lectures de capteurs et quelques autres choses mineures- Un service de flacon pour exécuter le site Web.- Un autre service exécutant le fichier Python qui lit tous les capteurs. Ci-dessus, vous pouvez voir ma configuration de base de données très simple. La table des utilisateurs est inutile, mais comme je voulais un système de connexion car j'ai (même si toutes les données sont les mêmes pour tous les utilisateurs) décidé de l'inclure dans ma base de données.
Vous pouvez aller de l'avant et cloner le code de mon projet de Github dans votre dossier de projet. Accédez à votre dossier utilisateur et exécutez:git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/
Ensuite, accédez au dossier conf dans Weatherstation et à tous les fichiers du dossier.
Remplacez toutes les occurrences de 'USERNAME' par votre nom d'utilisateur
Vous devrez également copier les deux fichiers.service dans systemd et les tester comme ceci:
sudo cp conf/weatherstation-*.service /etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl démarrer weatherstation-flask.servicesudo systemctl démarrer weatherstation-sensor.service
sudo systemctl status station météo-*
Nous devons ensuite modifier la configuration nginx.
sudo cp conf/nginx /etc/nginx/sites-available/weatherstationsudo rm /etc/nginx/sites-enabled/defaultsudo ln -s /etc/nginx/sites-available/weatherstation /etc/nginx/sites-enabled/weatherstationsudo systemctl redémarrer nginx.servicesudo systemctl status nginx.service
Si tout s'est bien passé, vous devriez pouvoir exécuter ceci et imprimer du code html dans le terminal:
wget -qO - hôte local
Tout devrait bien fonctionner maintenant. Vous pouvez surfer sur l'adresse IP de votre Raspberry Pi que nous avons définie au début et être accueilli par un écran de connexion.
Étape 5: L'enceinte
Maintenant que tout fonctionne, nous devons mettre le tout dans quelque chose.
J'ai choisi une simple boîte en plastique avec un couvercle transparent. L'anémomètre est monté dessus, ainsi qu'un petit conteneur secondaire qui contient les capteurs DHT22 et BMP280.
Ces capteurs sont montés à l'intérieur d'un conteneur séparé car ils doivent être à l'air libre (sans pluie), mais le raspberry pi n'a pas besoin de l'être.
Comme vous pouvez le voir, j'ai ajouté du silicone sur les bords pour le rendre étanche. J'ai également percé des trous dans le récipient supérieur pour y faire entrer de l'air frais.
J'espère que vous avez apprécié mon guide sur la façon de construire une station météo, c'est peut-être un peu approximatif puisque c'est la première fois que j'écris un guide comme celui-ci, mais j'espère que vous l'avez quand même aimé:)
Conseillé:
Table d'extrémité de cube infini réactif avec son LED : 6 étapes (avec photos)
Table d'extrémité de cube infini réactif avec son LED : Wow ! Ouah ! Quel effet sympa ! -- Ce sont certaines des choses que vous entendrez après avoir terminé le guide. Un cube infini complètement époustouflant, magnifique, hypnotique et réactif au son. Il s'agit d'un projet de soudure modestement avancé, il m'a fallu environ 12 hommes
Station météo NaTaLia : Station météo à énergie solaire Arduino bien faite : 8 étapes (avec photos)
Station météo NaTaLia : Station météo à énergie solaire Arduino faite de la bonne manière : après 1 an de fonctionnement réussi sur 2 emplacements différents, je partage mes plans de projet de station météo à énergie solaire et j'explique comment elle a évolué en un système qui peut vraiment survivre sur une longue période périodes de l'énergie solaire. Si vous suivez
Station météo IoT avec RPi et ESP8266 : 10 étapes
Station météo IoT avec RPi et ESP8266 : dans les didacticiels précédents, nous avons joué avec NodeMCU, des capteurs et appris à capturer et à enregistrer des données sur ThingSpeak (une plate-forme Internet des objets (IoT) qui vous permet de collecter et de stocker des données de capteurs dans le cloud et développer des applications IoT):IOT
Station météo ESP8266 qui affiche des données sur un site Web : 7 étapes
Station météo ESP8266 qui affiche des données sur un site Web : Remarque : des parties de ce didacticiel peuvent être disponibles au format vidéo sur ma chaîne YouTube - Tech Tribe. Dans cette instructable, je vais montrer comment créer une station météo qui envoie directement des données à votre site Web . Par conséquent, vous aurez besoin de votre propre domaine (Ex :
Station météo Acurite 5 en 1 utilisant un Raspberry Pi et Weewx (d'autres stations météo sont compatibles) : 5 étapes (avec photos)
Station météo Acurite 5 en 1 utilisant un Raspberry Pi et Weewx (d'autres stations météo sont compatibles) : Lorsque j'ai acheté la station météo Acurite 5 en 1, je voulais pouvoir vérifier la météo chez moi pendant mon absence. Quand je suis rentré à la maison et que je l'ai configuré, j'ai réalisé que je devais soit connecter l'écran à un ordinateur, soit acheter leur hub intelligent