Table des matières:

AtmoScan : 7 étapes (avec photos)
AtmoScan : 7 étapes (avec photos)

Vidéo: AtmoScan : 7 étapes (avec photos)

Vidéo: AtmoScan : 7 étapes (avec photos)
Vidéo: TCL 55R617/55R615 Dolby Atmos Setup | Sony, Yamaha, Onkyo, Denon 2024, Septembre
Anonim
Image
Image
Capteurs
Capteurs

**********************************************************************************************

NOUVELLES

Accédez à mon GitHub pour:

- Quelques petits changements matériels améliorent la conception, y compris la possibilité de se désactiver du logiciel, remédiant à l'un des plus gros inconvénients de la conception - comment gérer une batterie faible.

- Une conception PCB v2 est maintenant publiée avec un guide pour appliquer facilement le changement aux cartes V1.0.

- Fichiers CAO pour boîtier complet

Le nouveau boîtier ressemble à la photo ci-dessus… enfin, sans l'élastique

****************************************************************************************

ATMOSCAN est un appareil multicapteur destiné à surveiller la qualité de l'air intérieur. Alors que de nombreux projets ont été publiés dans un but similaire, celui-ci est un système complet dans un boîtier compact et autonome qui les résume tous. Il dispose d'un écran LCD couleur, il est sensible à l'heure et à l'emplacement, il est contrôlé par les gestes et il publie sur ThingSpeak (ou d'autres) via MQTT, mais peut gérer correctement les opérations déconnectées et les reconnexions. Avec sa batterie rechargeable intégrée, il dure une journée entière lorsqu'il est déconnecté de l'alimentation.

Il utilise un cadre coopératif multitâche et est très réactif aux entrées de l'utilisateur lors de l'échantillonnage des capteurs, de la gestion de l'interface utilisateur, de la publication sur MQTT. En fait, il tire un peu du minuscule ESP8266. Pour ce faire, il intègre un certain nombre de bibliothèques open source et exploite les services Web Internet.

Les crédits pour les bibliothèques vont à un certain nombre de contributeurs, voir plus loin.

La musique en vidéo se trouve ICI

Étape 1: Capteurs

Atmoscan mesure un certain nombre de variables:

  • Température
  • Humidité
  • Pression
  • CO2
  • CO
  • NO2
  • COV (Composés organiques volatils, un indicateur de la qualité de l'air)
  • PM 01
  • PM25
  • PM10
  • Radiation

Pour ce faire, il intègre un certain nombre de capteurs discrets

  • BME280 (par ex. Lien)
  • PMS7003 (par ex. Lien)
  • MH-Z19 (par ex. Lien)
  • HDC1080 (par ex. Lien)
  • MiCS6814 (Lien)
  • MP503 (Lien)
  • Tube LND-712 Geiger (Lien, je l'ai trouvé en Europe ici Lien ou ici Lien) avec module haute tension (Lien)

Les fiches techniques sont ICI.

Étape 2: Électronique

Électronique
Électronique
Électronique
Électronique
Électronique
Électronique

Atmoscan peut être facilement construit avec un NodeMCU ou toute autre carte ESP8266 et certains composants facilement disponibles, tels que des décaleurs de niveau et des régulateurs de tension, si vous abandonnez le chargeur de batterie intégré.

Alors que j'ai fait un prototype avec des composants séparés, pour la version finale j'ai conçu une carte spécifique qui intègre toutes les fonctions et fournit des connecteurs soignés pour les capteurs, des LED pour l'état (Bleu = alimentation connectée; Rouge = charge).

Fichiers Eagle PCB disponibles ICI.

Concrètement, la carte intègre:

  • Circuit de charge basé sur MAX8903A (Lien)
  • Logique marche/arrêt à un bouton
  • Module ESP12E
  • Logique de programmation
  • Décaleur de niveau
  • Pilote de rétroéclairage LCD
  • Régulateur de tension élévateur/abaisseur de 3,3 V basé sur Pololu S7V8F3 (lien)
  • Régulateur de tension élévateur 5V basé sur Pololu U1V10F5 (Lien)
  • Jauge de carburant LiPo basée sur SparkFun TOL10617 (lien)

L'écran est un TFT 2,8 320x240 basé sur une puce ILI9341 (Link).

Le capteur de gestes est basé sur la puce PAJ7620U2 (Link), bien meilleure que l'APDS9960 bon marché qui génère des interruptions continues et ne peut pas fonctionner avec du plexiglas.

Les capteurs sont plutôt gourmands en énergie, donc pour garantir une autonomie d'au moins 24h j'ai fait un pack avec 3 accus 5000mAh LiPo 105575 (Link). En fait, 2 auraient pu suffire. Le chargeur MAX8903 a du mal à charger le pack de 15 000 mAh résultant.

REMARQUES - COMME VU SUR LES IMAGES:

  • Les positions des connecteurs sont affichées
  • La fente pour carte SD doit être dessoudée de l'écran si vous voulez qu'elle rentre dans le boîtier
  • Il faut faire une petite encoche dans le PCB afin de ne pas gêner le ventilateur (les encoches sont à la mode après l'iPhone X). Corrigé dans PCB V2

Les abréviations des connecteurs sur PCB sont les suivantes:

  • PRS: Capteur de pression barométrique (basé sur BME280) REMARQUE: à monter directement sur le PCB
  • COV: Grove - Capteur de qualité de l'air v1.3 (basé sur MP503)
  • TMP: Capteur numérique d'humidité et de température de haute précision (basé sur HDC1080)
  • PMS: PMS7003 Capteur numérique de concentration de particules
  • GAZ: Grove - Capteur de gaz multicanal (basé sur MiCS6814)
  • GES: Grove – Capteur de geste(basé sur PAJ7620U2)
  • RAD: tube Geiger (via le module d'alimentation du pilote de sonde Geiger haute tension 400 V/500 V avec sortie d'impulsions numérisée TTL)
  • CO2: Capteur de gaz CO2 infrarouge MH-Z19
  • U1V10F: Régulateur de tension élévateur 5V basé sur Pololu
  • U1V10F5 S7V8V3: Régulateur de tension élévateur/abaisseur 3,3V basé sur Pololu S7V8F3
  • TOL10617: Jauge à essence Sparkfun LiPo
  • LCD: affichage ILI9341

Étape 3: Enceinte

Enceinte
Enceinte
Enceinte
Enceinte
Enceinte
Enceinte

L'enceinte est dérivée d'un conteneur cube en plexiglas 10x10x10 cm que j'ai acheté sur ebay et qui était destiné à un tout autre usage. Il y avait de belles fentes d'aération qui étaient exactement ce dont on avait besoin. Le volume était en principe suffisant pour emballer l'ensemble, sauf que ce n'était pas facile… certaines premières tentatives basées sur des maquettes en carton ont lamentablement échoué alors j'ai abandonné et perdu quelques heures avec une CAO 3D et j'ai fait découper les supports internes au laser. L'espace interne est divisé en compartiments afin que le capteur de température soit aussi éloigné que possible des sources de chaleur internes. Alors que le boîtier externe est fait d'un matériau de 3 mm, le dessus est composé de feuilles de 2 + 1 mm. Cette astuce a permis d'avoir le capteur de geste recouvert d'acrylique de seulement 1 mm et cela est suffisant pour le faire fonctionner.

Certaines modifications ont dû être effectuées avec des outils manuels sur le boîtier d'origine, comme le ventilateur, l'interrupteur et les trous USB. Le résultat était quand même correct !

Les fichiers CAO sont ICI.

Étape 4: Assemblage mécanique

Assemblage mécanique
Assemblage mécanique
Assemblage mécanique
Assemblage mécanique
Assemblage mécanique
Assemblage mécanique

L'emballage est très dense mais grâce à la conception cad 3D j'ai eu peu de surprises lors de l'assemblage.

La circulation de l'air (de haut en bas) est assurée par un petit ventilateur. Après avoir acheté un bon nombre sur Aliexpress / eBay, je me suis rendu compte que le bruit des ventilateurs bon marché était insupportable pour un appareil d'intérieur. J'ai fini par acheter un Papst 255M (Link) assez cher et à rotation lente et je l'ai alimenté avec moins de 5V via quelques diodes. Le résultat est plutôt bon et assez silencieux pour passer inaperçu (il est même approuvé par les épouses, la certification la plus difficile).

Étape 5: Logiciel

Logiciel
Logiciel
Logiciel
Logiciel
Logiciel
Logiciel
Logiciel
Logiciel

L'architecture logicielle est basée sur un framework orienté objet qui exécute plusieurs processus (coopératifs) qui gèrent l'interface utilisateur, les capteurs et MQTT. Il est sensible à l'emplacement et à l'heure, mais peut gérer la déconnexion / reconnexion au WiFI.

Le framework est ouvert et peut gérer n'importe quel nombre d'écrans, tant que leur code et leurs ressources tiennent dans la mémoire Flash. Le framework d'application gère les gestes et les transmet aux écrans, pour un traitement ultérieur ou une annulation si nécessaire. Les gestes gérés par le framework sont:

  • Balayez vers la gauche / la droite - Changer d'écran
  • (Doigt) Tourbillon dans le sens horaire - Tourner l'écran
  • (Doigt) Tourbillon dans le sens inverse des aiguilles d'une montre - Invoquer l'écran de configuration
  • (Main) De loin à près - Éteindre l'affichage

Les écrans héritent d'une classe de base et sont gérés via le modèle d'événement suivant:

  • activer - déclenché une fois, lorsque l'écran est créé
  • update - appelé périodiquement pour mettre à jour l'écran
  • désactiver - appelé une fois, avant que l'écran ne soit fermé
  • onUserEvent - appelé lorsque le capteur de geste est déclenché. Permet de répondre et également de remplacer la gestion des événements par défaut, par ex. abandonner le balayage pour changer d'écran

Chaque écran déclare ses capacités en fournissant les informations suivantes:

  • getRefreshPeriod - à quelle fréquence l'écran doit être rafraîchi
  • getRefreshWithScreenOff - si l'écran veut être actualisé même lorsque le rétroéclairage est éteint. par exemple. pour les graphiques
  • getScreenName - nom de l'écran
  • isFullScreen - prenez le contrôle total de l'affichage, ou autorisez la barre supérieure avec date/heure/emplacement/jauge de batterie/jauge wifi

Le framework est capable d'instancier et de désallouer les écrans via une fabrique de classe déclarative. L'allocation dynamique économise de la RAM et rend l'appareil facilement extensible. Le cadre global de l'application est également réutilisable pour d'autres projets.

Les écrans actuellement implémentés dans Atmoscan sont:

  • Valeurs des capteurs
  • Graphique compteur Geiger / semilog
  • État du système
  • Journal des erreurs
  • Station météo
  • Observateur d'avions
  • Installer
  • Batterie faible

Les écrans de configuration permettent de définir les informations d'identification Wifi, les canaux MQTT, le serveur Syslog.

NOUVEAU dans la v2.0: toutes les clés de services Web sont désormais configurables via le portail de configuration. La seule valeur encore codée en dur est le mot de passe OTA (en majuscule ATMOSCAN).

NOTE 1: La première programmation doit être effectuée avec un câble USB-Série connecté au connecteur de programmation. Comme le port série est occupé par un capteur, le débogage et la programmation de cette manière sont peu pratiques après l'assemblage car cela nécessiterait de détacher le capteur. Par conséquent, le logiciel prend en charge le débogage SYSLOG et les mises à jour OTA.

REMARQUE 2: Le binaire ATMOSCAN fait plus de 700 Ko et ArduinoOTA nécessite que l'espace du programme soit au moins le double de la taille de l'image, ce qui exclut l'option "4M (3M SPIFFS)". Cependant, l'option standard "4M (1M SPIFFS)" est également inadaptée car la partition SPIFFS serait insuffisante pour les ressources graphiques liées à la station météo, au spotter d'avion et pour le fichier de confing. Par conséquent, une configuration personnalisée "4M (2M SPIFFS)" a été créée pour résoudre le problème. Explication ici.

La documentation et le code source complet sont disponibles ici.

LE CRÉDIT COMPREND LE CODE ET LES BIBLIOTHÈQUES DE

  • Adafruit
  • Arcao
  • Bblanchon
  • Bodmer
  • Cube Fermé
  • Gmag11
  • Knolleary
  • Lucadentelle
  • Graine
  • Squix78
  • Tzapu
  • Assistant97

INTÉGRE LES SERVICES WEB DE

  • Adsbexchange.com
  • GeoNames.org
  • Google.fr
  • Mylnikov.org
  • Timezonedb.com
  • Wunderground.com

Étape 6: Améliorez-le

Fais le mieux!
Fais le mieux!

Le résultat est pas mal du tout ! Le logiciel a l'air bien et est fiable, alors qu'il pourrait être étendu avec de nouvelles fonctionnalités et peut-être un peu nettoyé pour rendre le cadre d'application vraiment réutilisable pour d'autres projets. L'étalonnage de certains capteurs n'est pas excellent, mais un équipement de laboratoire de test serait nécessaire. Le temps est précieux et je n'ai pas grand-chose, donc les progrès ont été lents. Au moment où j'ai eu terminé, un support décent pour l'ESP32 est devenu disponible. Si je le démarrais maintenant, je l'utiliserais et intégrerais des capteurs externes via bluetooth.

N'importe qui?

REMARQUE: j'ai encore une poignée de PCB, donc si quelqu'un est intéressé, ils sont disponibles à un prix nominal / postal.

Étape 7: Questions et réponses

questions et réponses
questions et réponses
questions et réponses
questions et réponses

Tout d'abord, MERCI pour vos commentaires extrêmement positifs. Honnêtement, je ne m'attendais pas à autant d'intérêt.

J'ai reçu un certain nombre de questions que ce soit via des commentaires ou des messages privés, j'ai donc pensé à recueillir les réponses ici. Si d'autres devaient venir, j'ajouterai.

J'ai trouvé au fond d'un tiroir les 8 PCB disponibles - et ils sont en route pour la Belgique, l'Allemagne, l'Inde, les États-Unis, le Canada, le Royaume-Uni, l'Australie. Waouh, 3 continents ! Incroyable.

Que dois-je mettre dans la page de configuration d'ATMOSCAN ?

La page de configuration Atmoscan requiert les paramètres suivants:

  • SSID et mot de passe du réseau WiFi auquel vous souhaitez qu'il se connecte
  • serveur MQTT que vous utilisez. Par exemple, j'utilise mqtt.thingspeak.com
  • Chaîne de connexion pour les rubriques MQTT utilisées. Par exemple, les sujets Thingspeak MQTT sont au format: channels/CHANNEL-ID/publish/WRITE-API (EXEMPLE: channels/123456/publish/567890)
  • Serveur Syslog: l'adresse IP du serveur syslog que vous utilisez pour la journalisation
  • Clé Google pour l'API Google Maps Static. Obtenez une clé sur https://console.cloud.google.com/apis/dashboard. Créer un projet; L'API qu'Atmoscan utilise est https://maps.googleapis.com/maps/api/staticmap. Créez une clé pour cette API sur le projet google que vous venez de créer, utilisez-la ici
  • Clé de métro météo. Créez un compte sur www.wunderground.com, allez sur WEATHER API (lien en bas de la page d'accueil, allez dans KEY SETTINGS, générez une clé, utilisez-la ici
  • Compte Geonames. Créez un compte sur https://www.geonames.org/ permettez-lui d'utiliser les services Web gratuits et mettez le nom d'utilisateur ici
  • Clé TimeZoneDB. Créez un compte sur https://timezonedb.com/, créez une clé, mettez-la ici

Comment configurer Thingspeak ?

Vous avez besoin de 3 canaux Thingspeak. Les champs sont utilisés comme suit:

Champs CANAL 1

  1. TEMPÉRATURE
  2. HUMIDITÉ
  3. PRESSION
  4. PM01
  5. PM2,5
  6. PM10
  7. CPM
  8. RADIATION

Champs CANAL 2

  1. CO
  2. CO2
  3. NO2
  4. COV

Champs CANAL 3 (Canal système)

  1. DISPONIBILITÉ EN MINUTES
  2. HEAP GRATUIT EN OCTETS
  3. WIFI RSSI (SIGNAL EN DBM)
  4. VOLTAGE DE BATTERIE
  5. SOC LINÉAIRE (ÉTAT DE CHARGE DE LA BATTERIE % - calcul linéaire, proportionnel à la tension)
  6. SOC NATIF (% ÉTAT DE CHARGE DE LA BATTERIE - tel que rapporté par la jauge. tel que lu sur la jauge. REMARQUE: la jauge indique 0% lorsqu'elle atteint 3,6 v tandis que les batteries peuvent être déchargées un peu plus loin, disons au-dessus de 3 v. La limite inférieure, auquel ATMOSCAN s'éteint, est un #define dans le fichier globaldefinitions.h)
  7. TEMPÉRATURE DU SYSTÈME (à partir du bme280, monté directement sur la carte)
  8. HUMIDITÉ DU SYSTÈME (à partir du bme280, monté directement sur la carte)

Le PCB est très compact. Comment puis-je souder les périphériques SMD, en particulier le circuit intégré MAX8903A ?

Tout d'abord, je vous suggère de vous demander si vous souhaitez vous lancer dans le SMD ou s'il s'agit d'un cas unique. Dans ce dernier cas, demandez peut-être à quelqu'un de le faire pour vous. Si vous voulez relever le défi SMD, investissez un peu et procurez-vous les outils adéquats (soudure, flux, petit fer à repasser à l'alcool isopropylique, pistolet chaud, pince à épiler, une caméra USB pas chère, un support PCB). De nos jours, ce sont des trucs bon marché. Ensuite, regardez une vidéo YouTube – il y en a un demi-million – et passez du temps avec un vieux PCB que vous pouvez sacrifier et dessouder/nettoyer/souder certains composants. Vous ne sauriez croire à quel point c'est instructif, pour savoir à quoi s'attendre, obtenir la bonne température, etc. En parlant d'expérience… J'ai commencé à SMD en changeant le connecteur d'affichage d'un iPod touch et j'ai tué le premier !

En effet le PCB Atmoscan est compact et ce circuit intégré n'est pas simple. Encore une fois, je ne vous recommande pas de faire cela comme votre première soudure SMD. Le QFN n'est pas un package convivial même si j'ai déjà soudé un numéro. On n'est jamais sûr d'avoir bien compris…

Sur Atmoscan, je l'ai d'abord soudé, puis ses composants environnants pour pouvoir tester que la partie de charge de la carte fonctionnait, puis j'ai terminé tout le reste. À partir des images jointes, vous devriez pouvoir déduire l'orientation des composants. J'ai utilisé des bibliothèques de composants du domaine public et l'orientation n'est pas très évidente dans la sérigraphie.

Mon chemin: j'ai d'abord mis de la soudure sur les plaquettes avec le fer. Ensuite, beaucoup de flux (spécifique SMD) et j'ai soigneusement positionné le circuit intégré avec des pincettes. Chauffer ensuite le tout à environ 200/220C (en dessous du point de fusion) pour éviter les tensions dues à un chauffage inégal. Ensuite, j'ai augmenté la température à 290C environ et autour du circuit intégré. Si vous mettez un peu de soudure sur un tampon à proximité, vous verrez quand la température est au point de fusion, car il brillera.

Après cela, je l'ai nettoyé avec de l'alcool isopropylique et l'ai soigneusement inspecté avec une caméra USB bon marché. Les problèmes typiques sont l'alignement et la quantité de soudure, car certaines broches peuvent ne pas être connectées. Dans certains cas, j'ai dû y revenir avec un petit fer à souder pour ajouter un peu plus de soudure à certaines broches, car ce circuit intégré a un tampon thermique en dessous qui doit également être soudé. Cela rend un peu difficile de deviner la quantité de soudure et il peut arriver que trop de soudure en dessous la soulève pour que les broches ne touchent pas le PCB.

Cela dit, je ne veux pas vous effrayer. J'ai terminé 3 cartes et je n'ai jamais tué ces circuits intégrés… Une fois, j'ai même dû les retirer, nettoyer et redémarrer à partir de zéro mais cela a finalement fonctionné. Encore une fois, pas super facile mais faisable.

Où as-tu acheté les composants ?

Principalement sur eBay et Aliexpress. Cependant, celles de marque sont originales (Seeed, Pololu, Sparkfun).

Quelques liens INDICATIFS suivent. Remarque: regardez autour de vous, vous pourriez trouver des offres encore moins chères…

www.aliexpress.com/item/ESP8266-Remote-Ser…

www.aliexpress.com/item/PLANTOWER-Laser-PM…

www.aliexpress.com/item/Haute-précision-BME2…

www.aliexpress.com/item/Free-shipping-HDC1…

www.aliexpress.com/item/J34-F85-Free-Shipp…

www.aliexpress.com/item/30pcs-A11-Tactile-…

www.aliexpress.com/item/10PCS-IRF7319TRPBF…

www.aliexpress.com/item/120PC-Lot-0805-SMD…

www.aliexpress.com/item/100pcs-sma-1N5819-…

www.aliexpress.com/item/Free-Shipping-100P…

www.aliexpress.com/item/Chip-Capacitor-080…

www.aliexpress.com/item/92valuesX50pcs-460…

www.aliexpress.com/item/170valuesX50pcs-85…

www.aliexpress.com/item/Si2305-si2301-si23…

www.aliexpress.com/item/100pcs-lot-SI2303-…

www.aliexpress.com/item/20pcs-XH2-54-2-54m…

www.aliexpress.com/item/10pcs-SMD-Power-In…

Première programmationLa carte Atmoscan comprend un circuit de programmation qui est en ligne avec le NodeMCU. La connexion série est normalement utilisée pour la première programmation. Après cela, la programmation OTA via wifi est l'option préférée, car elle peut être effectuée avec l'unité entièrement assemblée. N'oubliez pas que le port série est normalement utilisé par le capteur de particules !

Pour programmer la carte en série, un adaptateur USB-Série (par exemple FTDI232 ou similaire) doit être connecté au connecteur J7 (à côté du bouton de réinitialisation) en suivant le brochage dans le schéma. Le programme peut être téléchargé sans capteurs connectés, sauf que la ligne d'interruption du capteur Geiger doit être connectée à GND, sinon la carte ne démarrera pas (pour ce faire, connectez les broches 1 et 3 dans le connecteur RAD). Le moyen le plus simple de tester la carte sans utiliser le croquis principal - donc sans la complexité des capteurs - est de télécharger CE programme simple via un câble série. Il crée un point d'accès wifi qui permet de flasher davantage avec le programme principal.

IMPORTANT: n'oubliez pas d'utiliser la configuration SPIFFS 4M/2M selon l'instructable, sinon le programme principal ne s'adaptera pas. La carte doit être initialisée via une programmation série avec cette configuration, sinon vous pourriez avoir des problèmes avec l'OTA plus tard.

Malheureusement l'initialisation de certains capteurs se bloque si les capteurs ne sont pas présents (dépend du fournisseur de la bibliothèque). Un exemple est la bibliothèque de capteurs multigaz. Pour vous assurer qu'Atmoscan démarre correctement avec le firmware complet, vous pouvez désactiver le processus associé, voir le point Q&R associé. Un moyen simple de désactiver TOUS les capteurs pour les tests consiste à commenter la ligne #define ENABLE_SENSORS dans le fichier GlobalDefinitions.h.

Lorsque la carte démarre l'esquisse principale pour la première fois, elle doit reconnaître qu'elle n'est pas configurée et doit ouvrir un point d'accès wifi, auquel vous pouvez vous connecter et le configurer. Parmi les paramètres, il y a un serveur syslog qui aide grandement au débogage. Vous pouvez également augmenter le niveau de journalisation en décommentant le #define DEBUG_SYSLOG dans le fichier GlobalDefinitions.h. Veuillez noter que dans le même fichier, il y a aussi un #define DEBUG_SERIAL qui a été utilisé lors du débogage initial. S'il n'est pas commenté, il affiche _quelque_ journalisation résiduelle, mais minime. Un élément ToDo a toujours été de rendre la journalisation uniforme et sélectionnable, mais je n'ai jamais eu le temps de le nettoyer.

Avez-vous modifié les bibliothèques que vous avez utilisées, y a-t-il une configuration nécessaire ? (par opposition à télécharger et compiler)

Bonne question, j'ai oublié de mentionner ce point. En effet il y a quelques mods/configs nécessaires:

  • Bibliothèque https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - instructions de débogage série. A mettre en commentaire, car le port série est utilisé pour un capteur !
  • Bibliothèque https://github.com/Bodmer/TFT_eSPI - nécessite un fichier de configuration où l'affectation des broches et la fréquence SPI sont spécifiées
  • Bibliothèque https://github.com/lucadentella/ArduinoLib_MAX1704… - En regardant les commentaires et les demandes d'extraction, j'ai remarqué qu'il y avait un correctif de bogue qui n'avait jamais été fusionné

Autant que je me souvienne, ça devrait être ça. Faites-moi savoir si des problèmes surviennent.

REMARQUE: veuillez vous référer aux commentaires dans le dernier code source - contient des liens vers toutes les bibliothèques nécessaires et est tenu à jour

Pourquoi certains capteurs lisent-ils du rouge et d'autres du vert dans la vidéo/les images ?

La couleur indique la tendance. Il commence en blanc et si la montée est rouge, si la descente est verte.

Comment gérez-vous la dérive des capteurs au fil du temps ? Quelle est la qualité de ces capteurs? Que puis-je voir avec ces capteurs ?

Honnêtement, ce n'est pas un kit de mesure scientifique. Pour calibrer j'aurais besoin de matériel que je n'ai pas à disposition. C'est vraiment un projet pour animaux de compagnie. J'ai essayé plusieurs capteurs. La particule, le CO2, la température, l'humidité, la pression, Geiger sont plutôt bons à mon avis. Sur le NO2 j'ai des réserves sur l'étalonnage et la conception globale, mais il n'y a pas grand chose de disponible. Dans l'ensemble, ce sont des capteurs grand public.

Cependant, la combinaison est assez bonne pour montrer des choses auxquelles vous ne vous attendriez pas.

Avec l'Atmoscan dans le salon et la cuisine à une pièce, il détecte d'énormes pics de particules lorsque, par ex. faire frire des trucs. On sent le NO2 de la circulation du matin même avec les fenêtres fermées.

Un compteur Geiger était-il vraiment nécessaire ? Montre-t-il quelque chose d'utile ?

Heureusement, nous n'avons pas eu d'incidents nucléaires et la guerre n'est pas encore arrivée… Pourtant, il y a des centrales nucléaires pas si loin et le gouvernement distribue des pilules d'iode pour les enfants à garder dans le tiroir en cas d'incidents… alors je me suis méfié. Jusqu'à présent, je dois dire que les lectures correspondent exactement au rayonnement de fond attendu (0,12 uSv/h)

Quel est le coût total de l'appareil ?

J'avais déjà beaucoup de composants à la maison et les liens ci-dessus vous donnent une idée. Honnêtement, si vous achetez un NetAtmo prêt à l'emploi ou similaire, vous économisez de l'argent. Vous ne pouvez pas battre une entreprise chinoise qui fait des choses à grande échelle ! Cependant, si vous aimez faire peut-être avec vos enfants, cela en vaut la peine. La bonne partie est que j'ai déjà testé (et mis au rebut) un certain nombre de capteurs pour vous….

Et les PCB ? Pouvez-vous m'en vendre un ?

À l'origine, j'en avais fait 10 par dirtypcbs.com et mes fichiers fonctionnaient très bien. Bonne qualité et assez bon marché, 25USD / 20Euro pour 10 PCB. J'en ai utilisé deux et je suis heureux d'envoyer les restants pour le prix nu (2 euros + envoi, selon l'emplacement et les préférences d'expédition). J'ai peur de devoir choisir les premiers qui m'envoient un message privé.

Pouvez-vous faire un kit ou une campagne kickstarter ?

Flatteur, mais honnêtement je n'ai jamais pensé que c'était assez innovant… et en plus, PAS DE TEMPS !!

Cependant, si quelqu'un reprenait l'idée, une deuxième itération serait nécessaire. Il y a des arêtes vives dans la conception qui mériteraient d'être corrigées, mais encore une fois, je n'ai jamais eu assez de temps pour la V2.

Sur le matériel: puis-je ajouter/supprimer un capteur, l'écran, etc. pour étendre les capacités/réduire la consommation d'énergie ?

L'écran est connecté sans utiliser MISO, donc le CPU ne lit jamais à partir de l'écran. Par conséquent, vous ne pouvez tout simplement pas connecter l'écran et cela fonctionnerait très bien. Cela dit, l'affichage n'est allumé que pendant un certain temps après la détection du dernier geste, il n'a donc pas vraiment d'impact sur la consommation d'énergie.

Les capteurs sont plutôt gourmands en énergie et le tout utilise facilement 400/500mA. N'oubliez pas le ventilateur et aussi le fait que le capteur de particules possède également un ventilateur intégré. L'ESP ne passe pas non plus en mode veille, en raison du manque de pons GPIO. Cependant, cela aurait peut-être économisé 20mA…

Le logiciel est modulaire et vous pouvez facilement ajouter/supprimer des processus et des écrans afin de pouvoir ajouter des capteurs ou l'allumer en en supprimant certains, si vous le souhaitez. La seule limitation est le nombre de broches GPIO. Cependant, des capteurs peuvent être facilement ajoutés si I2C, ou bien un expandeur I2C pourrait être utilisé pour ajouter des GPIO…

Pour désactiver un capteur, par exemple pour tester un build partiel, le meilleur moyen selon moi serait de ne pas lancer le processus associé. Cela peut être accompli en commentant l'appel enable() associé dans la fonction void startProcesses() dans le fichier.ino principal. À moins que vous ne souhaitiez modifier structurellement le système, je ne supprimerais pas complètement les processus car l'écran et les processus MQTT les interrogeront. De cette façon, ils devraient simplement retourner zéro. Veuillez noter que l'entrée d'interruption de la carte Geiger doit être abaissée si elle n'est pas utilisée, sinon la carte ne démarrera pas.

Quelles sont les améliorations que vous auriez apportées si vous aviez eu le temps pour une V2.0 ?

Pas dans un ordre particulier..

  • Le PCB pourrait éviter le cuivre derrière l'antenne ESP8266. Je l'ai totalement oublié et cela rend le diagramme de rayonnement non isotrope
  • Le chargeur à mon avis est sous-dimensionné pour une si grosse batterie / la batterie est trop grosse pour le chargeur. Il existe d'autres circuits intégrés et j'en essayerais un autre.
  • Il existe de meilleures jauges de batterie.
  • je rajouterais un capteur d'ozone
  • J'utiliserais un ESP32 pour plus de GPIO et de capteurs Bluetooth hors de l'unité principale.
  • Si j'avais plus de GPIO avec l'ESP32 ou avec un expandeur I2C, j'en utiliserais un pour contrôler le ventilateur et un autre pour éteindre l'unité à partir du logiciel. Maintenant, lorsque la batterie est faible, la seule chose qu'il peut faire est d'afficher un écran de batterie faible. C'est en fait le plus gros inconvénient de la conception, car la situation de batterie faible n'est pas gérée avec élégance.

Sur le logiciel

Cela m'a pris plus de temps que le matériel… Je pense qu'il contient un certain nombre de bons concepts, hélas pas entièrement mis en œuvre. Plus précisément, je pense qu'il devrait être nettoyé, potentiellement étendu et qu'un cadre générique pour les applications ESP8266 pourrait en être facilement dérivé. Pas le temps. Quelqu'un relève le défi ?

Pouvez-vous ajouter la commande vocale ?

Devrait être faisable. Il existe un certain nombre de bibliothèques toutes faites pour contrôler un ESP8266 avec Alexa et je ne vois pas pourquoi l'intégration devrait poser problème. La question intéressante est de savoir ce que vous voulez en faire, en termes de fonctionnalité. Je ne possède pas d'Amazon Echo donc je n'ai jamais essayé.

Comment avez-vous fait les découpes laser ?

Les dessins sont réalisés avec SketchUp. Le programme est sympa mais manque sérieusement de capacités d'exportation. Cependant, la version d'essai de 30 jours est utile car elle possède des fonctionnalités supplémentaires. Je l'ai ensuite importé dans Inkscape pour le traitement final.

Pouvez-vous allumer/éteindre des capteurs pour économiser de l'énergie, via des MOSFET ?

Bonne idée en principe, mais la plupart de ces capteurs doivent être alimentés en permanence car ils ont un temps de préchauffage. En plus… je manque de GPIO dans l'ESP8266. J'ai même dû utiliser GPIO10 qui n'est officiellement pas fonctionnel, mais fonctionne très bien sur l'ESP12E.

De quelles compétences aurais-je besoin ?

Pour le construire à partir de zéro, vous auriez besoin de connaissances en conception électronique. Pas grand-chose vraiment, de nos jours avec internet on n'a plus vraiment besoin de lire les fiches techniques ligne par ligne comme à mes débuts… Si vous utilisez le résultat de mes expérimentations, il vous faut des compétences en soudure CMS, en mécanique et un peu de patience.

Est-ce votre premier projet ?

C'est mon premier instructable mais pas mon premier projet. J'ai beaucoup bricolé dans le passé mais je n'ai vraiment pas beaucoup de temps aujourd'hui. J'ai ressuscité mes compétences rouillées alors que j'essaie d'enseigner quelque chose d'utile à mes enfants..! J'ai fait quelques autres projets que je pourrais un jour publier..

Conseillé: