Assembler une sonde CO2
Introduction
Pour moins de 50€, il est possible d'assembler soi-même un appareil de mesure
fiable de dioxide de carbone afin de vérifier la ventilation d'un lieu fermé et réduire
ainsi le risque d'être contaminé par le virus respiratoire SARS-COV2.
Un appareil de base consiste en:
- une carte micro-contrôleur du type utilisé en domotique/"Internet
of Things" (IoT) à base d'ESP8266 (wifi seulement) ou ESP32
(wifi + Bluetooth) de Espressif Systems
comme une TTGO,
NodeMCU ou Wemos —
le contrôleur ESP32 est une version plus puissante que l' ESP8266;
les deux tournent sous l'OS temps réel FreeRTOS;
la carte LILYGO
TTGO T-Display offre un écran LCD OLED déjà intégré,
ce qui évite d'avoir à relier un écran OLED à la carte; à noter aussi qu'elle
utilise une prise USB-C et non micro-USB
- un capteur de CO2 de type NDIR ("Non dispersive InfraRed";
plus fiable que les autres solutions comme VOC/COV utilisé par le capteur
SGP30) et calibrable : Sensirion SCD30
(voire 40/41), Senseair LP8/S8
LP, Winsen MH-Z14
or MH-Z19B/C
("The B in the MH-Z19B means it can perform automatic baseline correction.
This is something you do not want enabled if constantly exposed to high
CO2 environments, as it will over time adjust the returned vales to 400
ppmv.", source),
Cubic CM1106
- des fils
: le cas échéant, l'alternative à la soudure est d'enrouler le fil ("wire
wrap"), de placer les éléments sur une carte type "breadboard",
ou de souder les éléments sur une plaquette de type "perfboard"
("plaquette à pastilles", "plaque PCB"), "breadboard",
"strip board/veroboard";
on peut si nécessaire effectuer un montage un peu plus compact en utilisant
deux plaquettes superposées
- un fer et du fil à souder
- (optionel) une "troisième
main" est bien pratique pour tenir le contrôleur et le fil, et
libérer les deux mains pour le fil et le fer à souder
- une alimentation : chargeur ou batterie USB; il est aussi possible d'intégrer avec
précaution un accumulateur
("pile rechargeable")
- un logiciel : appli codée en C++ dans l'IDE Arduino, ou firmware standard
ESP Easy
- (optionnel) un boîtier, le plus simple étant d'en prendre un transparent
; attention
à ce que le capteur ait un accès direct à l'extérieur (percer si nécessaire)
À l'expérience, la solution la plus simple et compacte consiste en 1) une
sonde Sensirion/Senseair et 2) une carte TTGO avec un écran intégré, d'autant qu'elle possède aussi
une prise JST
qui permet d'y connecter un accumulateur type 18650/16340/603449 si on veut pouvoir
l'utiliser sans accès à une prise murale et sans s'embêter avec une batterie
externe USB.
Outils :
- un fer à souder de qualité suffisante (vérifier en particulier son extrémité,
"panne"), de préférence à température réglable
- fil à souder, contenant idéalement un peu d'argent (Ag); la soudure
sans plomb nécessite un fer capable demonter à 350-390°; pour des soudures
fines, choisir un diamètre de fil 0,5-0,8mm
- ciseaux pour raccourcir les fils
- pince
à dénuder
- pince fine; une pince à épiler peut suffire
- coupe-ongles ou mini-pince pour couper le bout des fils au plus juste après la soudure
Si aucune expérience de la soudure, le mieux est de s'entraîner au préalable
sur une simple carte type place
de propotype PCB avant de se lancer pour de vrai. La soudure doit être appliquée
rapidement et finement à la jonction entre la plaque et le fil
À l'aide d'un breadboard et des fils, on peut déjà tester le logiciel sans
soudure.
Assemblages de Grégoire Rinolfi
https://co2.rinolfi.ch : capteur Senseair
S8 LP, carte microcontrôleur LILYGO TTGO T-Display ESP32 + code Arduino à compiler
Belair :
Carte TTGO T-DISPLAY ESP32
+ capteur SENSEAIR S8
Grandair
:
Composants:
Installation du logiciel
Source : https://twitter.com/ArabellaBrayer
- Sur l'ordi, installer l'IDE
Arduino . Vers la fin, le programme d'installation va proposer d'installer
quelques appareils ("devices"): Choisir l'option par défaut qui
est… "Don't Install", puisque le contrôleur ESP32 + TTGO n'est
justement pas une carte Arduino.
- Installer
les cartes basées sur le contrôleur ESP32 (par défaut, l'IDE ne connait
que les cartes à processeur AVR, et non les processeurs d'Espressif comme
l'ESP32)
- Installer la version de Xinyuan-LilyGO
de la bibliothèque TFT_eSPI (la version de Bodmer installée lors de l'installation
de l'IDE ne fonctionne pas avec cette carte). Il faut l'installer
manuellement (le menu Sketch > Include library > Add ZIP library
se termine avec "Specified folder/zip file does not contain a valid
library")
- Choisir la carte "ESP32 Dev Module" dans le menu Tools >
Board > ESP32 Arduino; les paramètres ("Upload speed, CPU Frequency,
Flash frequency, etc.") par défaut fonctionnent
- Copier/coller le code source (section
"Logiciel" de la page; il communique avec le capteur en utilisant
le protocole ModBus), disponible en version "stand-alone" ou "wifi";
la version "wifi" nécessite d'éditer l'en-tête (ssid1, etc.) et
de se créer un compte sur www.thingspeak.com
et obtenir une clé API, nécessaire pour que le boîtier envoie toutes les
10mn la dernière mesure données sur le site web
- Compiler le code pour vérifier qu'il n'y a pas d'erreur: Sketch >
Verify/Compile
- Installer le driver pour la puce USB-série qui convient : dans
le cas présent, c'est la CH9102F et le driver se trouve ici
- Brancher la carte à l'ordi par un câble USB-C court
et blindé (important !). Si le contrôleur est alimenté
mais pas détecté, essayer un autre câble. Dans Device Manager de Windows, vérifier le port COM assigné, et l'indiquer
dans l'IDE via Tools > Port
- Flasher la mémoire avec le nouveau programme: Sketch > Upload. Le
flashage ne dure que quelques secondes, et l'appareil redémarre de lui-même.
On peut fixer les éléments sur une plaquette en utilisant simplement de la
colle cyanoacrylate (attention aux doigts + yeux) voire du scotch double-face,
avant de souder les pattes nécessaires à la connexion.
Note : si l'IDE Arduino est très lent à fonctionner, essayer, le cas échéant,
de désactiver l'antivirus, au moins le temps de faire le test. Autre solution
à essayer : dans File > Preferences, décocher "Check for updates on
start up".
Pour voir 1) où se trouve le fichier.bin compilé et 2) les commandes pour
flasher la mémoire, et 3) partager le fichier binaire à des gens non équipés
pour compiler :
- Dans File > Preferences, activer "Show verbose output during
compilation" et désactiver "Show verbose output during upload."
- Compiler
- Chercher le répertoire où se trouvent les fichiers compilés : c'est
le fichier .bin qui sera flashé. Sous Windows, ça devrait être quelque chose
comme C:\Users\toto\AppData\Local\Temp\arduino_build_123\
- Dans File > Preferences, désactiver "Show verbose output during
compilation" et activer "Show verbose output during upload."
- Flasher la mémoire
- Dans l'output, chercher la commande utilsée, qui ressemble à \arduino-1.2.3\…\upload.py
--chip esp8266 --port COM19 --baud 921600 --before default_reset --after
hard_reset write_flash 0x0 C:\Users\toto\AppData\Local\Temp\arduino_build_123\toto.bin
- Pour qu'un utilisateur non-équipé puisse flasher la mémoire, lui fournir
a) une version prête à l'emploi de upload.py, b) le .bin et c) un batch
pour exécuter la commande.
Étalonnage/calibrage
Pour tester que le capteur est correctement calibré, il suffit de poser l'appareil
en extérieur plusieurs minutes, et voir s'il descend bien à ~415PPM. Si le niveau
ne se stabilise pas autour de cette valeur, un recalibrage est nécessaire.
La méthode ABC (Automatic Background Calibration) de recalibrage automatique
de la sonde ne peut s'effectuer correctement qu'à condition qu'elle soit
fréquemment exposée en fonctionnement à l'extérieur, qui est le niveau de
référence… ce qui n'est pas le cas si l'appareil n'est utilisé qu'en intérieur
et occasionnellement.
Dans ce cas, il faut effectuer régulièrement un recalibrage manuel : laisser
l'appareil allumé en extérieur environ 30mn et appuyer sur le bouton à droite
de la prise USB quand elle est vers le bas; cette méthode manuelle s'appelle
"Background Calibration". La recalibration est correcte quand l'appareil
affiche environ 415PPM (Source)
Améliorations possibles
- réduire la consommation : modifier le code pour n'allumer l'écran que pour afficher les PPM
(capteur Senseair : moyenne 30mA, pic 300mA; carte
TTGO : max 80mA) OU écran eInk plutôt qu'OLED, par exemple LilyGo
T5 2.13"
- capteur Sensision : plus fiable que Senseair
- capteur CO2 moins cher que le Senseair S8 et moins consommateur (Cubic
CM1106SL-NS, Senseair S11 Sunrise, Sensirion SCD41)
- alimentation par accumulateur (note : la prise JST GH 1,25mm de la TTGO ne semble pas gérer
correctement la tension) : circuit
intégré à base de MCP73871 ("Power management board, charger MCP73871
DIY, Step up booster board, Battery protection board, Silicone cables, RMA-223
Soldering Flux"; Voltage proportional current control proportional
(VPCC) ensures system charging takes priority over lithium-ion battery charging
current"); alternative : UNSAFE!
shield à un accu 18650 modèle
V3 (le bouton ON/OFF ne contrôle que la sortie USB 5V; L2 = rouge, chargement,
L1 = vert, accu chargé)… mais "the
V3 lacks a load sharing circuit, so it may not terminate charging properly
if the load current is too high"; la TTGO peut être alimentée par une
simple batterie d'une tension 2,7-4,2V via la prise JST, mais la sonde a
vraiment besoin d'une tension de 5V avec peu de tolérance : ajouter (où?)
un step-up
à 5V pour alimenter la sonde
- logiciel : afficher capacité batterie
- capteur temp + hygrométrie (Si7021)
- carte
TTGO T8 (processeur ESP32-S2, convertiseur série-USB CH340C,
carte TF/SD, connecteur JST 1,25mm) et son interrupteur batterie
Carte TTGO T8 ESP32-S2 (CH340C)
carte
TTGO T8 (processeur ESP32-S2, convertiseur série-USB CH340C,
carte TF/SD, connecteur JST 1,25mm) et son interrupteur batterie
À la date de juillet 2022, la bibliothèque TFT_eSPI
de Xinyuan-LilyGO une fois installée dans l'IDE Arduino 2(.0.0rc8) ne
permet pas de compiler. Désinstaller et essayer celle de Bodmer (source)
Si besoin, installer
manuellement. Compile OK, reflash OK mais rien à l'écran :
envoie chaîne vers USB plutôt qu'écran ?
Quelles pins choisir ?
#define
TXD2 21 // série capteur
TX; utiliser 17?
#define RXD2 22 //
série capteur RX; utiliser 18?
Supporté dans IDE Arduino 1x ? https://github.com/espressif/arduino-esp32/issues/6256
https://docs.espressif.com/projects/arduino-esp32/en/latest/getting_started.html#supported-soc-s
Must upgrade to IDE 2.0 RC (only available for x64)? https://www.arduino.cc/en/software
Supporté par CircuitPython : https://circuitpython.org/board/lilygo_ttgo_t8_s2_st7789/
Supporté par esp-idf https://github.com/Xinyuan-LilyGO/LilyGo-T-Display-S2
Connecter à Windows, et lancer Device Manager pour voir si un port
COM est attribué. Si le driver est nécessaire : https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/all
Installer le ESP-IDF Tools ("Espressif IoT Development Framework")
https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/windows-setup.html
Arduino 1.8.19 + T8 ESP32-S2: A fatal error occurred: This chip is ESP32-S2
not ESP32. Wrong --chip argument?
File > Preferences: Additional Board Manager URL: Append the following
URL, using a comma if it's not empty:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
ESP-IDF (Espressif IoT Development Framework)
https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html
Manual Installation For the manual procedure, please select according to
your operating system (Windows x64 only)
https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/windows-setup.html
ESP-IDF requires some prerequisite tools to be installed so you can build
firmware for supported chips. The prerequisite tools include Python, Git, cross-compilers,
CMake and Ninja build tools. For this Getting Started we’re going to use the
Command Prompt, but after ESP-IDF is installed you can use Eclipse or another
graphical IDE with CMake support instead.
Universal Online Installer
2.15 Windows 10, 11 Size: 4 MB
Assemblages de Emariete
NodeMCU + écran OLED + sonde Senseair
De par son écran OLED, cette combinaison
consomme moins que l'écran TFT sur le TTGO; elle nécessite environ 170mA; une batterie externe de 2.700mAh permet donc
de l'utiliser pendant environ 16 heures (et une batterie de 1.000mAh environ
4-5 heures). Le NodeMCU n'inclut pas de connecteur JST pour y relier une batterie.
Pièces
Procédure
TODO
?
Font plus grande ? https://iotforgeeks.com/interface-i2c-oled-display-with-nodemcu/
? Désactiver wifi pour réduire consommation ? https://emariete.com/en/diy-co2-monitor-wifi/comment-page-11/#comment-2103
Liaisons :
- contrôleur - écran : 3V3-VCC, GND-GND; D1-SDA, D2-SCL
- contrôleur - sonde Senseair : VIM (5V) - G+, GO - GND; TX et RX vers
prises sur la sonde, cf.
diagramme
- Flasher la mémoire avec le firmware ESP Easy.
Important
: avant un flashage de la mémoire, il ne faut pas que les prises TX et RX soient connectées
à la sonde CO2 ("This is because the board shares these pins with the
USB port and conflicts could occur.")
Important : utiliser un câble USB de
qualité (blindé de préférence), et installer le driver qui correspond au
composant USB-UART (dans le cas d'un CP210x, utiliser "Windows driver"
et pas "Universal Windows driver"). L'absence de détection du
NodeMCU par l'OS peut simplement dû à un câble de mauvaise qualité.
L'interface
web n'est dispo que pour Chrome/Edge, et semble fonctionner à 9.600bps,
soit très lent : il vaut mieux essayer de flasher avec l'appli graphique
ESP.Easy.Flasher.exe (dans Medidor
CO2.zip).
Comme indiqué lors du premier lancement, l'appli dédiée nécessite
de copier deux polices de caractère (AGENCYR.TTF et AGENCYB.TTF) de son
sous-répertoire .\APP_DATA vers c:\windows\fonts, et redémarrer
l'appli.
À 115.200bps, le flashage prend un peu moins de deux minutes.
Appuyer
sur le bouton RST, puis utiliser un smartphone ou un ordinateur pour se
connecter en wifi au point d'accès du NodeMCU : "ESP-Easy", mot de
passe "configesp".
Si problème pour se connecter au wifi du
ESP Easy, essayer de reflasher avec le firmware
de NodeMCU, et si OK (point d'accès "FaryLink_blah" visible),
utiliser son PyFlasher pour reflasher le firmware d'eMariete.
Une
fois connecté au point d'accès du NodeMCU, l'adresse IP du contrôleur est
192.168.4.1.
On peut également reconfigurer l'ESP Easy du NodeMCU
pour qu'il se connecte en tant que client sur le point d'accès
wifi du routeur du réseau local, ce qui permet ensuite de finir de
configurer le NodeMCU depuis un ordinateur connecté au routeur. Une fois
le NodeMCU configuré en tant que client wifi, son point d'accès wifi disparaît.
- On peut faire un premier test des composants en reliant simplement la
carte, l'écran voire la sonde avec des fils Dupont femelle-femelle/mâle
(selon qu'ils sont équipés ou non de pins).
Si le NodeMCU
est équipé de pins, il est plus simple et compact de souder les fils dans
les trous : pour retirer les pins concernées, 1) liquéfier la soudure tout
en tirant sur la pin avec un pince, 2) tordre avec une pince les bases noires
pour les casser et 3) finir de retirer le reste de soudure existante en
tenant le contrôleur dans un étau et liquéfier la soudure d'un côté tout
en insérant un poinçon dans le trou par l'autre côté.
Avant de souder
les différents fils, appliquer un tout petit peu de soudure sur leur extrémité
pour que les fils restent solidaires.
Pour relier l'écran au contrôleur
: 3V3-VCC, GND-GND; données : D1-SDA, D2-SCL; note : SDA=serial data,
SCL=serial clock), installer le driver qui correspond au composant USB-UART
(dans le cas d'un CP210x, utiliser "Windows driver" et pas "Universal
Windows driver"), connecter le NodeMCU à l'ordi par la prise USB, et
flasher
la mémoire avec le firmware ESP Easy compilé par eMariete. Le port COM
est listé dans DeviceManager.
Pour la sonde : les deux fils d'alimentation sont
sonde.G+ - NodeCMU.VIM (5V) et sonde.GO - NodeCMU.GND; pour les données,
ce sont les prises TX et RX côté NodeMCU, et deux prises sur la sonde, cf.
diagramme.
Manip
général, avec vidéo :
https://emariete.com/en/diy-co2-monitor-wifi/
- Comment relier et configurer l'écran SSD1306 :
https://emariete.com/en/connect-an-oled-display-ssd1306-to-espeasy/
Comment
relier configure la sonde Senseair :
https://emariete.com/en/meter-co2-esp8266-nodemcu-sensor-senseair-s8/
Une
fois tout configuré, on peut lire le niveau de CO2 remonté par la sonde
via cette URL : http://adresse.du.NodeMCU/dashboard.esp
Si
l'écran ne s'allume pas, vérifier que les soudures sont correctes (pour
l'alimentation : un multimètre). Si erreur, on peut inverser la liaison
D1-SCL et D2-SDA par logiciel, dans la section "I2C Interface"
de l'onglet Hardware.
- Visser/coller les composants dans une boîte en plastique transparent
Alimenter
le NodeMCU et les composants à l'aide d'un accumulateur type 18650 nécessite
des composants supplémentaires pour que le charge + décharge s'effectue sans
risque.
Connecter un NodeMCU à un grand écran, une montre, un écran tactile, un écran
basse conso :
La boîte à formes
DONE https://www.laboiteaformes.fr/capteur-co2/
: carte micro-contrôleur ESP8266 Wemos d1 mini, capteur CO2 SenseAir S8, écran
OLED SSD1306, LED RGB WS2812, boîtier imprimé 3D
https://www.laboiteaformes.fr/wp-content/uploads/2021/08/kit-co2.jpg
NousAerons
DONE http://nousaerons.fr/makersco2/#fabriquer
DONE Guide
de câblage pour capteurs Sensirion SCD30/Senseair S8 et carte de développement
Arduino Uno/ESP32
Autres projets
http://www.wiki-rennes.fr/Capteur_CO2_Labfab
Détecteur de CO2 v3 (capteurs Senseair S8 LP et Sensirion SHT31D, carte LOLIN
D32 PRO v2, écran LOLIN ePaper 2.13/Tri-Color ePaper 2.13, accumulateur type
16340, LEDs, buzzer, encodeur rotatif) https://le-17.net/dokuwiki/geek/co2/v3
https://www.reichelt.com/magazin/en/build-your-own-co2-measuring-device/
NodeMCU ESP32 + MH-Z19C
WeMos D1 Mini ESP8266 https://www.aliexpress.com/item/32643142716.html
NodeMcu V3 Lua WIFI development board based ESP8266 https://www.aliexpress.com/item/32654418046.html
How
to reduce the ESP8266 power consumption?
https://gitlab.u-angers.fr/agodon/uaco2
: capteur
SCD30, micro-contrôleur
ESP32 NodeMCU, boîtier,
LED RGB
MH-Z19
+ Domoticz + code MicroPython pour ESP32/ESP8266
MH-Z19 +
Domoticz + code Arduino compatible ESP32/ESP8266
https://www.instructables.com/CO2-Monitoring-As-an-Anti-Covid19-Measure/
Adafruit Feather M0 board, Gravity Analog Infrared CO2 Sensor For Arduino SEN0219,
CR1220 battery, etc. ~100€
https://www.instructables.com/CO2-Display/
MZ-H19B sensor, Arduino Nano microcontroller, TM1637 display,
LibreCO2:
Arduino UNO, Arduino Multifunction Shield, CO2 low cost popular sensor (Sensirion
SCD30, Winsen MH-Z14 or MHZ-19 and Cubic CM1106)
https://www.hackster.io/Seluxit/homemade-co2-sensor-unit-22a9d8
Raspberry Pi 3 B, SCD30, SparkFun Atmospheric Sensor Breakout - BME280
Breadboard + Senseair + Wemos D1 Mini https://fabmanager.latreso.fr/#!/projects/capteur-de-co2
Accumulateur
Alternatives à une batterie externe USB:
- carte TTGO (prise JST) + accu
plat EEMB (AliE)
+ switch
on/off pour couper la batterie sans toucher au fil + sonde SCD30 (LED
bleue s'éteint une fois l'accu rechargé; SCD30 accepte tension plus faible
que Senseair; pour lire tension approximativement, utiliser pins ADC 14+34;
exemple)
- carte TTGO + accu
16340 + shield
+ sonde SCD30
- carte TTGO + sonde SCD30 + smartphone comme batterie externe (appli
pour lire la tension)
- carte TTGO
T8, avec interrupteur accu intégré
- utiliser un appareil de qualité pour charger l'accu, et n'utiliser
l'accu que pour alimenter la sonde (prévoir de plonger le TTGO en
sommeil profond/veille si la tension descend trop pour n'endommager aucun
composant : surveiller la tension à l'aide de l'ADC; doc)
Infos
"The ESP32 will want 5V or 3.3V ; with a single battery, a 3.3V
LDO ("low-dropout regulator") could be used between the battery and the ESP32 to supply 3.3V or use
a step up 5V regulator to supply 5V. A USB power bank is a set of LiPo batteries
in a case with electronics to make 5V. With that battery, I'd use 2 in series,
a USB power bank can be made."
Calibration capteur Senseair S8
"Une calibration « manuelle » du S8 est possible. Pour cela, il suffit
de le placer dans un environnement où le taux de CO2 est entre 400 et 430 PPM,
par exemple à « l’air libre », à l’extérieur, et de suivre la procédure suivante
:
- Placez le capteur alimenté à l’extérieur, (sur la photo ci-contre, à
gauche, un autre capteur déjà étalonné indique un taux de 403 PPM),
- Attendez 30 mn ou plus pour que le capteur S8 se stabilise,
- Appuyez sur le bouton de calibration [scécifique à ce montage] pendant
environ 6 secondes (minimum 4 secondes, maxi 8 secondes)
- Relâchez le bouton et laissez le capteur S8 pendant au moins une heure,
ou plus si vous pouvez; ne restez pas à proximité afin d’éviter de respirer
dessus et de perturber la calibration,
- Voilà, la 1ère étape de la calibration est maintenant réalisée,
- Attention ! Pour ne pas perturber le capteur qui va continuer à ajuster
sa calibration, il est conseillé par la suite de ne pas faire de cycles
répétés allumage/extinction pour le tester par exemple,
- Un étalonnage manuel peut être effectué régulièrement si vous constatez
une « dérive » du capteur dans les valeurs mesurées." (Source)
Exemples de montages
Apprendre à souder
Trucs
- Outils : fer à souder avec panne de qualité suffisante, 30-60W voire plus si régulé,
avec panne de rechange; prince à dénuder; mini pince coupante pour couper l'excédent
de fil après soudure; mini pince voire pince à épiler; pompe à déssouder ou
tresse à déssouder; troisième
main (avec loupe)
- Dénuder le fil généreusement : on peut toujours couper l'excédent après
soudure
- Si pas de "troisième main", utiliser du scotch pour
maintenir le fil en place sur la carte et libérer une main pour la soudure
- Apprendre à souder un fil à travers l'orifice d'un composant/PCB ("through-hole
soldering")
- Éviter la soudure sans plomb, plus corrosive ("une cochonnerie
qui exige une température plus forte et qui bouzille tout"), ou utiliser
des pannes de meilleure qualité
- adapter la température selon le type de fil à souder : vérifier en appliquant
fil sur la panne ailleurs que sur la pointe; si la
soudure ne fond pas rapidement, la température est trop basse; si le résidu
de soudure noircit trop vite sur la panne, c'est au contraire le signe d'un
fer trop chaud. (source)
- S'entraîner au préalable sur une simple carte type perfboard — régler
le fer à ~200°C, chauffer rapidement fil + rondelle et faire fondre la soudure,
retirer le fil à souder puis le fer; objectif : soudure compacte de forme pointue
- Afin de préserver la panne, ne pas laisser le fer allumé plus de quelques minutes inutilisé
- Après chaque soudure, nettoyer — avec un limaille
en laiton plutôt qu'une éponge mouillée afin d'éviter de refroidire
la panne — et étamer
la panne
- si un trou est obturé par de la soudure après un essai, la chauffer
et insérer une aiguille
Capteurs CO2
Sensirion
Made in Switzerland
"The Sensirion SCD-30
features an automatic calibration system, called by Sensirion Automatic Self-Calibration
(ASC), and it works quite well."
SCD-40 https://www.adafruit.com/product/5187
SCD-41 https://www.adafruit.com/product/5190
Senseair
Made in Sweden; self-calibration
S8 LP
S8-0053; "For applications where both power consumption and accuracy
are critical factors" (Source)
https://www.aliexpress.com/item/4000884582128.html
https://www.amazon.fr/dp/B08QZ86NKD
Si nécessaire, il faut y souder des « pin headers ».
Consommation
: average 18mA, peak 300mA
Note : Operation temperature: 0 to 50°C
Winsen
https://www.winsen-sensor.com
MH-Z19B:
Recommended, but watch out for fakes;
Improved version of MH-Z19; Wait at least 2mn after powering up
MH-Z19C: Not recommended
MH-Z1311A:
New kid on the block
Cubic
CM1106SL-NS
Cartes
Lilygo
http://www.lilygo.cn/
Carte TTGO avec écran OLED et processeur ESP32
"On trouve parfois le microcontrôleur vendu déjà équipé de ces « pins
headers », ce qui vous évitera une opération de soudure."
Consommation : ~80mA
NodeMCU
"NodeMCU is a low-cost open source
IoT platform. It initially included firmware which runs on the ESP8266 Wi-Fi
SoC from Espressif Systems, and hardware which was based on the ESP-12 module.
Later, support for the ESP32 32-bit MCU was added."
Kit de développement basé sur un ESP8266
Disponible avec un ESP8266 ou ESP32
Un écran OLED (SSD1306) est disponible (Lilygo TTGO)
Peut être alimenté par un chargeur USB
https://www.aliexpress.com/item/4000550036826.html
https://emariete.com/wp-content/uploads/2017/01/CameraZOOM-20170112203504828-1-1024x758.jpg
WeMos D1 Mini
https://www.wemos.cc/
La carte
WeMos D1 Mini utilise un ESP8266; version plus petit que le NodeMCU ESP8266;
module Wifi intégré; capacité de mémoire et de calcul supérieure aux Arduino;
microprocesseur Tensilica 32-bit RISC CPU Xtensa LX106; 64kB RAM, Flash 4000kB;
Tension d’alimentation 7-12V
Arduino
"The Arduino is nothing like a computer, as most of Arduino boards are
not powerful enough to run an operating system. Indeed, Arduino is designed
for electronics projects were you control I/O using C programming with the Arduino
IDE installed in a Windows, Linux, or Mac computer. All the hard parts of setting
up the hardware are however taken care of or abstracted, so Arduino boards are
much easier to use than traditional MCU boards."
Uno
Due
Nanon
Mega
Mega256
Raspberry Pi
https://en.wikipedia.org/wiki/Raspberry_Pi
https://emariete.com/en/home-automation-at-home-raspberry-pi/
Modèles : 1, 2, 3, 4, 400, Zero, Pico
"Raspberry Pi boards run a fully-fledged Linux operating system [eg.Raspbian]".
Atmel SAMD21 ("M0")
BeagleBone
https://en.wikipedia.org/wiki/BeagleBoard
Boîtier
Le plus simple est d'utiliser une petite boîte en plastique acrylique transparent,
et
de visser ou coller aux parois les composants avec du scotch double-face. Si nécessaire,
percer des trous avec une perceuse afin l'air pénètre suffisamment jusqu'au
capteur CO2.
Moins rigide : on peut aussi utiliser du polypropylène
alvéolaire.
Plus sophistiqué : "imprimer" un boîtier avec une imprimante 3D.
Vocabulaire
Q&R
MCU, SoC, SBC : quelle différence ?
CP2102 vs. CH340 vs. CH9102F
Serial-USB converters just by different manufacturers. "An CP2102 considered
as a better one but from my experience there is no difference. Some people complained
about problem with CH340 driver installation. However mostly it's just an old
OS issue."
https://riton-duino.blogspot.com/2020/02/les-convertisseurs-usb-serie.html
ESP Easy?
https://en.wikipedia.org/wiki/ESP_Easy:
"free and open source MCU firmware for the Internet of things (IoT). and
originally developed by the LetsControlIt.com
community (formerly known as ESP8266.nu community). It runs on ESP8266 Wi-Fi
based MCU (microcontroller unit) platforms for IoT from Espressif Systems. […]
The firmware is built on the ESP8266 core for Arduino […]. In most cases, ESP8266
modules come with AT or NodeMCU LUA firmware, and you need to replace the existing
firmware with the ESP Easy firmware by flashing the hardware with a flash tool
to use it."
Protocole ESP-NOW
"Developed by Espressif, allows a very important energy saving, using
the hardware for Wi-Fi that we already have in the ESP8266 and ESP32 chips.
A process of sending data that with Wi-Fi can take about 10-12 seconds, with
ESP-Now it is reduced to a few milliseconds. Of course, the routers and Wi-Fi
access points that we have at home do not support ESP-Now, which makes it necessary
to include a «translator» or «bridge», something than an ESP-Easy and Wifi.
This gateway receives the data from the ultra-low consumption CO2 meter through
ESP-Now and forwards it through wifi via MQTT (already available and working),
HTTP or whatever we want." (link,
link)
Alternative ouverte : LoRa(WAN)
PlatformIO
Alternative IDE to the Arduino IDE.
https://platformio.org/
https://dronebotworkshop.com/platformio/
CircuitPython?
"A variant of MicroPython. Most development is sponsored by Adafruit"
(Source)
Why change the DIP switches? So the controller shows up as a disk drive called
CIRCUITPY
Ressources