samedi 18 juillet 2020

ESP32-CAM: gestion à distance de la carte SD

J'ai déjà publié quelques projets consistant à enregistrer sur une carte microSD les photographies prises par un module ESP32-CAM (voir les articles enregistrement sur carte microSD et photographie time lapse). Un inconvénient de ces précédents projets, c'est que pour visionner les photos déjà enregistrées, il était nécessaire d'éjecter la carte afin de lire son contenu avec un autre appareil.

Je vous présente aujourd'hui une version améliorée dans laquelle une page web générée par l'ESP32-CAM nous offre la possibilité de voir le contenu de la carte microSD, et d'effacer les photos non-désirées à partir de n'importe quel appareil branché au même réseau WIFI.

La photo ci-dessous vous donne un aperçu de la page web.

On peut prendre une nouvelle photo en cliquant sur le bouton "Prendre une photo". Elle est immédiatement sauvegardée sur la carte SD.


La page présente également la liste des fichiers présents sur la carte microSD. Lorsqu'on clique sur le nom du fichier, la photo est affichée (vous pouvez la télécharger en utilisant le bouton droit de la souris).



Un bouton "Supprimer" permet d'effacer le fichier de la carte microSD.



Le sketch est basé en partie sur un exemple intitulé SDWebServer, qui était automatiquement installé lors de l'ajout de la carte ESP8266 dans l'IDE Arduino.

Afin d'utiliser le sketch ci-dessous, vous devez avoir installé dans l'IDE Arduino les extensions nécessaires à la programmation de la carte ESP32; les instructions détaillées sont ici. La façon de programmer l'ESP32-CAM avec l'IDE Arduino est expliquée en détail dans cet autre article.

Voici le sketch:

-
-

Lors du démarrage du programme, l'adresse IP de l'ESP32-CAM s'affiche dans le moniteur série. Il s'agit de copier cette adresse dans un navigateur web pour atteindre la page web générée par l'ESP32-CAM.


À lire également:

Mes autres publications concernant l'ESP32-CAM:


Yves Pelletier (TwitterFacebook)


mardi 7 juillet 2020

Mesurer la pression atmosphérique avec BMP180 et micro:bit

Le capteur BMP180 a été spécialement conçu pour mesurer la pression atmosphérique ainsi que la température. Dans cet article, nous le branchons à une carte micro:bit qui pourra tout aussi bien être programmée avec MakeCode qu'avec MicroPython.  Afin de simplifier les choses au maximum, nous afficherons la pression atmosphérique (en hPa) et la température (en °C) sur la matrice de LEDs du micro:bit.

Capteur BMP180 et micro:bit


Connexions

Le capteur BMP180 communique ses mesures avec le protocole I2C. On le branche donc au micro:bit de la façon suivante:

  • Broche VIN  du BMP180:   3 V du micro:bit
  • Broche GND du BMP180: GND du micro:bit
  • Broche SCL du BMP180: P19 du micro:bit
  • Broche SDA du BMP180: P20 du micro:bit

Programmation avec MakeCode

Le programmation avec MakeCode est extrêmement simple si vous installez l'extension BMP180 par Shaoziyang: vous allez dans la section "Extensions", ce qui peut se faire en passant par la roue d'engrenage en haut à droite...


...et vous faites une recherche de "bmp180":


Une fois l'extension installée dans votre projet, vous disposez d'une nouvelle catégorie "BMP180", qui contient deux blocs "pressure" et "température".




Il s'agit d'insérer ces blocs dans votre programme chaque fois que vous désirez connaître la pression ou la température:


Programmation en MicroPython

Si vous préférez programmer en MicroPython, ce sera tout aussi facile puisque Shaoziyang, l'auteur de l'extension pour MakeCode, a également écrit une bibliothèque en MicroPython. Avec cette bibliothèque, la pression et la température s'obtiennent respectivement grâce aux méthodes Pressure() et Temperature(), comme dans l'exemple de script ci-dessous.

-

-

À lire aussi:

D'autres articles impliquant le micro:bit:
D'autres projets impliquant le capteur BMP180:
La carte micro:bit utilisée pour la rédaction de cet article a été fournie gratuitement par DigitSpace.

Yves Pelletier (TwitterFacebook)


vendredi 3 juillet 2020

Capteur de champ magnétique à effet Hall KY-024

