Août 2019.
Voulez-vous également créer des projets IoT innovants qui utilisent la puce ESP32, ou des modules basés sur ESP32, de la société populaire EspressIF? Eh bien, je l'ai fait et je l'ai fait. Et j'espère que vous aussi.
L'objectif de ce kit de démarrage bien documenté est d'accélérer le développement de vos projets IoT pour le matériel ESP32 à l'aide du framework ESP-IDF de ESPRESSIF et de vous inspirer du type d'applications que vous pouvez créer pour ESP32 en utilisant divers modules matériels.
Êtes-vous prêt à découvrir comment vous pouvez commencer rapidement?
mkdir ~/esp
cd ~/esp
git clone -b v3.2.2 --recursive https://github.com/espressif/esp-idf.git esp-idf
Cette pièce contient des informations de base sur certains panneaux de développement ESP32 que j'ai utilisés initialement:
Une carte de développement ESP32 ne peut être programmée (facilement) que par un tel adaptateur.
Cette pièce documente quelques produits et comment les configurer.
Les batteries rechargeables sont souvent utilisées dans les projets IoT.
Cette partie est un chargeur de batterie populaire, un déchargeur de batterie autodidacte et des détails sur les batteries populaires telles que les batteries lion et les batteries LifePO4. Il contient également quelques spécifications sur les batteries non recommandables Lisoci2 professionnelles lisoci2 au lithium-thionyl-chlorure à utiliser dans des conditions difficiles.
Quelques documents sur principalement les MOSFET de puissance des canaux n qui sont souvent utilisés en combinaison avec une carte de développement ESP32.
Documentation sur le module TP4056.
Quelques documents sur les régulateurs de tension LDO qui font partie d'une carte de développement ESP32.
Le kit de démarrage comprend divers projets de travail que vous pouvez exécuter instantanément - opposé aux extraits que vous devez coller vous-même, ce qui n'est pas facile pour un débutant.
Ces projets:
Donnez des informations sur la façon d'utiliser efficacement le cadre officiel ESP-IDF.
Incluez une tonne de meilleures pratiques de codage et pratiques de configuration.
Démontrez comment utiliser les nouveaux composants ESP-IDF de ce kit de démarrage, tels que les bandes LED RVB et les capteurs Meteo.
Le projet spécial esp32_mjd_components :
Sous-mettons en évidence quelques projets qui montrent comment utiliser le cadre ESP-IDF de base.
esp32_button_basics Comment s'interfacer avec les boutons (commutateurs).esp32_deep_sleep_wakeup_basics montre comment utiliser un interrupteur ou un capteur de porte / fenêtre magnétique pour réveiller un ESP32 à partir d'un sommeil profond.esp32_http_client démontre les bases de l'utilisation du composant ESP-IDF standard "ESP32_HTTP_CLIENT".esp32_gpio_basics Comment interagir avec les broches GPIO de la carte de développement.esp32_gpio_scanner Comment scanner toutes les broches GPIO et découvrir leur fonction d'E / S.esp32_i2c_scanner Comment scanner tous les appareils esclaves sur les broches I2C et identifier leur adresse d'esclave I2C. C'est pratique lorsque vous travaillez avec de nouveaux appareils d'esclaves I2C.esp32_ledc_pwm_basics Comment utiliser le pilote LEDC ESP-IDF standard (un pilote de contrôleur LED à l'aide de PWM).esp32_nvs_basics Comment utiliser le pilote standard ESP-IDF NVS (stockage non volatile) avec une partition NVS personnalisée.esp32_rmt_basics Comment utiliser le pilote RMT ESP-IDF standard.esp32_spiffs_basics Comment utiliser le pilote de système de fichiers ESP-IDF standard ESP-IDF.esp32_sw180_tilt_sensor Comment s'interfacer avec ce capteur d'inclinaison (aucun composant supplémentaire nécessaire).esp32_timer_basics Comment utiliser le pilote de minuterie ESP-IDF standard.esp32_uart_basics Comment utiliser le pilote UART ESP-IDF standard.esp32_uart_do_output Comment utiliser le pilote UART ESP-IDF standard.esp32_udp_client démontre les bases de la mise en œuvre d'un client UDP à l'aide du cadre ESP-IDF.Soulignons quelques projets qui montrent comment utiliser les composants supplémentaires du kit de démarrage ESP32 MJD.
esp32_ads1115_adc_using_lib Demonstrates the basics of using the MJD ESP-IDF component "mjd_ads1115" for the ESP32 and the popular breakout boards of the TI ADS1115 Ultra-Small, Low-Power, I2C-Compatible, 860-SPS, 16-Bit ADCs With Internal Reference, Oscillator, and Programmable Comparator using the Bus i2c.esp32_am2320_temperature_sensor_using_lib Comment lire les données du capteur AOSONG AM2320 Meteo.esp32_bh1750fvi_lightsensor_using_lib comment lire les données du capteur d'intensité de lumière BH1750.esp32_bme280_sensor_using_lib Comment lire les données du capteur BOSCH BME280 METEO.esp32_bmp280_sensor_using_lib Comment lire les données du capteur BMSCH BMP280 METEO.esp32_dht11_temperature_sensor_using_lib Comment lire les données du capteur de température AOSONG DHT11.esp32_dht22_temperature_sensor_using_lib Comment lire les données du capteur de température AOSONG DHT22 / AM2302.esp32_door_sensor_reed_switch montre comment utiliser un capteur de porte / fenêtre magnétique qui est basé sur un interrupteur à roseau.esp32_ds3231_clock_using_lib Comment obtenir / définir des données de la carte d'horloge DS3231 ZS042 RTC en temps réel.esp32_hcsr501_pir_sensor_using_lib Comment lire les données du capteur infrarouge humain HC-SR501 PIR.esp32_huzzah32_battery_voltage_using_lib Comment utiliser des fonctionnalités spécifiques de la carte de développement Adafruit Huzzah32. Exemple: lire le niveau de tension de la batterie.esp32_jsnsr04t_using_lib Ce projet montre toutes les caractéristiques du module de capteur ultrasonique imperméable JSN-SR04T-2.0 en combinaison avec une carte de développement ESP32. Il vide les mesures dans le journal de débogage.esp32_jsnsr04t_oled_mosfet_using_lib Ce projet montre toutes les fonctionnalités du module de capteur ultrasonore étanche JSN-SR04T-2.0 en combinaison avec une carte de développement ESP32, un module d'affichage OLED, un MOSFET de puissance pour faire en sorte que le capteur est en cours de consommation et un somnifère profonde.esp32_ky032_obstacle_sensor_using_lib Comment lire les données du capteur d'évitement de l'obstacle infrarouge KY-032.esp32_ledrgb_using_lib Comment contrôler les bandes LED RGB (telles que les néopixels Adafruit et les produits BTF-Lightning).esp32_linked_list_basics Comment utiliser le composant Liste lié.esp32_lorabee_using_lib Comment interagir avec la carte de rupture Sodaq Lorabee (Microchip RN2843 LORA Transmetteur). Ce projet démontre les commandes de base pour configurer l'appareil et lire / écrire le NVM.esp32_lorabee_rx_using_lib Comment interagir avec la carte de rupture Sodaq Lorabee (Microchip RN2843 Lora Transmetteur). Ce projet démontre les fonctionnalités de réception LORA RX. Remarque: il utilise Lora P2P et non Lorawan.esp32_lorabee_tx_using_lib Comment interagir avec la carte de rupture Sodaq Lorabee (Microchip RN2843 Lora Transmetteur). Ce projet démontre la fonctionnalité de transmission LORA TX. Remarque: il utilise Lora P2P et non Lorawan.esp32_lorabee_using_pc_usbuart Ce projet montre comment émettre des commandes de base au module Lorabee à l'aide d'un PC Windows et d'une carte USB-UART (comme un FTDI). C'est un moyen facile de se familiariser avec les fonctionnalités de la carte Lorabee / Microchip RN2843A.esp32_mlx90393_using_lib Comment obtenir des données de champ magnétique à l'aide du capteur de champ magnétique Melexis MLX90393.esp32_neom8n_gps_using_lib Comment obtenir des données GPS du module GPS UBLOX NEO-M8N.esp32_scd30_sensor_settings_using_lib Ce projet pour le module Sensirion SCD30 CO2 et RH / T est utilisé pour vérifier que le capteur fonctionne correctement, pour afficher tous les paramètres ** du capteur et pour exécuter les différents modes d'étalonnage.esp32_scd30_sensor_readings_using_lib Ce projet pour le module Sensirion SCD30 CO2 et RH / T Sensor lit en continu la mesure du CO2, les mesures associées et dérivées et l'indice de qualité de l'air.esp32_sht3x_sensor_using_lib Ce projet démontre les composants MJD_SHT3X. Le composant MJD_SHT3X pour le capteur numérique et de température numérique Sensirion est utilisé, configurez l'appareil et collectez ses mesures de sortie (température CF, humidité relative% et alos le point de rosée C F.esp32_ssd1306_oled_using_lib Ce projet pour les écrans OLED populaires 128x32 et 128x64 basés sur le pilote SSD1306 OLED IC démontre le composant MJD_SSD1306 pour afficher du texte sur un affichage OLED.esp32_tmp36_sensor_ads1115_adc_using_lib Ce projet démontre les composants MJD_ADS1115 et MJD_TMP36. Le composant MJD_ADS1115 pour le convertisseur analogique-numérique TI ADS1115 est utilisé pour lire la sortie de tension du capteur de température analogique. Le composant MJD_TMP36 pour le capteur TMP36 est utilisé pour convertir la lecture de tension brute de l'ADC à la température ambiante en degrés Celsius de manière transparente.esp32_wifi_device_scanner Comment analyser tous les canaux WiFi et découvrir les appareils.esp32_wifi_ssid_cloner Comment cloner les points d'accès existants.esp32_wifi_ssid_scanner Comment analyser tous les canaux WiFi et découvrir les points d'accès.esp32_wifi_ssid_spammer Comment créer des points d'accès supplémentaires dans la zone.esp32_wifi_stress_test Cette application exécute un test de contrainte pour la carte de développement ESP32 dans le rôle de station WiFi. Le but est de vérifier la stabilité du pilote logiciel WiFi ESP32 d'une version spécifique du cadre ESP-IDF; Pour vérifier son fonctionnement correct avec les produits du point d'accès WiFi de divers fournisseurs.J'ai remarqué que de nombreux modèles de codage revenaient encore et encore dans les premiers projets que j'ai développés pour l'ESP32.
Donc, après un certain temps, j'ai commencé à mettre ces modèles de codage dans des bibliothèques distinctes. L'ESP-IDF est un cadre extensible, donc ces bibliothèques sont implémentées sous forme de nouveaux composants ESP-IDF qui peuvent être injectés facilement dans n'importe quel projet basé sur ESP-IDF.
Tous les composants MJD ESP-IDF sont centralisés dans le projet esp32_mjd_components .
Les composants peuvent être à peu près divisés en 3 groupes:
Lié à la programmation dans le langage C (qui a ses propres bizarreries comme tous les autres langages de programmation). Exemple: listes liées.
Lié à l'environnement ESP32 et aux spécificités des systèmes intégrés. Exemples: un composant WiFi facile. Ils facilitent l'utilisation de ces fonctionnalités ESP-IDF.
Lié au réseautage. Quelques exemples: interfaçage avec un serveur MQTT et certaines fonctions DNS. Le composant résume la complexité et le rend plus facile à utiliser.
Lié aux périphériques que vous câlinez jusqu'à la puce ESP32 ou le module ESP32. Quelques exemples: carte LORA, LED RGB, capteurs de température, cartes GPS, horloges RTC, capteurs PIR et capteurs d'obstacles. La composante résume la complexité du périphérique.
Ceci est la liste des nouveaux composants:
mjd le composant de base qui contient des fonctions à usage général.mjd_ads1115 pour le 16 bits TI ADS1115 Analog-to-Digital-Convertor.mjd_am2320 pour le capteur METEO AOSONG AM2320.mjd_bh1750fvi pour le capteur d'intensité de lumière BH1750.mjd_bme280 pour le capteur BOSCH BME280 METEO.mjd_bmp280 pour le capteur METEO BOSCH BMP280.mjd_dht11 pour le capteur de température AOSONG DHT11.mjd_dht22 pour le capteur de température AOSONG DHT11 / AM2302.mjd_ds3231 pour la carte d'horloge DS3231 ZS042 RTC en temps réel.mjd_hcsr501 pour le capteur infrarouge humain HC-SR501 PIR.mjd_huzzah32 pour la carte de développement Adafruit Huzzah32 (Lire le niveau de tension de la batterie).mjd_jsnsr04t pour le module de capteur ultrasonique étanche JSN-SR04T-2.0.mjd_ky032 pour le capteur d'évitement des obstacles infrarouges KY-032.mjd_ledrgb Composant pour contrôler diverses bandes LED RVB (puces WorldSemi WS28XX telles que la gamme de produits Adafruit Neopixels).mjd_list qui implémente les listes liées telles qu'elles sont utilisées dans le noyau Linux.mjd_log pour faciliter la journalisation dans l'application.mjd_lorabee pour interagir avec la carte RN2483A Sodaq Lorabee Microchip (contient une puce Lora Microchip RN2843 868MHz).mjd_mlx90393 Composant pour le capteur de champ magnétique MLX90393 MELEXIS (axe XYZ et métriques de température).mjd_mqtt pour interagir avec un serveur MQTT (en tant que client MQTT).mjd_nanopb pour travailler avec des tampons de protocole Google. Il comprend les fichiers C communs de la bibliothèque Nanopb V0.3.9.2. Il déclare également les directives de compilation spécifique au projet NANOPB (-D) dans MakeFile.projbuildmjd_net pour faciliter diverses fonctionnalités de réseautage (obtenir l'adresse IP, les noms d'hôtes DNS, etc.).mjd_neom8n pour le module GPS U-Blox NEO-M8N.mjd_scd30 pour le module Sensirion SCD30 CO2 et RH / T.mjd_sht3x pour le capteur d'humidité et de température numériques Sensirion Sht3x.mjd_ssd1306 pour les écrans OLED populaires 128x32 et 128x64 qui sont basés sur le pilote IC SSD1306 OLED.mjd_tmp36 pour le capteur de température analogique TMP36 à partir de dispositifs analogiques. À utiliser avec un ADC.mjd_wifi Pour faciliter, en tant que station WiFi, une connexion à un point d'accès WiFi.Catégorisons ces composants plus en détail:
Ce composant prend en charge plusieurs packages LED RVB. Il est livré avec la documentation essentielle telle que les fiches techniques, les schémas et les instructions sur la façon de les câbler à votre conseil de développement et finalement une alimentation supplémentaire.
Ces composants sont livrés avec la documentation essentielle telle que les fiches techniques, les schémas et les instructions sur la façon de les câbler à votre conseil de développement.
Procédure:
git clone https://github.com/pantaluna/esp32-mjd-starter-kit.gitcd dans le répertoire du projet que vous souhaitez explorer sous ./projects .make menuconfig pour modifier les paramètres du projet que vous souhaitez exécuter (par exemple GPIO PIN #, WiFi Credentials, ...).make flash monitor pour construire et télécharger l'exemple sur votre carte de développement et surveiller l'exécution via le terminal série. Le cadre ESP-IDF (et sa documentation) est très puissant et étendu.
J'ai eu du mal à commencer rapidement. Je suis juste un développeur assaisonné complet (backend / frontend) sans beaucoup d'expérience dans le développement de solutions IoT à l'aide de systèmes intégrés.
Plus précisément, je pouvais comprendre toutes les fonctionnalités du cadre ESP-IDF, mais j'ai eu du mal à tout coller ensemble, et développer rapidement de vrais projets pour de vraies solutions en utilisant des périphériques spécifiques tels que des capteurs, des cartes LORA, des tableaux GPS et des bandes LED. Par exemple, je voulais commencer par des projets contrôlant divers capteurs dans un réseau et analyser les données sur un serveur central, puis passer à des projets plus complexes.
Deuxièmement, il était difficile de trouver une bonne documentation (fiches techniques, diagrammes, photos du câblage) des différents dispositifs périphériques tels que les capteurs Meteo, les planches GPS, les LED RVB, etc. et comment utiliser ces appareils en combinaison avec une carte de développement basée sur ESP32.
J'ai donc développé au fil du temps ces composants supplémentaires, une bonne documentation et de nombreux projets de travail ciblant toute une suite de périphériques qui sont généralement utilisés dans les projets IoT.
C'est le bon moment pour redonner quelque chose à la communauté ESP32 et libérer tout ce que j'ai appris en ce qui concerne l'open source, afin que tout le monde puisse bénéficier de ce travail.
Vous avez 2 options pour commencer à développer pour la puce ESP32:
Il est important de savoir que les deux cadres sont stables et utilisables, mais ils sont toujours en cours de développement significatif par EspressIF, et de nouvelles versions majeures sortent régulièrement; Je m'attends à ce que cela se poursuive au moins jusqu'au T1 2018.
Après avoir expérimenté les deux cadres, j'ai décidé d'aller avec le cadre ESP-IDF, plus spécifiquement V3.1 et plus. J'essaie toujours de publier des bibliothèques compatibles avec la dernière version stable.
Le kit de démarrage ESP32 vous fait démarrer rapidement. Si vous avez besoin de fonctionnalités supplémentaires d'un composant existant ou si vous souhaitez proposer un nouveau composant, veuillez soumettre un problème.
Tous les composants MJD sont centralisés dans le projet mjd_components .
Le kit n'est pas conçu pour implémenter toutes les fonctionnalités imaginables de tout projet ESP32. Si une nouvelle fonctionnalité est très spécifique pour votre projet, la meilleure approche consiste à faire votre propre paquet de composants ESP-IDF avec les fonctionnalités que vous souhaitez. Vous pouvez utiliser ces composants comme fondation; N'oubliez pas de mentionner que vous avez obtenu les composants de ce kit de démarrage.
Que signifie "MJD"? C'est un mot de code sans signification et il est utilisé dans la langue C pour rendre les identificateurs uniques. Cette approche garantit que vous pouvez utiliser ces nouveaux composants ESP-IDF dans tout autre projet C.
Pourquoi tous les projets et composants sont-ils stockés dans un référentiel GitHub (opposé à avoir un repo GitHub pour chaque projet et chaque composant)? Je pense que cela rend le kit de démarrage plus facile à utiliser pour les débutants. À l'avenir, le kit pourrait être configuré à l'aide de sous-modules Git.
Vérifiez GitHub.
Libérez des composants supplémentaires pour les capteurs de gaz, les capteurs de particules de poussière, un composant de boucle de courant de 4 à 20 mm, des affichages TFT et des matrices LED RGB.
Libérez des projets supplémentaires pour démontrer les mises à jour OTA (améliorez le micrologiciel à distance).
Pour libérer une plate-forme IoT au public afin que vous puissiez gérer les appareils sur le terrain et analyser les données entrantes.
Pour créer un nouveau site Web pour la documentation technique de ce kit.