Utilisation de Mongoose OS sur votre ESP8266

Utilisation de Mongoose OS sur votre ESP8266

Utilisation de Mongoose OS sur votre ESP8266

L’ESP8266 a connu une grande fanfare il y a quelques années. C’était un appareil compatible WiFi bon marché qui offrait une faible consommation d’énergie, une petite taille et quelques broches GPIO.

1605371016 973 Utilisation de Mongoose OS sur votre ESP8266

Au fil du temps, les pirates informatiques ont mis la main sur eux et ont pleinement exploité ce qui pouvait être fait avec eux, mais pour certains, cela restait un mystère. C’était jusqu’à ce que Mongoose OS entre en scène, offrant un moyen simple de flasher le code sur la carte et une API simple pour un prototypage rapide.

Dans ce projet, nous présenterons Mongoose OS, un firmware alternatif pour vos appareils ESP8266, ESP32 qui offre une plate-forme simple pour les projets Internet des objets (IoT). Pour approfondir nos connaissances, nous construirons un projet matériel simple qui nous alertera lorsque le poste arrivera.

Pour ce projet, vous aurez besoin

  • Une carte NodeMCU
  • Un capteur de commutateur Reed
  • Un aimant
  • Un ordinateur avec connexion Internet
  • Une boîte aux lettres
  • 2 x fils de raccordement mâle à mâle
  • Une maquette

La construction matérielle de ce projet est incroyablement simple. Nous n’avons besoin que d’un commutateur Reed pour nous connecter à notre carte NodeMCU. Insérez donc la carte NodeMCU dans la planche à pain, puis insérez le commutateur à lames dans la planche à pain comme indiqué sur le schéma. Ensuite, à l’aide des fils de cavalier, connectez un côté de l’interrupteur Reed à D8 (Pin 15 dans Mongoose OS) et l’autre côté de l’interrupteur Reed se connecte à 3V3.

Utilisation de Mongoose OS sur votre ESP8266

Nous utilisons également des connecteurs Wago pour étendre les fils de notre interrupteur Reed. Les connecteurs Wago sont rapides et faciles à utiliser, nous insérons les fils et les fixons en place, aucun outil requis!

1605371016 989 Utilisation de Mongoose OS sur votre ESP8266

Nous utilisons également un bras en carton pour attacher l’aimant et fournir un élément de flexibilité au bras, juste au cas où le postier serait énergique avec notre courrier.

1605371016 978 Utilisation de Mongoose OS sur votre ESP8266

C’est ça! Passons maintenant à la configuration du logiciel.

Configuration du système d’exploitation Mongoose

1605371016 951 Utilisation de Mongoose OS sur votre ESP8266

Insérez un câble micro USB dans la carte NodeMCU et l’autre extrémité dans votre ordinateur. Pour utiliser Mongoose OS sur notre machine, nous devons d’abord installer le logiciel, et les instructions pour lesquelles peuvent être trouvées sur leur site Web comme https://mongoose-os.com/software.html nous avons suivi les instructions pour Ubuntu Linux.

Quel que soit le système d’exploitation que vous pouvez utiliser, l’exécution de la commande «mos» lancera une nouvelle fenêtre / onglet de navigateur pour la configuration du système d’exploitation Mongoose et notre première tâche ici est de nous assurer que notre carte NodeMCU a été correctement détectée et a reçu un adresse de l’appareil. Dans la première liste déroulante, recherchez l’adresse de périphérique de votre carte NodeMCU, pour Linux / Mac, ce sera quelque chose comme «/ dev / ttyXYZ» et pour Windows, vous devriez voir un port «COM». Sélectionnez l’adresse correcte et appuyez sur Sélectionner.

Pour flasher le système d’exploitation Mongoose sur le NodeMCU, nous devons choisir la plate-forme qui est «esp8266 4M ou plus flash), puis sélectionnez l’application« demo.js »et cliquez sur Flash. Le processus de flash prendra environ 2 minutes et vous relâchera le contrôle une fois terminé.

La dernière étape de configuration consiste à configurer le WIFI avec les paramètres utilisés pour votre réseau.

Configuration terminée, jetons un coup d’œil à l’interface.

Apprendre à connaître Mongoose OS