Le capteur à effet Hall KY-024 est un module qui permet de détecter la présence d'un champ magnétique, ou de mesurer son intensité.


Le capteur lui-même est situé du côté opposé aux broches de connexion (il a l'allure d'un petit transistor): il s'agit d'un SS49E; sa broche de sortie transmet une tension proportionnelle à l'intensité du champ magnétique.  Sa sensibilité à 25°C est typiquement de 1.4 mV/Gauss, mais elle varie d'un specimen à l'autre, donc celle de votre capteur peut aussi bien être de 1,0 mV/Gauss que de 1,75 mV/Gauss. Pour calculer un résultat précis en Gauss ou en Tesla, une calibration est donc nécessaire.

Le module comporte également un comparateur LM393 qui sert à produire un signal numérique indiquant si l'intensité du champ magnétique est inférieure ou supérieure à un certain seuil.

Le module KY-024 comporte 4 connecteurs: AO, G, + et DO.
  • La broche AO (Analog Out) est la sortie analogique qui transmet la mesure du champ magnétique. Lorsque le champ magnétique est nul, sa tension est égale à la moitié de la tension d'alimentation du module (donc 2,5 V si vous alimentez le module avec une tension de 5 V, 1,65 V si vous alimentez le module avec une tension de 3,3 V).  En présence d'un champ magnétique, la tension augmente ou diminue selon la direction du champ. La sortie AO est pertinente si vous désirez mesurer un champ magnétique, ou observer comment il varie dans le temps. Pour l'utiliser, vous devez la brancher à une entrée analogique d'un microcontrôleur (ou même à un simple voltmètre, si le champ magnétique ne varie pas trop rapidement).
  • La broche G (Ground) doit être branchée à la masse (broche GND du microcontrôleur, ou la borne négative de la source d'alimentation).
  • La broche + doit être alimentée avec une tension de 3,3 V ou 5 V. Puisque la tension de sortie du module dépend de cette alimentation, il est important de choisir 3,3 V si vous utilisez un microcontrôleur fonctionnant à un niveau logique de 3,3 V (exemples: ESP8266,  STM32, Raspberry Pi...) alors qu'une tension de 5 V sera réservée aux microcontrôleurs qui fonctionnent à un niveau logique de 5 V (exemple: Arduino Uno).
  • La broche DO (digital Out) sera utilisée pour détecter la présence d'un champ magnétique (pour un compte-tours, par exemple). Cette sortie génère un signal numérique BAS en l'absence de champ magnétique, et HAUT en présence d'un champ magnétique. La sensibilité du capteur peut être ajustée au moyen du potentiomètre intégré au module (une rotation en sens horaire permet de réagir à des champs plus faibles). La LED située près du potentiomètre s'allume lorsque le signal est haut, ce qui facilite l'ajustement du potentiomètre.
Sur la photographie ci-dessous, la LED s'allume lorsqu'on approche l'aimant.




Mise à l'essai

Pour observer le comportement des deux sorties du module KY-024, j'ai branché la broche AO du module à l'entrée A0 d'un Arduino Uno, et j'ai branché la broche DO du module à l'entrée 7 de l'Arduino Uno. Un petit aimant était placé à différentes distances du capteur.



Le sketch est minimaliste: j'affiche dans le moniteur série la valeur analogique lue à l'entrée A0 et la valeur numérique lue à l'entrée 7.



En absence de champ magnétique, mon module a affiché une valeur analogique de 517 et un niveau logique bas.


J'ai approché un aimant: la valeur analogique a augmenté, alors que le signal numérique est demeuré bas.


J'ai inversé l'aimant, et l'ai approché de nouveau. Cette fois, la valeur analogique diminue, et le signal logique devient haut quand le signal analogique atteint environ 485.



Contrairement à ce que j'aurais pensé,  le potentiomètre affecte le signal analogique. Par exemple, après avoir tourné le potentiomètre dans le sens antihoraire, la valeur mesurée en absence de champ magnétique est d'environ 525...


...et la valeur de transition du signal numérique semble sensiblement la même qu'auparavant, mais elle correspond à un champ magnétique plus intense (l'aimant devait être plus proche du capteur).



À lire également:

D'autres façons de détecter ou de mesurer un champ magnétique:
Yves Pelletier (TwitterFacebook)