Python, Raspberry Pi et Flask - Capturez des données témétriques et réalisez des tableaux de board Web
zoom_out_map
chevron_left chevron_right

Python, Raspberry Pi et Flask - Capturez des données télémétriques et réalisez des tableaux de board Web (2ieme edition)

Capturez des données télémétriques et réaliser des tableaux de bord WEB

  • 2ième édition
  • Rasperry-Pi avec MQTT, Flask, SQLite, Python
  • ESP32 & ESP8266 avec MicroPython, montages
  • InfluxDB & Grafama
  • Pour les Makers, les développeurs, les curieux en électronique
34,00 € (TVA incl.) 32,08 € (TVA excl.)
TVA incluse
check Disponible
Paiements sécurisés
Les paiements sont sécurisés par LyraCollect, une société de collecte de paiements française
Multiples solutions de livraison
Il est possible de se faire livrer chez soi, en point relais ou retirer sur rendez-vous chez MCHobby
Colis emballés avec soin et efficacité
Nous préparons, emballons et expédions vos commandes avec un grand respect et un grand soin.

Bonjour,

Je vous présente la seconde édition de "Python, Raspberry Pi et Flask" qui fait aussi la part belle à MicroPython pour ESP32 / ESP8266 et MQTT.

Cet ouvrage didactique vise l'apprentissage de différentes bases technologiques par l'intermédiaire de l'apprentissage isolé puis la réalisation -étape par étape- d'un projet mené de bout en bout.

En vous souhaitant une bonne Lecture,
Dominique

Que va t'on faire dans cet ouvrage?

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.
Les éléments du projet
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.

Des éléments sont bien entendu disponibles en téléchargement sur le site des Editions ENI (www.editions-eni.fr) ainsi que sur le GitHub du projet.

2ieme édition: quoi de neuf ?

Cette deuxième édition apporte les nouveautés suivantes:

  • Support du Rasberry-Pi 4
  • Support de l'ESP32 (toujours avec MicroPython)
  • Objet de capture de données environnementales (avec ccs811, bme280)
  • Objet de contrôle avec afficheur OLED
  • Découverte des bases de données TimeSeries (InfluxDB)
  • Couplage du broker avec InfluxDB (récupération des données du projet)
  • Découverte de l'outil Grafana pour la présentation des données sous forme de graphique.

Un projet autour du Raspberry-Pi

Cet ouvrage s'appuie sur un Raspberry-Pi où plusieurs services (broker, persistance des données, serveur Web) seront installés pour supporter le projet dans son ensemble. Des choix techniques seront donc opérés pour faire cohabiter ce petit monde sur les ressources limitées du Raspberry-Pi (avec sa carte SD).

Un pack Raspberry-Pi de base (Rapsberry-Pi, alimentation, carte microSD) est suffisant pour débuter le projet. Un DINrPlate permettra ensuite d'enfouir le Raspberry-Pi dans un boîtier.

Efin, quelques composants complémentaires autour d'un Feather ESP8266 (voir liste détaillée plus loin) permettra de réaliser facilement des captures de donnée télémétrique.  

Créer un réseau télémétrique

Le chapitre sur le broker MQTT permet de se familiariser avec la technologie MQTT. Une technologie simple, robuste et sans administration. MQTT est malheureusement méconnu par de nombreux professionnels en développement... c'est pourtant un outil précieux à faible coût.

Description du broker MQTT
C'est donc l'opportunité d'apprendre à maîtriser le sujet. Le temps investit est rapidement rentable et son utilité dans les domaines privés et professionnels devient alors évident.

Après un peu de vulgarisation sur le sujet, histoire de se sentir à l'aise avec la technologie et d'éventuels choix futurs, le livre se penche sur l'installation du Broker MQTT Eclipse Mosquitto.

Grâce à Eclipse, vous transformerez votre Raspberry-Pi en Broker MQTT et exploiterez ce dernier en ligne de commande, en Python et MicroPython. Centre nerveux du projet "La Maison Pythonique", il servira d'autoroute d'information entre les différents éléments du projet. 

MicroPython sur ESP32 & ESP8266

Logo historique de MicroPythonLogo MicroPython

L'ESP est souvent utilisé avec l'environnement de programmation Arduino IDE. Dans cet ouvrage, l'auteur a utilisé un seul et unique langage à travers tout l'ouvrage. Les ESP8266 sont donc utilisés avec le langage Micro Python, une version de Python 3 pour micro contrôleur. Très facile d'emploi, il permet de stocker des scripts Python dans sa mémoire Flash, pas de besoin de compilateur ou autre interface, branchez l'ESP8266 sur le port USB de votre Raspberry-Pi et c'est parti.

Ce livre est donc aussi un mode d'emploi pour MicroPython sur ESP32 & ESP8266. Avec 2 chapitres et 180 pages dédiés à l'ESP sous MicroPython, vous y trouverez tout ce dont vous aurez besoin: flasher le firmware, créer vos premiers scripts, connecter l'ESP sur un réseau WiFi, les montages électroniques fondamentaux, l'exploitation d'une série de senseurs parmi les plus connus. A la fin du deuxième chapitre, vous disposerez de 6 objets IoT équipés de multiples senseurs prêt à envoyer des données vers le broker MQTT.

Grâce aux explications didactiques et revue des essentiels de l'électronique avec ESP8266, vous apprendrez comment dépasser les limites techniques de l'ESP8266 pour augmenter le nombre d'entrées/sorties et offrir des entrées analogiques.

Le livre exploite également la liaison WiFi de l'ESP8266 en mode Access-Point (AP) ou mode station (STA), REPL et WebREPL n'aurons plus de secret pour vous.

L'auteur du livre continue par ailleurs d'alimenter régulièrement son GitHub ESP8266-uPy avec de nouveaux pilotes MicroPython pour supporter la communauté.

Du matériel de qualité et facilement accessible

Une des préoccupation de l'ouvrage est d'utiliser un matériel standardisé pour pouvoir facilement se fournir et réaliser les projets en toute sérénité.

Les modules ESP32 & ESP8266, breakouts BME280, CCS811, capteur PIR, etc sont faciles à trouver le Internet.
Par contre, suivant votre source d'approvisionnement les breakouts et senseurs ne seront peut être pas les mêmes d'une livraison à l'autre et les plateformes ESP seront celles du jour à disponible sur les marchés de Shenzhen. Rien qui puisse vous faciliter la vie!

L'ouvrage utilise du matériel Adafruit Industries pour, justement, éviter ce type de désagrément. De qualité irréprochable et sans surprise de production, ce matériel distribué dans le monde entier permettra de réaliser les montages sans prise de tête.

Le livre reprend l'utilisation et le montage des composants suivants:

  • Feather ESP8266 Huzzah - module ESP8266 certifiée monté sur une plateforme de prototypage en passe de devenir le nouveau standard des projets embarqués à base de micro contrôleur.
    Plateforme Feather ESP8266 (ESP-12) d'Adafruit
  • Feather ESP32 Huzza - grand frère de l'ESP8266, l'ESP32 est aussi un microcontrôleur Wifi mais nettement plus puissant.
  • LED et Bouton, résistance pull-up et déparasitage logiciel
  • Potentiomètre qui permet de produire une tension analogique.
  • MCP23017 est un composant permettant d'ajouter 16 entrées/sorties sur un micro contrôleur. Encore mieux, il est possible de chaîner plusieurs MCP23017 ensembles.
  • ADS1115 permet d'ajouter des entrées analogiques 3.3V sur l'ESP8266 qui en manque cruellement.
  • TMP36 pour mesurer la température. Le TMP36 est un senseur analogique fait partie des kit de base ARDX.
  • DS18B20 (et DS18B20 water-proof) mesure de température très populaire dans le monde des makers (numérique, OneWire)
  • Senseur PIR est un senseur Infrarouge similaire à ce que l'on trouve dans les systèmes d'alarme. Ce senseur permet de détecter les mouvements à proximité.
  • Contact magnétique qui est très similaire au fonctionnement d'un interrupteur, ce type de contact permet de détecter l'ouverture d'une porte, d'un tiroir ou d'un coffre.
  • DHT11 pour la mesure le degré d'humidité relative de l'air (entre 20 et 80%).
  • CCS811, un capteur environnemental permettant de relever la concentration de CO2 et de composer organiques volatiles.
  • Senseur à Effet Hall pour la détection de présence de champs magnétique. Ce senseur peut être utilisé partout où le montage d'un interrupteur mécanique est impossible. Il peut servir a compter le nombre de tour d'une roue, ou le niveau d'une cuve (en plaçant l'aimant sur un flotteur). Voyez nos notes de mise en oeuvre sur le Wiki de MCHobby.
  • TSL2561 (et TSL2591) qui permet de mesurer la luminosité en Lux. Avec une réponse très proche de l'oeil humain, ce senseur pourra relever l'état d'ensoleillement (ou éclairage) avec une bonne fidélité.
  • BME280 est un senseur de Bosch permettant de faire des mesure de pression Atmosphérique, Température, Humidité. Couteau Suisse des mesures environnemental, la gamme des senseurs BME/BMP de Bosch est très populaire dans le monde professionnel et amateur.
  • BMP280 pour la mesure de pression Atmosphérique et T°. Petit frère du BME280 et successeur du célèbre BMP180 (déclassé par Bosch en ~2016)
  • RELAIS module Relais ou Bi-Relais pour commander des appareils électriques (ou tension plus élevée).
  • PHOTO-RESISTANCE permet de mesurer la luminosité de façon assez sommaire (il fait sombre ou clair) mais cela est suffisant dans de nombreux cas de figure.
