# Kit ESP32 - M5StickC

Dans l'optique de fournir des kits pour apprendre à programmer des microcontrôleurs, je me suis penché sur les M5Stick-C de M5Stack.

M5Stack est une entreprise chinoise basée à Shenzhen (surprenant non :-) ) qui vend des kits ESP32 à des prix très corrects ainsi que des modules pour celui-ci.  
[https://docs.m5stack.com/#/en/core/m5stickc](https://docs.m5stack.com/#/en/core/m5stickc)

[![m5stickc_02_1200x1200.png](https://doc.labsud.org/uploads/images/gallery/2019-08/scaled-840-/m5stickc_02_1200x1200.png)](https://doc.labsud.org/uploads/images/gallery/2019-08/m5stickc_02_1200x1200.png)

## Présentation

Leur produit phare sont les m5Stack mais ils coûtent assez cher, là où les M5stick-C coûtent 9,95$ (frais de port non compris) pour ce prix-là on a :

- un ESP32 dans un boitier
- 5 broches disponibles (3 en broches et 2 avec un câble groove)
- Un gyroscope / accéléromètre (MPU6886)
- 2 Boutons
- Un système de gestion de l'alimentation (AXP192) capable de fournir du 5V et de mettre en veille l'ESP32
- Une entrée USB-C
- Une LED infrarouge (la portée n'est pas terrible)
- Une LED
- Un micro numérique (SPM1423)
- Un écran TFT 80x160 (ST7735R)
- Une batterie de 80mAh
- Un câble USB-C

## Livraison

La livraison standard prend son temps (2 à 3 semaines), je l'avais testé avec l'ancienne version du M5Stick.  
La livraison DHL a pris quand même une bonne semaine, la raison étant que la douane est passée par là (je la déconseille du coup).

## Programmation

Afin de programmer le M5Stick-C, M5Stack propose 3 choix :

- UI-Flow, **un système de bloc Scratch** (programmable à distance) mais il est très limité pour le M5Stick-C, le système est basé sur Micropython et permet de choisir directement depuis l'écran, plusieurs programmes.
- **Micropython** (utilisable avec UI-flow en même temps) mais leur version ne contient pas certaines fonctionnalités de la version officielle (WebREPL par ex.), toutefois il est possible d'installer la version officielle (mais on a plus les modules pour faciliter l'usage de l'écran)
- **Arduino** : Les bibliothèques sont disponibles directement dans le logiciel Arduino, c'est quasiment le seul moyen de pouvoir accéder à toutes les fonctionnalités facilement.

## Test

### LED IR

La Led IR est assez marrante, mais la portée me semble très faible, avec IRremoteESP8266, on a accès à un paquet de protocole  
[https://github.com/crankyoldgit/IRremoteESP8266](https://github.com/crankyoldgit/IRremoteESP8266)

### MQTT

Je l'ai testé comme télécommande pour allumer la salle de formation, ça marche bien, l'écran permet d'avoir un retour sur ce qui se passe.

### Mode Veille / Capteur PIR

A l'aide d'un capteur PIR de KeyStudio, j'ai fait un capteur connecté sur un serveur VPS en MQTT chiffré avec la mise en veille de l'ESP32.

J'ai réussi avec 1 à 2 activations par heure à tenir 12h.

### Strip Neopixels

J'ai testé le contrôle de neopixels avec Micropython, et c'est assez simple à utiliser par ce biais, l'avantage est que l'on a un retour direct sur les commandes et l'on peut créer des fonctions afin de simplifier la programmation.

### Projets de la communauté

**Une horloge Nixie (virtuel)**  
[http://community.m5stack.com/topic/1087/m5stickc-nixie-tube-clock](http://community.m5stack.com/topic/1087/m5stickc-nixie-tube-clock)

**Le classique œil (contrôlable avec le bouton)**  
[http://community.m5stack.com/topic/1090/m5stickc-electronic-animated-eyes](http://community.m5stack.com/topic/1090/m5stickc-electronic-animated-eyes)

**Un Spectromètre Audio**  
[http://community.m5stack.com/topic/1089/m5stickc-audio-spectrum-display](http://community.m5stack.com/topic/1089/m5stickc-audio-spectrum-display)

**Flappy Bird**  
(Dans les exemples Arduino)  
Absolument injouable, mais une jolie démo

### Conclusion

Bien que peu connu en occident, leur kit est assez populaire en Chine et au Japon, ça risque de changer vu qu'Adafruit le propose maintenant dans leur boutique.

A première vue, c'est un kit vraiment sympa, malgré son nombre de broches limités.