La Maison Pythonic, c'est un projet didactique accompagnant le livre "Python, Raspberry-Pi et Flask" et dont le but est
- d'aborder la capture de données avec des objets Internet (ESP8266 sous MicroPython),
- la transmission télémétrique avec Mosquitto MQTT,
- le stockage en base de données (SQLite3 et Python),
- le rendu sous forme de pages HTMLs avec Flask (Python).
Le tout en utilisant un Raspberry-Pi comme élément central tout en respectant les limites de ses ressources.
15 nov. 2018 : Le code source correspondant au livre est disponible dans l'archive la-maison-pythonic-(master-livre).zip .
15 dec. 2018 : correction dans push-to-db/setup.sh
02 Fev. 2019 : Le block Switch supporte maintenant la souscription MQTT en javascript. Voir l'annexe Activer Mosquitto WebSocket pour configurer le broker de façon adéquate.
25 Fev. 2019 : Ajout d'un objet de de commande de chaufferie chaufferie-oled
Capturez des données télémétriques et réaliser des tableaux de bord WEB
- Rasperry-Pi avec MQTT, Flask, SQLite, Python
- ESP8266 avec MicroPython, montages
- Pour les Makers, les développeurs, les curieux en électronique
Ce livre s'adresse à toute personne qui souhaite découvrir comment capturer des données télémétriques d'une maison (température, humidité, pression atmosphérique, luminosité) et les présenter dans une interface web sous forme de tableaux de bord. L'auteur s'appuie pour cela sur les possibilités offertes par le langage Python, le nano-ordinateur Raspberry Pi et le framework Flask. Bien qu'appliqué au Raspberry Pi, le contenu du livre est suffisamment universel pour être exploité sur d'autres plateformes telles que des ordinateurs.
Pour tirer le meilleur profit de la lecture de ce livre, des notions de programmation orientée objet et quelques rudiments sur le langage Python et en électronique sont nécessaires. Une première expérience avec le Raspberry Pi et est également souhaitée.
Les points technologiques du livre sont isolés et vulgarisés avant d'être intégrés dans un projet global qui sert de fil conducteur à la prise en main et l'exploitation des différentes technologies étudiées. L'auteur commence par présenter la collecte de données à l'aide de composants basés sur un microcontrôleur ESP8266 programmé avec MicroPython. Il détaille ensuite la centralisation de ces données à l'aide d'un broker MQTT fonctionnant sur un Raspberry Pi. Dans la suite du livre, le lecteur découvre comment une base de données SQLite 3 permet d'offrir un stockage persistant des données et comment elle peut être exploitée par une application Flask pour produire des tableaux de bord sur mesure.
À l'issue de ce livre, le lecteur disposera de bases solides pour créer sereinement une grande variété de solutions, plus ou moins sophistiquées, en fonction de ses besoins.
Plus d'information sur le livre sur le site de l'auteur (MC Hobby) ou le site de l'éditeur (Editions ENI)
Le code source de ce GitHub correspondant au livre est disponible dans l'archive la-maison-pythonic-(master-livre).zip .
Voir les notes d'installation rapide
Vous trouverez facilement nécessaire chez les distributeurs Adafruit. Voici une proposition de lien:
- Feather ESP8266 Huzzah - plateforme certifiée distribuée dans le monde entier!
- LED et Bouton, résistance pull-up et déparasitage logiciel
- Potentiomètre sur l'entrée analogique
- MCP23017 pour ajouter des entrées sorties
- ADS1115 pour ajouter des entrées analogiques
- TMP36 pour mesurer la température (en analogique)
- DS18B20 (et DS18B20 water-proof ) mesure de température (numérique, OneWire)
- Senseur PIR pour détecter les mouvements à proximité
- Contact magnétique pour détecter l'ouverture d'une porte
- DHT11 (ou DHT22 ) pour la mesure d'humidité
- AM2315 senseur d'humidité et T° weather-proof.
- Senseur à Effet Hall pour la détection de présence de champs magnétique.
- TSL2561 pour la mesure de luminosité
- BME280 pour la mesure de pression Atmosphérique, Température, Humidité
- BMP280 pour la mesure de pression Atmosphérique et T°
- RELAIS module Relais ou Bi-Relais pour commander des appareils.
- PHOTO-RESISTANCE
Les deux images suivantes présentent les éléments principaux du projet. Tous les détails sont disponibles dans Livre.
Les tableaux de bords (projet "Dashboard", Python + Flask + Materialize)
- Installation Rapide
- Mode Hors Ligne
- MQTT Track - suivre les messages sur le broker MQTT.
- Mosquitto WebSocket