Récit de la façon dont le MT8060 c Arduino s'est fait des amis

Cet article se concentre sur le moniteur de qualité de l'air MT8060 avec un capteur de dioxyde de carbone et la capacité de lire ses lectures sur un PC et Arduino.

De cet article, vous apprendrez:

  • Comment j'ai démonté cet appareil.
  • Comment connecter un capteur de CO2 à un Arduino sans le démonter.
  • Comment lire les données et comment les convertir sous la forme dans laquelle elles sont affichées à l'écran (et même dans une plus grande plage de valeurs).
  • Croquis et acheminement des câbles inclus.

Attention au trafic!

L'essence du problème


Une fois que je suis allé à Geektimes, j'ai trouvé plusieurs articles sur le capteur de dioxyde de carbone MT8060 de DAJET. Dans les commentaires, il y a eu une discussion active sur la possibilité de connecter cet appareil à un ordinateur pour recevoir des données. Dans les commentaires, je n'ai pas pu partager mon expérience sur ce sujet (il n'y avait pas encore de mode R&C), j'ai donc décidé d'écrire un article, en ouvrant en même temps la question plus en détail et avec des «images».

Malheureusement, cette modification de l'appareil n'a pas la capacité de transférer des données via USB. Mais il y a un port de diagnostic sur lequel vous pouvez lire toutes les données, ainsi que calibrer l'appareil (probablement). La section suivante décrit comment accéder à ce port et comment s'y connecter. Il n'est pas nécessaire de répéter cela - à la fin de la section suivante, toutes les données sont montrées pour se connecter au port sans démonter l'appareil.

Démontage et exploration de la connectivité


Les photos ont été prises sur l’appareil photo du téléphone, parfois de très mauvaise qualité, je n’ai pas fait de gros efforts car Je ne pensais pas que j'écrirais un article, mais je l'ai fait au cas où.

Donc, à l'arrière, il y a trois bouchons en caoutchouc, derrière lesquels se trouvent trois boulons. Les bouchons peuvent être retirés avec une pince à épiler ou ramassés avec une aiguille.



En plus des boulons, les deux moitiés du corps tiennent également sur les verrous, qui sont situés autour de tout le périmètre du corps. Pour séparer les moitiés, il suffit de tenir un cure-dent autour du périmètre du boîtier, un espace d'un demi-millimètre suffit pour que les loquets s'ouvrent. Ensuite, ouvrez doucement le boîtier et voyez que du microcircuit à la coque arrière, il y a un tuyau en caoutchouc, et vous pouvez endommager les supports et microcircuits auxquels il est attaché lors de mouvements brusques.



Vous pouvez maintenant voir l'arrière du PCB, des fils de diagnostic et du connecteur RJ45 de l'appareil. Après avoir parcouru la notation tracée sur le circuit, je suis allé à l'article CO2MeterHacking , qui a examiné un appareil similaire. En me connectant, comme décrit dans l'article, et en exécutant l'esquisse qui y est proposée, j'ai reçu les données précieuses, qui coïncidaient partiellement avec les données affichées à l'écran - l'objectif principal a été atteint.

De plus, le brochage de ces broches sur le connecteur RJ45 était perceptible. Après avoir regardé le câblage et téléphoné, juste au cas où les contacts, j'ai dessiné un schéma de connexion.



La désignation et le but des contacts sont les suivants:

  • C (Horloge) - un signal d'horloge.
  • D (données) - signal de données.
  • G (masse) - masse.
  • V (V DD ) - alimentation + 3V.

Le brochage convenait à un connecteur à quatre cœurs standard et à des fins de test, un tel connecteur compatible arduino a été assemblé.



L'appareil peut être assemblé, mais j'ai précédemment retiré le dongle, bloquant l'accès extérieur au port RJ45. Il est fixé sur quatre loquets, que je plie doucement de l'intérieur, mais je pense que vous pouvez l'obtenir en le soulevant simplement de l'extérieur, sans avoir à démonter l'appareil. La photo ci-dessous montre comment elle tient et à quoi ressemblent les loquets.



Lecture et décodage des paramètres


Des recherches supplémentaires ont été effectuées sur le dispositif assemblé, avec un port "ouvert", et ils étaient purement logiciels.
Nous connectons le fil orange (broche D ) à la broche D3 de l'arduino, le blanc-vert (broche C ) à la broche D2 de la carte compatible arduino.



Les données sont transmises à l'aide du protocole SPI. Pour la lecture et le décodage des données, une méthode et une simple esquisse ont été écrites qui transmettent l'humidité, la température et la concentration de dioxyde de carbone au port série.

Après le démarrage de l'esquisse, des données identiques aux lectures sur l'écran de l'appareil commencent à circuler vers le moniteur du port série une fois par seconde environ.



Bien que le niveau d'humidité sur l'appareil s'affiche comme Lo, lors de la lecture des lectures via le port, elles sont assez visibles pour elles-mêmes en tant que valeurs inférieures à 20. On ne sait pas pourquoi cela a été fait, probablement afin de ne pas faire un autre "feu de circulation" en termes d'humidité, mais de sortir Lo si l'humidité est déjà extrêmement basse.

C'est tout, en fait: les données arrivent toutes les secondes, vous pouvez tracer en haute résolution ou écrire toute autre logique. Par exemple, j'ai fait une notification via Telegram sur les indicateurs allant au-delà de la norme, ce qui élimine la nécessité de surveiller constamment les indicateurs. J'ai également réglé Mi Band sur les notifications appropriées - il est pratique si les lectures dépassent la limite la nuit et que vous devez éteindre l'humidificateur ou ventiler. Vous pouvez aller plus loin et intégrer ces indicateurs au système de ventilation automatique, ou à une prise intelligente dans laquelle le même humidificateur est connecté - d'autres restrictions ne sont que pour l'imagination.

Réflexions à voix haute sur les données sans fil


Un article sur revspace suggère d'utiliser le transfert de données sans fil, mais vous pouvez également trouver un exemple d'esquisse pour envoyer des données à l'aide de l'émetteur NRF24L01 +. De plus, à l'intérieur du boîtier, il y a suffisamment d'espace libre, comme il me semble, ce qui est suffisant pour un petit contrôleur et un module sans fil. De plus, il y a une alimentation 3V à l'intérieur (contacts G et V ), ce qui élimine le besoin d'utiliser des alimentations tierces, eh bien, 5V du port USB peut être utilisé si 3V ne suffit pas. Si je décide de mettre en œuvre une sorte de méthode de transfert de données sans fil, j'écrirai un autre article à ce sujet.
C'est tout pour l'instant, merci d'avoir regardé!

Références et sources



, !

Source: https://habr.com/ru/post/fr390607/


All Articles