Mongoose OS fonctionne entièrement dans le navigateur Web (il existe un client de ligne de commande mos, mais la meilleure expérience est via le navigateur) et la disposition de la fenêtre a une colonne à gauche qui fournit un accès rapide aux fichiers, à la configuration et au terminal pour Mongoose OS sur le NodeMCU. La deuxième colonne s’adapte pour afficher le contenu / fichiers / config comme sélectionné dans la première colonne. La colonne de droite contient le code enregistré sur le tableau, ici nous pouvons éditer le code et créer des projets. En bas de la fenêtre, nous pouvons voir les journaux de l’appareil (en bas à gauche) nous montrant la sortie de notre code et les étapes de configuration prises au démarrage. En bas à droite, nous voyons les journaux de l’outil MOS qui nous informent sur la progression du démarrage et du clignotement. Tout en haut à droite de la fenêtre, nous voyons l’adresse IP de la carte et la configuration de l’appareil (pour faire clignoter la carte et apporter des modifications au WiFi.)

Configuration de MQTT

Nous avons déjà couvert ce qu’est MQTT dans un autre article de blog <> mais un aperçu rapide est que MQTT (Message Queue Telemetry Transport) exploite un réseau à faible bande passante et à faible latence sur n’importe quelle connexion Internet. Il fonctionne en utilisant un modèle de publication> courtier> abonné. Les éditeurs publient leurs données à l’aide de «sujets» qui agissent comme des filtres. Le courtier central reçoit le message, puis les abonnés qui recherchent également des messages d’un certain sujet se connectent au courtier et reçoivent des messages en fonction de leurs préférences. Un exemple concret de cela est YouTube, les fournisseurs de contenu publient, YouTube négocie le contenu et les téléspectateurs s’abonnent aux chaînes qui les intéressent.

Dans ce projet, la carte Node MCU est un éditeur, et elle publiera un message sur le sujet «postwatch» lorsque le commutateur Reed est déclenché. Mais avant de pouvoir configurer notre éditeur, nous devons d’abord configurer le courtier auquel notre éditeur enverra des messages.

Créez un courtier rapide

Le moyen le plus rapide de créer un courtier est d’utiliser une machine Raspberry Pi ou Linux et d’installer le logiciel Mosquitto.

Dans un terminal, tapez ce qui suit.

sudo apt install mosquitto mosquitto-clients

Ensuite, pour vous assurer que le courtier MQTT exécute, tapez

sudo service mosquitto start 

Notez l’adresse IP de votre courtier, car l’éditeur (notre Node MCU) et l’abonné (tout appareil que nous souhaitons) devront savoir où se trouve leur courtier.

hostname -a

Configurer l’éditeur

Nous pouvons maintenant configurer l’élément éditeur de la partie Node MCU du projet. Cliquez sur l’option de menu Device Config et dans l’écran de configuration de l’appareil, modifiez les paramètres MQTT afin que le serveur MQTT soit l’adresse IP du courtier, suivie de: 1883. Assurez-vous également que le bouton Activer MQTT est coché. Cliquez ensuite sur le bouton Enregistrer la configuration.

1605371016 287 Utilisation de Mongoose OS sur votre ESP8266

Voilà – maintenant notre carte Node MCU sait où envoyer les messages, il ne nous reste donc plus qu’à écrire le code.

Recevoir les messages

Alors, comment aimeriez-vous être informé de l’arrivée du courrier? Eh bien, voici deux façons dont nous avons utilisé

Application Android pour recevoir des messages