Pack de composants du libre "Python, Raspberry-Pi et Flask"Pack de composants : si vous désirez démarrer rapidement la découverte du projet sans vous prendre la tête avec l'achat des composants, nous proposons un pack prêt à l'emploi qui accompagne l'ouvrage.

Compatible avec d'autres ESP32 / ESP8266 : bien entendu, vous pourrez adapter les montages pour NodeMCU et WeMos D1 Mini. Certains développement ont également été conduits sur la carte d'évaluation ESP8266 d'Olimex.
Le livre explique également comment flasher ces plateformes.

Flask : le projet "La Maison Pythonic" pour faire quelques pas dans la domotique personnelle

Ce livre suit, pas-à-pas, le développement d'un projet appelé "La Maison-Pythonique" (GitHub).

La Maison Pythonique

"La Maison-Pythonique" est un projet "cas d'étude" qui vise à soutenir le Maker dans sa découverte du monde de la domotique personnelle. Un savoir abordable, écrit avec une approche didactique et de précieuses explications.

La finalité de "La Maison Pythonique" c'est le sous-projet Dashboard permettant de réaliser des tableaux de bord WEB, tableau de board que l'on peut configurer sur base d'écran de saisie.

Tableau de bord de "la maison pythonique" 

Le Dashboard utilise Flask, le micro-framework Python pour faire de développement WEB en Python. Flask s'appuie également sur le surpuissant moteur de template Jinja pour produire les pages du Dashboard. Après une étude plus ou moins approfondie de Flask et Jinja, le lecteur sera capable d'exploiter les bases avec aisance. Sans oublier les techniques avancés offertes par Jinja: Macro, Héritage de template, inclusion. Condensé sur un peu plus de 100 pages, les fondamentaux de Flask et Jinja sont rapidement exploités pour constituer le projet Dashboard.

Enfin, La Maison Pythonic s'appuie sur MaterializeCss pour donner du style et du punch aux pages du Dashboard. Après une introduction et la constitution d'une page d'exemple, le code est décomposé en template Jinja et l'héritage de template mis à profit pour uniformiser le rendu du projet.
Le développement de ce projet Dashboard s'étend jusqu'à la fin de l'ouvrage où les rouages sont détaillés afin d'offrir la maîtrise de l'outil.

La projet Dashboard ne demande qu'à évoluer pour s'adapter à vos besoins. Il poursuivra, bien entendu, son évolution sur le GitHub du projet.

A propos de l'ouvrage

Ecrit sous forme de modules, le livre alterne chapitre de vulgarisation et chapitre de mise en oeuvre (dans le projet). La lecture des différents chapitres offrira de solides bases de connaissances, un savoir-faire et des outils pour aborder sereinement n'importe quel autre projet exploitant ces technologies.

Le cas échéant, ce savoir permettra de comprendre ce qui se passe sous le capot de solutions « clé en main ».

BK-PYTHON-PI-FLASK
3232100014237