Une fois, assis au travail et mal à l'aise pour respirer, j'ai décidé d'assembler un compteur de CO2.
Après avoir étudié plusieurs articles sur ce sujet, il a formulé les exigences de l'appareil.
- L'appareil doit être équipé d'un écran, car il doit s'agir d'un appareil portable.
- L'appareil ne doit pas dépendre d'Internet pour la même raison.
- L'appareil doit être capable d'enregistrer des valeurs dans le temps, qui sont pratiques à tout moment pour les visualiser. Et cela signifie qu'il doit avoir son propre serveur Web et son propre point Wi-Fi.
Le dernier élément a conduit de manière ambiguë à l'entrée que l'appareil sera sur l'ESP. Comme je n'ai pas besoin de hautes performances, je choisis l'option la moins chère - qui ESP8266, 07. À la maison, une copie avec 1 Mo de mémoire traînait.
J'ai commandé les pièces de rechange manquantes pour aliexpress, et elles étaient:
- Écran Oled 96x64 SSD1331.
- Capteur de CO2 MH-Z19B.
- Module RTC DS1307.
Dès réception des détails, il a commencé à développer le circuit à l'aide de KiCad.
Je dois dire tout de suite - toutes les sources seront à la fin de l'article et, après s'être assemblées selon les schémas, en téléchargeant le firmware, elles devraient obtenir un appareil pleinement fonctionnel.
Le schéma est sorti comme ceci:

J'ai décidé de rendre les modules amovibles, donc il n'y a pas de modules sur le circuit, mais seulement des connecteurs pour eux.
J'écarte la planche:

Après la fabrication de la carte de circuit imprimé et la soudure, les éléments suivants sont sortis:


En assemblage et au travail, cela ressemble à ceci:

Maintenant sur la partie logicielle.
Le code a été écrit dans l'IDE Arduine, car je ne suis pas programmeur, et je ne voulais pas comprendre les bibliothèques dans le studio visuel ou ailleurs.
En principe, j'ai utilisé le code des modules de l'appareil à partir d'exemples de bibliothèque et d'Internet, donc je ne m'y attarderai pas. Qui veut - comprendre facilement le croquis.
Mais il s'est avéré pas si simple de mettre en œuvre la visualisation et l'affichage des statistiques à temps.
Je le voulais comme ça: depuis un téléphone portable ou un ordinateur portable, il est aussi facile que possible de se connecter à l'appareil, via le navigateur HTML, accédez à la page de données et affichez-le sous la forme d'un chronogramme.
Tout d'abord, chez ESP, a créé un point d'accès sans mots de passe et authentifications.
Le deuxième - a créé un tableau de données dans lequel j'écris des données de CO2 et l'heure de l'acquisition des données (pour cela, en fait, je règle l'horloge dans l'appareil.
Troisièmement, j'ai installé un serveur HTTP et plusieurs pages HTML, sur l'une desquelles je produis des données.
Quatrièmement - le script Java pour dessiner le graphique sur la page a été écrit dans le système de fichiers ESP.
Étant donné que la sortie du graphique n'a été possible qu'avec l'aide de Java Script, après de longues expériences, le quatrième élément a été implémenté comme suit: le script Chart.js le plus simple a été écrit sous forme de fichier dans le système de fichiers SPIFFS ESP, qui demande une page affichant le résultat.
En général, lors de la mise sous tension de l'appareil, sur l'affichage toutes les 10 à 15 secondes, les nouvelles lectures du capteur sont affichées et toutes les 8 minutes, les lectures actuelles du capteur sont enregistrées dans le tableau de données.
Après un certain temps, voulant analyser les lectures dans le temps, vous vous connectez via votre téléphone ou ordinateur portable au point Wi-Fi «CO2», après la connexion démarrez le navigateur Internet et entrez l'adresse IP «10.10.10.1» dans la barre de recherche. Vous accédez à la page:

Il y a un bouton pour aller à la page d'affichage des données et un bouton pour aller à la page de réglage de l'heure (car le temps se perd parfois, et il se perd juste lorsque la batterie est remplacée).
La page de sortie des données ressemble à ceci:
Archive avec la source ici.L'archive contient un croquis, Java Script, un projet Kicad, une impression au format Photoshop dans la résolution de 600 dpi, au cas où vous ne voudriez pas jouer avec Kicad.
Comment configurer Adruino ide pour le firmware ESP et comment télécharger des fichiers sur SPIFS peut être facilement trouvé sur Internet.
Pour le firmware ESP, vous devrez déconnecter le capteur de CO2, car il se bloque sur TX0 et RX0, qui sont nécessaires pour le firmware. De plus, j'ai signé l'opposé sur la carte de ligne de données, de sorte que je connecte TX du clignotant à TX sur la carte, etc.