Pour un débogage simple et des messages en temps réel, nous utilisons l’application client MQTT pour Android (https://play.google.com/store/apps/details?id=in.dc297.mqttclpro). Comme il s’avère être un outil facile à utiliser lorsque vous devez confirmer que des messages sont publiés et que nous pouvons publier des messages sur le réseau.

1605371016 209 Utilisation de Mongoose OS sur votre ESP8266

Ubuntu hack pour les pop-ups

Si vous souhaitez recevoir des messages sur votre appareil Linux, nous avons découvert qu’une méthode simple pour afficher les messages consistait à utiliser l’application notifier-envoyer pour créer des notifications qui s’affichent sur le bureau. Nous avons également créé un script bash en une ligne qui permettra d’atteindre cet objectif. Cette commande s’abonnera au sujet «postwatch» en utilisant l’adresse IP du courtier (remplacez-la par la vôtre), puis la sortie de cette commande est redirigée vers une variable appelée OUTPUT et celle-ci est ensuite utilisée dans la commande notify-send pour créer le notifications.

mosquitto_sub -t postwatch -h 192.168.0.3 | while read OUTPUT; do notify-send "$OUTPUT"; done

Codage de l’application Postwatch

Notre application a un objectif, nous dire que le message est arrivé, et nous recevons beaucoup de messages! Ces petits colis de Shenzhen montent rapidement et nous oublions presque toujours ce que nous avons commandé il y a quatre semaines.

Pour éditer le code dans ce projet, nous devons d’abord être dans le sous-menu Device Files et à partir de là, via le Device File Manager, nous devons éditer le fichier «init.js». Cliquez sur le fichier et vous verrez le contenu du fichier apparaître à l’écran. Sélectionnez tout le code dans le fichier, puis supprimez-le.

Nous commençons notre code en chargeant deux bibliothèques; le premier permet d’utiliser MQTT avec le projet. Ensuite, nous chargeons la bibliothèque GPIO afin de pouvoir utiliser le commutateur Reed pour déclencher le code.

load('api_mqtt.js');

load('api_gpio.js');

Nous créons ensuite trois variables. La première spécifie la broche GPIO que nous utilisons, 15. La deuxième variable est le sujet de notre connexion MQTT. Enfin, nous utilisons msg pour spécifier le message qui sera envoyé lorsque l’application est déclenchée.

let pin = 15, topic="postwatch";

let msg = 'Letterbox Open';

La ligne de code suivante est longue, mais elle crée une fonction qui gère les pressions sur les boutons. Notre broche, GPIO15, utilise un pull-up interne, puis nous définissons un temps anti-rebond de 2000 millisecondes pour permettre à la personne de poste de publier avec succès notre article et de ne déclencher le capteur qu’une fois.

GPIO.set_button_handler(pin, GPIO.PULL_UP, GPIO.INT_EDGE_NEG, 2000, function() {

Ensuite, nous passons à la création des étapes prises lorsque le capteur Reed a été déclenché. Nous créons une autre variable appelée «res» et en cela nous publions le message sur MQTT, en utilisant la rubrique appropriée et en convertissant les données en message. À des fins de débogage, nous imprimons le succès ou l’échec du message publié dans le journal des périphériques (en bas à gauche de l’écran) avant de fermer la fonction et de terminer le code du projet.

  let res = MQTT.pub(topic, JSON.stringify(msg), 1);

  print('Published:', res ? 'yes' : 'no');

}, null);

Pour écrire le code sur notre carte NodeMCU, il suffit de cliquer sur «Enregistrer + redémarrer». Donnez-lui quelques instants et maintenant prenez un aimant, placez-le contre l’interrupteur à lames puis retirez-le pour déclencher le tableau pour envoyer un message sur le sujet MQTT «postwatch» pour nous informer que le message est arrivé! Nous pouvons voir le message apparaître dans le journal de l’appareil, nous informant d’un message, et selon la façon dont nous avons choisi de recevoir un message, nous verrons le message apparaître sur cet appareil.

Alors voilà, une application de post-veille automatisée qui nous informe de l’arrivée d’un nouveau message via un message sur MQTT. Pour développer ce projet, vous pouvez utiliser un courtier MQTT public tel que http://www.mqtt-dashboard.com/ afin que les messages de votre application Postwatch puissent être envoyés sur Internet. Évidemment, n’envoyez jamais de données sensibles sur Internet ouvert mais cela pourrait être une option intéressante pour créer un projet qui va très loin!

  • HiLetgo 2pcs NodeMCU LUA ESP8266 CP2102 ESP-12E Internet Wifi Carte de développement Open Source Serial module sans fil Fonctionne parfaitement avec Arduino IDE/Micropython
    ESP8266 CP2102 NodeMCU LUA ESP-12E Module sans fil série WIFI Micro-USB intégré, avec commutateurs de flash et de réinitialisation, facile à programmer Port d'E / S complet et prise en charge sans fil 802.11, téléchargement direct pas besoin de réinitialiser Compatible Arduino, fonctionne parfaitement avec les derniers Arduino IDE / Mongoose IoT / Micropython Accès au téléchargement des données sur le site Web: http://www.nodemcu.com
  • Stemedu Lot de 2 adaptateurs USB vers ESP8266 ESP-01 Prog ESP-01S programmeur téléchargeur CH340C pilote avec bouton de réinitialisation, facile à utiliser
    Ce programmeur WiFi ESP-01S fonctionne avec les ESP-01 et ESP-01s Par rapport au programmateur USB vers ESP8266 version rouge, ce téléchargeur USB vers ESP8266 est utilisé avec une puce CH340C, un circuit de téléchargement automatique ESP8266 et un interrupteur tactile réinitialisé Le module de programmeur ESP-01S est très pratique pour l'utilisateur de télécharger le programme, mettre à jour le firmware, déboguer Pas besoin de connexion, pas besoin d'appuyer sur le bouton, le module WiFi passera automatiquement en mode de téléchargement Vous n'avez pas besoin de le débrancher et de le rebrancher au programme. Même pas besoin d'appuyer sur le bouton de réinitialisation, cela fonctionne juste - programmes, puis réinitialisez et vous pouvez vous connecter en série.