Table des matières:

4 projets en 1 avec DFRobot FireBeetle ESP32 & LED Matrix Cover : 11 étapes (avec photos)
4 projets en 1 avec DFRobot FireBeetle ESP32 & LED Matrix Cover : 11 étapes (avec photos)

Vidéo: 4 projets en 1 avec DFRobot FireBeetle ESP32 & LED Matrix Cover : 11 étapes (avec photos)

Vidéo: 4 projets en 1 avec DFRobot FireBeetle ESP32 & LED Matrix Cover : 11 étapes (avec photos)
Vidéo: Pixel Dust on RGB Matrix displays 2024, Juillet
Anonim
Image
Image
Installez les bibliothèques communes pour les projets
Installez les bibliothèques communes pour les projets

J'ai pensé à faire un instructable pour chacun de ces projets - mais à la fin j'ai décidé que vraiment la plus grande différence est le logiciel pour chaque projet, j'ai pensé qu'il valait mieux faire juste un gros instructable !

Le matériel est le même pour chaque projet, et nous utilisons l'IDE Arduino pour programmer le périphérique ESP32.

Alors, quel est le matériel: tout le matériel a été fourni par mes amis de DFRobot, ils ont de très bons tutoriels et des cartes de base faciles à installer pour cela. Ayez également un bon système de support en place et une expédition assez rapide aux États-Unis.

La divulgation complète de la carte Firebeetle ESP32 et de la matrice LED a été fournie par DF Robot, les projets présentés et dans les vidéos sont les miens.

Ces projets utilisent tous un microcontrôleur DFRobot FireBeetle ESP32 IOT

www.dfrobot.com/product-1590.html

Le wiki d'assistance - avec les instructions d'installation du noyau de la carte peut être trouvé ici:

www.dfrobot.com/wiki/index.php/FireBeetle_…

Nous avons également besoin d'une matrice LED FireBeetle Covers 24x8 (BLEU)

www.dfrobot.com/product-1595.html

Je n'aime pas les leds BLEUES - Elles ont aussi des couleurs différentes.

VERT -

ROUGE -

BLANC -

JAUNE -

Vous n'avez besoin que d'une matrice LED - la couleur est votre choix, elles fonctionnent toutes de la même manière.

Le wiki de support de la matrice LED peut être trouvé ici:

www.dfrobot.com/wiki/index.php/FireBeetle_…

Ici, nous trouvons un lien vers la bibliothèque Arduino.

github.com/Chocho2017/FireBeetleLEDMatrix

Plus sur ceux-ci un peu plus tard….

Quelque chose qui est facultatif, mais peut-être pratique à avoir est un support de batterie MicroUSB 3xAA.

www.dfrobot.com/product-1130.html

Voilà donc le matériel nécessaire - Quels sont les 4 projets -

Étape 1: Les projets

Image
Image

Projet 1: Est-ce une simple horloge NTP à matrice LED avec affichage de l'heure militaire ou affichage de l'heure AMPM, Cette horloge se connectera à un NTP (serveur de temps) pour saisir l'heure et appliquer un décalage pour que vous obteniez l'heure locale. Il affichera l'heure sur la matrice LED. - C'est une horloge très simple, et un 1er projet très simple.

Projet 2: ISS Pass Prediction Display, ce projet utilise le 2ème cœur du processeur. Il affichera la proximité (en miles) de l'ISS, quand s'attendre au prochain passage de l'ISS à votre emplacement (en heure UTC), et éventuellement combien de personnes se trouvent dans l'espace. Étant donné qu'une grande partie de ces informations ne changent pas souvent, nous utilisons le deuxième noyau pour vérifier uniquement les mises à jour des prévisions de réussite, ou le nombre de personnes dans l'espace toutes les 15 minutes. Nous pouvons ainsi éviter un trop grand nombre d'appels d'API au serveur. Ce projet est un peu plus compliqué, mais toujours assez facile à faire.

Projet 3: Un simple panneau de message mobile utilisant MQTT, j'ai revisité un projet qui a été réalisé pour la mini-carte ESP8266 D1, et c'est une matrice LED 8x8 - L'idée est de se connecter à un courtier MQTT, d'envoyer un message à un sujet sur lequel l'appareil est écouter - et afficher ce message. C'est assez facile et très simple à faire une fois que tout est configuré. Et il y a quelques étapes pour configurer le logiciel client MQTT sur un ordinateur de bureau. Une fois configuré, MQTT est un protocole de messagerie très puissant utilisé par de nombreux appareils IoT pour envoyer et recevoir des messages.

Projet 4: Affichage de la station météo - basé sur la mini station météo ESP8266 D1 fabriquée par Squix78 et ThingPulse. Nous récupérons nos données à Wunderground et affichons les conditions actuelles et la température en degrés Fahrenheit. Nous utilisons le 2ème core de l'ESP32, pour mettre à jour nos données toutes les 10 minutes. Il est également simple à configurer.

EXEMPLES DE MINI BONS: La bibliothèque (et les croquis ci-dessus) utilise une police 8x4, la bibliothèque contient également une police 5x4, que j'ai utilisée pour la plupart de ces mini exemples BONS. Il y a quelques problèmes que je peux noter avec la petite police, un qui semble causer des problèmes lorsque vous utilisez le WIFI de l'appareil. C'est quelque chose que je veux explorer davantage, mais j'ai eu le temps. L'autre problème est qu'il ne défile pas, seule la police la plus grande peut défiler. Donc, aucun de ces exemples n'utilise le WIFI - ils mettent simplement à jour l'affichage, et plus à ce sujet seront plus tard.

Commençons…..

Étape 2: installez la carte DFRobot FireBeetle ESP32 dans l'IDE Arduino

Je vais donc vous référer au DF Robot Wiki sur l'installation du noyau de la carte pour l'IDE Arduino.

C'est assez facile à faire avec l'IDE moderne (1.8.x ou mieux).

www.dfrobot.com/wiki/index.php/FireBeetle_…

J'ai trouvé que la bibliothèque WiFi intégrée à l'IDE Arduino pose des problèmes (PS, toute autre bibliothèque WiFi qui peut être installée dans le répertoire de votre bibliothèque peut ou non causer des problèmes). Le seul moyen (ou du moins le moyen le plus simple) que j'ai trouvé pour résoudre le problème est de supprimer la bibliothèque WiFi du répertoire IDE. Malheureusement, il n'y a pas de bon moyen de vous dire où il peut être installé - cela dépend de la façon dont l'IDE est installé et du système d'exploitation que vous utilisez.

Ce que j'ai fait, c'est trouver la bibliothèque WiFi qui cause des problèmes, et déplacer simplement le répertoire WiFi sur votre bureau… et redémarrer l'IDE. De cette façon, vous pouvez conserver la bibliothèque au cas où vous en auriez besoin pour les cartes Arduino WIFI.

90% des problèmes que j'ai vus sont liés au problème ci-dessus. Si vous obtenez beaucoup d'erreurs de compilation, liées à l'utilisation du WiFi à partir du répertoire Arduino IDE ou du répertoire Arduino Library, c'est le problème que vous rencontrez.

Mon 2ème problème est parfois que le téléchargement du croquis ne parvient pas à télécharger - Dans ce cas, je n'ai qu'à appuyer à nouveau sur le bouton de téléchargement, et cela fonctionne.

Et enfin, si vous ouvrez la console série, puis fermez-la, la FireBeetle se bloque.

Je sais que DF Robot travaille activement sur le noyau de la carte, et juste dans le peu de temps que j'ai eu la carte, ils ont sorti un nouveau noyau. Malheureusement, cela n'a pas résolu le problème du WiFi qui est mon plus gros problème.

* Espressif a un gestionnaire de noyau "générique" qui peut être installé, le noyau inclut la carte FireBeetle ESP32, mais j'avais un problème avec la façon dont les broches sont numérotées. La chose intéressante ici est que la bibliothèque WiFi fonctionne avec la bibliothèque WiFi intégrée - donc je sais qu'il y a une solution à ce problème juste au coin de la rue.

Si vous souhaitez essayer les noyaux Espressif, vous pouvez trouver plus d'informations ici:

github.com/espressif/arduino-esp32

Personnellement, j'aime le fonctionnement du noyau DF-Robot, même avec les quelques problèmes que je rencontre.

** REMARQUE: j'utilise LinuxMint 18 qui est basé sur Ubuntu 16.04, je pense, je n'ai essayé cela sur aucune autre machine, mais je pense que le problème est présent pour tous les systèmes d'exploitation basés sur certaines recherches Internet que j'ai effectuées. **

Étape 3: Installez les bibliothèques communes pour les projets

Installez les bibliothèques communes pour les projets
Installez les bibliothèques communes pour les projets

Tous ces projets utilisent quelques bibliothèques communes, il est donc plus facile de faire cette étape maintenant.

Selon la bibliothèque, vous pouvez le trouver dans le gestionnaire de bibliothèque - ce qui est de loin le moyen le plus simple d'installer une bibliothèque.

Une autre méthode courante consiste à installer via un fichier zip, qui fonctionne également. Mais généralement, j'utilise la méthode d'installation manuelle. Il existe un bon tutoriel sur les trois méthodes sur le site Web Arduino.

www.arduino.cc/en/guide/libraries

Pour ces bibliothèques, je recommanderais la méthode manuelle - car il existe quelques bibliothèques différentes portant le même nom, en utilisant le gestionnaire de bibliothèque, vous pouvez vous retrouver avec la mauvaise.

Tous ces projets utilisent un gestionnaire WiFi pour faciliter la connexion à votre wifi - j'ai décidé de le faire donc si vous devez déplacer votre projet, vous n'avez pas besoin de reprogrammer la carte. C'est quelque chose que j'utilise pour les cartes ESP8266, et cela fonctionne bien - ce n'est pas parfait. Chance d'utilisation, la bibliothèque a été portée pour utiliser l'ESP32 par un utilisateur github nommé bbx10. (Ce gestionnaire devrait également fonctionner avec les cartes ESP8266)

Nous devons installer trois bibliothèques pour que cela fonctionne aussi.

Le WiFiManager -

Le serveur Web -

Et enfin le DNSServer -

La bibliothèque DF Robot DFRobot_HT1632C pour la matrice LED est également commune à tous les croquis.

www.dfrobot.com/wiki/index.php/FireBeetle_…

La bibliothèque peut être trouvée ici (Encore une fois, je recommanderais la méthode d'installation manuelle)

github.com/Chocho2017/FireBeetleLEDMatrix

Une note spéciale: dans mon référentiel github - j'ai quelques bibliothèques DFRobot_HT1632C légèrement modifiées

github.com/kd8bxp/DFRobot-FireBeetle-ESP32…

La modification concerne une police plus petite et n'est utilisée que pour certains des exemples bonus. Vous pouvez utiliser la bibliothèque modifiée et cela ne devrait poser aucun problème. Il existe également une bibliothèque légèrement modifiée (attachée à certains croquis sous forme d'onglets) qui peut créer des images bitmap.

Si vous choisissez d'utiliser la version légèrement modifiée, vous devez renommer le répertoire "modified-library" en FireBeetleLEDMatrix et déplacer ce dossier dans le répertoire de votre bibliothèque Arduino. Vous n'êtes pas obligé d'utiliser cette version pour ces projets, elle est nécessaire si vous voulez essayer certaines des polices plus petites des exemples bonus.

Ce sont les bibliothèques communes - nous installerons des bibliothèques spécifiques pour chaque projet.

Passons à la matrice LED….

Étape 4: Le couvercle matriciel LED 24x8

Le couvercle matriciel LED 24x8
Le couvercle matriciel LED 24x8
Le couvercle matriciel LED 24x8
Le couvercle matriciel LED 24x8
Le couvercle matriciel LED 24x8
Le couvercle matriciel LED 24x8

Car nous allons suivre le didacticiel du robot DF pour la matrice LED

www.dfrobot.com/wiki/index.php/FireBeetle_…

Introduction: cet affichage matriciel LED 24 × 8 est spécialement conçu pour la série FireBeetle. Il prend en charge le mode de faible consommation d'énergie et l'affichage à défilement. Avec la puce de pilote de LED haute performance HT1632C, chaque LED a un registre indépendant, ce qui facilite la conduite séparément. Il intègre une horloge RC 256KHz, seulement 5uA en mode basse consommation, prend en charge le réglage de la luminosité PWM à 16 échelles. Ce produit fonctionne également avec les autres microcontrôleurs Arduino comme Arduino UNO.

Spécification:

  • Tension de fonctionnement: 3,3 ~ 5 VLED
  • Couleur: couleur unique (blanc/bleu/jaune/rouge/vert)
  • Puce de lecteur: HT1632C
  • Courant de travail: 6 ~ 100 mA
  • Faible consommation d'énergie: 5uARC
  • horloge: 256KHz
  • Sélection de puce (CS): D2, D3, D4, D5 sélectionnable
  • Affichage de défilement de soutien

Codes PIN par défaut:

  1. DONNÉESD6
  2. WRD7 (généralement non utilisé)
  3. CSD2, D3, D4, D5 sélectionnable (D2 par défaut)
  4. RDD8
  5. VCC 5VUSB; Batterie 3.7VLipo

(Tous ces projets utilisent D2 pour la broche de sélection, cela peut être facilement modifié au besoin.)

À l'arrière de la matrice LED, vous verrez 4 petits commutateurs, assurez-vous de ne sélectionner qu'une des broches CS. Ces petits commutateurs sont la façon dont vous sélectionnez votre broche CS, et la valeur par défaut est D2.

Le DF Robot WIKI a quelques exemples de code, ce code est également dans les exemples pour la bibliothèque. (Je crois)

Autre remarque: utilisez les numéros Dx pour vos broches - sinon les numéros de broches seront les numéros/noms de broches IO

Et cela peut vous poser quelques problèmes.

Définir un point:

X est compris entre 0 et 23 (ou si vous le considérez comme une feuille de calcul, ce sont des colonnes).

Y va de 0 à 7 (ou si vous le considérez comme une feuille de calcul, ce sont des lignes).

La bibliothèque fournit une fonction de point de consigne.

display.setPoint(x, y) cela placera le curseur à cet emplacement, où vous pouvez maintenant imprimer un message.

display.print("Bonjour tout le monde", 40); // Cela entraînera l'affichage de "Hello World" à partir du point x, y et en faisant défiler l'écran.

Il existe également un setPixel (x, y) et un clrPixel (x, y) - setPixel allumera une LED à l'emplacement x, y et clrPixel éteint une LED à l'emplacement x, y.

Il y a d'autres choses que cette bibliothèque peut faire - et la plupart sont incluses dans les exemples.

(Je recommanderais d'exécuter et de modifier les exemples pour voir ce qu'il peut faire).

* Une chose qui semble manquer est de dessiner des bitmaps - la bibliothèque peut en fait le faire, mais pour une raison quelconque, c'est une fonction privée de la bibliothèque. Voir certains de mes exemples bonus pour une version légèrement modifiée de la bibliothèque

** Une autre chose comprend un jeu de polices 5x4, ce qui est bien d'avoir une police plus petite - c'est commenté dans la bibliothèque. Je l'ai décommenté et je l'ai fait fonctionner, mais j'ai remarqué quelques problèmes avec lui - le plus gros, il ne défile pas. Et j'ai remarqué que cela semble causer des problèmes soit avec le wifi, soit peut-être avec une autre bibliothèque que je voulais utiliser.

L'une des bibliothèques modifiées que j'inclus utilise cependant la police 5x4.

Passons aux projets…..

Étape 5: Projet 1: une horloge NTP à matrice LED simple avec affichage de l'heure militaire ou affichage AMPM

Projet 1: une horloge NTP à matrice LED simple avec affichage de l'heure militaire ou affichage AMPM
Projet 1: une horloge NTP à matrice LED simple avec affichage de l'heure militaire ou affichage AMPM
Projet 1: une horloge NTP à matrice LED simple avec affichage de l'heure militaire ou affichage AMPM
Projet 1: une horloge NTP à matrice LED simple avec affichage de l'heure militaire ou affichage AMPM
Projet 1: une horloge NTP à matrice LED simple avec affichage de l'heure militaire ou affichage AMPM
Projet 1: une horloge NTP à matrice LED simple avec affichage de l'heure militaire ou affichage AMPM

Projet 1: Est-ce une simple horloge NTP à matrice LED avec affichage de l'heure militaire ou affichage de l'heure AMPM, Cette horloge se connectera à un NTP (serveur de temps) pour saisir l'heure et appliquer un décalage pour que vous obteniez l'heure locale. Il affichera l'heure sur la matrice LED. - C'est une horloge très simple, et un 1er projet très simple.

Avant de commencer avec ce projet simple, il peut être judicieux de savoir ce qu'est NTP -

NTP est un protocole Internet utilisé pour synchroniser les horloges des ordinateurs avec une référence temporelle. C'est un protocole standard. NTP signifie Network Time Protocol.

NTP utilise UTC comme heure de référence (UTC est Universal Time Coordinated), il a évolué à partir de GMT (Greenwich Mean Time), et dans certains cercles, il est appelé Zulu Time (Militaire). UTC est basé sur une résonance quantique d'un atome de césium.

NTP est tolérant aux pannes et hautement évolutif, le protocole est très précis, utilisant une résolution de moins d'une nanoseconde.

*

Une horloge UTC n'est pas très utile pour la plupart des gens, nous devons donc ajuster notre horloge à l'heure locale. Heureusement, nous pouvons le faire assez facilement. Commençons donc avec cette simple horloge NTP….

Premièrement, nous devons installer une bibliothèque qui facilite la communication avec les serveurs NTP.

github.com/arduino-libraries/NTPClient (cette bibliothèque est probablement dans le gestionnaire de bibliothèque)

Avez-vous sauté l'étape 3 - et ne savez pas comment installer les bibliothèques (?) Mieux vaut revenir en arrière et lire l'étape 3:-)

Vous devez vous rendre sur ce site Web et indiquer la ville la plus proche de vous dans votre fuseau horaire.

www.epochconverter.com/timezones

Lorsque vous appuyez sur Entrée, vous verrez "Résultats de la conversion", et dans les résultats, vous obtiendrez votre décalage (différence par rapport à GMT/UTC) en quelques secondes (pour moi, c'est -14400)

Dans le croquis dfrobot_firebeetle_led_matrix_ntp_clock sur la ligne 66, vous verrez:

#define TIMEOFFSET -14400 // Trouvez votre fuseau horaire décalé ici https://www.epochconverter.com/timezones OFF Set in Seconds#define AMPM 1 //1 = AM PM, 0 = MILITARY/24 HR Time

remplacez -14400 par votre décalage. La ligne suivante, vous verrez AMPM 1 - cela entraînera l'affichage de l'heure en AM/PM - si vous préférez le voir en 24 heures, faites un zéro.

Téléchargez ensuite le croquis sur votre tableau, connectez-vous au point d'accès (gestionnaire wifi) et entrez les détails de votre wifi. SI vous l'avez déjà fait, vous devriez voir "connecté" défiler sur l'écran et quelques secondes plus tard, vous devriez voir l'heure.

C'est tout pour ce projet - simple et facile à utiliser…..

(Améliorations possibles: affichez le mois, le jour et l'année, configurez un buzzer et des alarmes - contrôlez généralement ce que vous voyez via une page Web. Ces idées nécessiteraient une grande réécriture de l'esquisse simple actuelle)

Prêt pour un autre projet simple - Affichez où se trouve l'ISS - Faites des prédictions et combien de personnes se trouvent dans l'espace ! (PS, ce croquis utilise une page Web pour contrôler ce qui est affiché) …..

Étape 6: Projet 2: Affichage des prévisions de réussite de l'ISS,

Projet 2: affichage de la prévision du passage de l'ISS,
Projet 2: affichage de la prévision du passage de l'ISS,
Projet 2: affichage de la prévision du passage de l'ISS,
Projet 2: affichage de la prévision du passage de l'ISS,
Projet 2: Affichage des prévisions de passage de l'ISS,
Projet 2: Affichage des prévisions de passage de l'ISS,

Projet 2: ISS Pass Prediction Display, ce projet utilise le 2ème cœur du processeur. Il affichera la proximité (en miles) de l'ISS, quand s'attendre au prochain passage de l'ISS à votre emplacement (en heure UTC), et éventuellement combien de personnes se trouvent dans l'espace. Étant donné qu'une grande partie de ces informations ne changent pas souvent, nous utilisons le deuxième noyau pour vérifier uniquement les mises à jour des prévisions de réussite, ou le nombre de personnes dans l'espace toutes les 15 minutes. Nous pouvons ainsi empêcher trop d'appels d'API au serveur. Ce projet est un peu plus compliqué, mais toujours assez facile à faire.

Ce projet est basé sur l'un de mes projets précédents qui peut être trouvé ici:

(Un système de notification ISS simple) En ce sens, j'ai utilisé un ESP8266 avec un écran OLED intégré (D-Duino). Pour la plupart, ce projet utilise simplement un système d'affichage différent, je l'ai développé afin que vous puissiez modifier ce que vous voulez voir à la volée via une page Web. Alors, commençons….

La plupart du crédit pour la facilité d'utilisation revient à https://open-notify.org qui a une API très simple et facile à utiliser. L'API open-notify a trois choses qui peuvent être affichées, l'emplacement de l'ISS en latitude et longitude, des prédictions de réussite basées sur une latitude et une longitude données. Et enfin combien de personnes (et leurs noms) sont dans l'espace.

Nous devrons installer une autre bibliothèque - La bibliothèque ArduinoJson.

github.com/bblanchon/ArduinoJson

Nous avons également besoin de TimeLib.h mais je ne sais pas d'où je l'ai obtenu ou s'il est inclus dans l'IDE (désolé)….

Alors pourquoi prédire où sera l'ISS - L'ISS contient divers équipements de radio amateur, et quand il est "au-dessus de la tête", un opérateur radio amateur peut entrer en contact avec l'ISS en utilisant des radios très simples (et bon marché). Je l'ai même fait en étant mobile (conduite en voiture). Vous n'avez vraiment pas besoin de grand-chose pour que cela fonctionne. La seule chose dont vous avez besoin est de savoir où il se trouve. Et pointer l'antenne dans sa direction générale aide.

Les lignes 57, 58, 59 sont des variables d'affichage - si elles sont définies sur 1, vous verrez un affichage, si elles sont définies sur 0 (zéro), vous ne verrez pas d'affichage. (Ces variables peuvent être définies dans le croquis ou mises à jour à partir d'une page Web créée par le Firebeetle - nous en parlerons plus tard).

int locDis = 1; //Afficher l'emplacement de ISSint pasDis = 0; //Afficher les prédictions de réussite int pplDis = 1; //Afficher les personnes dans l'espace

donc locDis affichera l'emplacement de l'ISS en latitude et longitude - il affichera également à combien de kilomètres il se trouve.

pasDis obtiendra les prédictions de réussite de open-notify.org et les affichera.

et enfin, pplDis affichera les noms et le nombre de personnes dans l'espace - cela peut être très long, ce n'est pas le cas

changer souvent non plus. (vous pouvez les modifier ou les laisser, c'est totalement facultatif)

Nous devons également connaître notre latitude et notre longitude et les mettre dans le croquis.

Cela n'a pas besoin d'être une latitude/longitude précise, cela peut être le centre de votre ville, ou juste un peu plus loin. L'empreinte de l'ISS est large lorsqu'elle est au-dessus de la tête, et des centaines (ou des milliers) de kilomètres peuvent être parcourus, donc être un peu sur votre lat/long ne va pas être un facteur décisif (la plupart du temps), la communication sur 500 miles est assez courante.

Si vous ne connaissez pas votre latitude et longitude, ce site peut vous aider.

www.latlong.net Près de la ligne 84 du croquis, vous verrez quelque chose comme ceci:

//Trouvez votre latitude et longitude ici//https://www.latlong.net/ float mylat = 39.360095; flotteur mylon = -84,58558;

Cela devrait être tout ce qui doit être changé. Téléchargez le croquis et connectez le Firebeetle à Internet - et vous devriez voir l'emplacement de l'ISS donné en lat/long et à combien de kilomètres il se trouve (rappelez-vous que ce sera une distance approximative. L'ISS se déplace très rapidement, et au moment où l'affichage est terminé, l'ISS s'est déplacée de plusieurs kilomètres de l'endroit où elle se trouvait). Vous devriez également voir les gens dans l'espace. (SI vous n'avez pas modifié la variable ci-dessus).

Nous utilisons le deuxième noyau de l'ESP32 pour exécuter un site Web, l'utilisation du site nous permet de contrôler ce qui est affiché sur la matrice LED. Cela devrait être assez intuitif sur la façon dont cela fonctionne, une section montre ce qui est activé pour l'affichage, une autre section a des boutons "oui" "non" - cliquer sur "oui" signifie que vous voulez le voir, le "non" signifie ne pas ' pas le montrer. Vous devriez également voir que la section supérieure change en fonction des boutons.

La seule chose qui n'est pas si simple ici est de savoir comment trouver l'adresse IP du Firebeetle - malheureusement, je n'ai pas pu trouver un bon moyen de la trouver - alors j'ai juste utilisé la console série de l'IDE pour afficher il (9600 bauds).

Ouvrez la console et vous devriez voir l'adresse IP. (ouvrez-le avant de recevoir le message connecté) - mon autre choix était de l'afficher sur la matrice LED une fois au démarrage - j'ai décidé de ne pas le faire car vous pourriez ne pas regarder l'heure et vous la manquerez. J'avais envisagé d'envoyer un SMS, ou quelque chose du genre, mais au final, je reste simple. (J'ai également essayé d'attribuer une adresse IP/passerelle/etc statique, je ne pouvais pas le faire fonctionner correctement avec le gestionnaire wifi - le code est toujours dans le croquis, donc si quelqu'un le découvre, faites-le moi savoir)

L'esquisse prend également l'avance de FreeRTOS dans le noyau ESP32 - Nous avons une tâche qui s'exécute toutes les 15 minutes environ, ce qui fait que cela met à jour les prévisions de réussite, ainsi que les personnes dans l'espace. Comme je l'ai dit plus tôt, les gens dans l'espace ne changent pas tant que ça, donc cela pourrait probablement être déplacé vers une autre tâche et peut-être exécuté une fois toutes les 12 heures (ou 6 heures) - mais cela fonctionne et cela simplifie les choses.

Pour ceux qui ne connaissent pas FreeRTOS est un moyen de laisser un micro-contrôleur à un seul cœur exécuter plusieurs tâches

Normalement, vous devez inclure des bibliothèques et d'autres éléments pour le faire fonctionner - mais il est intégré au noyau de l'ESP32 - ce qui fait de l'ESP32 un appareil très puissant. pour plus d'informations sur FreeRTOS

freertos.org/

AMÉLIORATIONS: il y a un certain nombre de choses qui peuvent être améliorées pour ce projet, et presque chaque jour, je pense à quelque chose qui pourrait être fait un peu différent, ou modifié, ou ajouté.

Et dans le répertoire plus d'exemples du référentiel, vous pouvez voir certaines des choses précédentes/différentes auxquelles j'ai pensé - certaines d'entre elles n'ont pas fonctionné, d'autres ont juste changé et d'autres ont été incluses dans l'esquisse actuelle.

* À un moment donné, j'ai essayé d'ajouter un néopixel à l'écran pour que ce soit un peu plus comme mon projet précédent - je n'ai jamais réussi à le faire fonctionner correctement (j'ai trouvé que c'était un problème d'alimentation que je n'avais pas envisagé) Je suis travailler sur un moyen d'améliorer cette idée *

En écrivant cette étape, j'ai pensé que je pourrais peut-être ajouter un moyen de mettre à jour votre latitude et votre longitude sur le site Web - de cette façon, le croquis n'aurait jamais besoin d'être modifié - je réfléchirai un peu plus à celui-ci également.

Un moyen amélioré d'obtenir l'adresse IP est autre chose que j'aimerais faire (en pensant toujours à celle-ci aussi)

Passons à notre prochain projet…..

Étape 7: Projet 3: un panneau de message mobile simple utilisant MQTT

Projet 3: un panneau de message mobile simple utilisant MQTT
Projet 3: un panneau de message mobile simple utilisant MQTT
Projet 3: un panneau de message mobile simple utilisant MQTT
Projet 3: un panneau de message mobile simple utilisant MQTT
Projet 3: un panneau de message mobile simple utilisant MQTT
Projet 3: un panneau de message mobile simple utilisant MQTT

"loading="paresseux" " loading="paresseux"

Bonus Partie 2 - Afficher les images
Bonus Partie 2 - Afficher les images
Bonus Partie 2 - Afficher les images
Bonus Partie 2 - Afficher les images
Bonus Partie 2 - Afficher les images
Bonus Partie 2 - Afficher les images

Il s'avère donc que la bibliothèque peut afficher des images - pour une raison quelconque, cette fonction semble être "privée" - eh bien, pour ces prochaines esquisses, j'ai à nouveau modifié la bibliothèque et fait de drawImage une fonction publique.

Cette fois, j'ai mis la bibliothèque modifiée dans le répertoire sketches, vous n'avez donc pas besoin de réinstaller la bibliothèque, le sketch se regarde d'abord, puis il cherchera dans le répertoire de la bibliothèque, donc c'est bon !

*** Je prévois de soumettre ce changement à DFRobot, car c'est vraiment très cool et plutôt chouette de pouvoir faire ce type de croquis ***

Croquis d'images matricielles LED, ici j'essayais d'abord de comprendre ce que la bibliothèque voulait, et ce qui fonctionnerait et ne fonctionnerait pas - avec plus ou moins de succès. J'ai trouvé que les images 8x8 fonctionnent le mieux, mais vous pouvez également en faire fonctionner d'autres. J'ai également trouvé quelques éditeurs matriciels en ligne, certains fonctionnent mieux que d'autres.

xantorohara.github.io/led-matrix-editor/ - semble fonctionner correctement, crée des images 8x8 et vous les voulez sous forme de tableaux d'octets.

www.riyas.org/2013/12/online-led-matrix-fo… celui-ci fonctionne bien et a la capacité de faire des écrans plus grands que 8x8, l'écran semble être tourné sur le côté avec cet écran toutefois. Les tableaux d'octets semblent fonctionner le mieux ici. Je l'ai utilisé pour faire les "space invaders" vus dans la vidéo ci-dessus.

Alors, comment ça marche, drawImage(const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);

variable de tableau d'octets d'image, la largeur de l'image (8), la hauteur de l'image (8), la position de départ sur l'écran x (0), y (0) généralement, et un numéro de décalage, ce que je ne suis pas 100% sûr de ce qu'il fait, donc la plupart du temps je l'ai laissé à zéro.

Dans le croquis LED Matrix Images - il y a 8 tableaux d'octets différents - avec trois méthodes différentes également.

- les feux d'artifice sont les premiers tableaux, honnêtement, je ne sais pas comment celui-ci fonctionne - mais cela fonctionne.

ensuite, il y a une bouche - cela ne fonctionne pas vraiment bien, la bouche est dans le mauvais sens pour une, et essayer d'apporter des changements ne fait qu'empirer les choses. (apprendre ce qui fonctionne et ce qui ne fonctionne pas est la moitié du plaisir)

Suivi du premier marioImg - c'est trop grand pour l'affichage, et je pense que c'est là que le décalage entre en jeu - je l'ai utilisé ici, et vous pouvez voir le devant de mario, si vous changez le décalage en 1 vous ' Je verrai le dos de lui. (je ne peux pas vraiment vous dire pourquoi ou ce que fait le décalage. Il semble déplacer l'image mais pourquoi 2 la décale pour que vous puissiez voir l'avant de lui et pourquoi 1 décale l'autre direction, je ne peux pas vous le dire)

IMAGES - le tableau d'octets est un signe @ que j'ai créé - il ressemble à ce que j'ai créé à l'aide de l'outil à l'adresse

Le tableau d'octets pic1 ressemble également à ce que j'essayais de faire, seulement il est plus petit que ce que j'essayais - ce que c'est, je ne peux pas le dire, mais je peux dire qu'en général, cela ressemble à ce que je faisais dans l'éditeur.

mario2Img - c'est ma propre version du plus grand Mario conçu pour une taille d'écran de 8x8 - et il y a un ou deux pixels hors de propos (c'est ma faute, pas les écrans), ça ressemble à un petit Mario (en quelque sorte).

envahisseur1 et envahisseur2 - à la fois mon idée pour un envahisseur de l'espace. ils se sont avérés plutôt bons, et en mettant les images les unes sur les autres, je suis capable de créer l'effet de mouvements de pieds.

Il y a deux croquis de feux d'artifice dans le répertoire, chacun est un peu différent et mérite d'être essayé.

L'un a les feux d'artifice qui se déplacent sur l'écran, donc un peu plus d'animation/différente… l'autre a deux feux d'artifice affichés en même temps

Il y a aussi trois croquis "d'envahisseurs", chacun est un peu différent, l'un a l'envahisseur se déplaçant à travers l'écran, et vous pouvez regarder comment j'ai fait ça - (il y a peut-être de meilleures façons de le faire, je ne sais pas)

Encore plus: il y a quelques croquis dans le répertoire de test du référentiel - la plupart d'entre eux n'ont pas fonctionné comme je le voulais, ou étaient des idées que je voulais faire, mais n'ont pas fonctionné comme je le voulais. Je les ai laissés parce que quelqu'un a des idées *(J'ai fait un petit "bouclier" avec un pixel WS2812 dessus pour une utilisation avec l'écran ISS, mais je l'ai connecté à la ligne 3v, et je n'en avais tout simplement pas assez alimentation avec la matrice LED en cours d'exécution également, le pixel a bien fonctionné, sans la matrice LED tu, donc il y a encore quelque chose que je pourrais faire avec)*

Il existe également un répertoire appelé "Plus d'exemples" - ce sont des variations sur certains des croquis du projet, que quelque chose ait été ajouté ou supprimé, ou modifié d'une manière ou d'une autre. Pour ceux-ci, ils fonctionnent - ils ne sont tout simplement pas le projet final. Alors je les ai encore laissés, quelqu'un pourrait en tirer quelque chose d'utile. (Peut-être)

J'espère que vous avez apprécié cette instructable autant que j'ai aimé faire ces projets:-)

Étape 11: Liens…

Ce projet a été parrainé et soutenu par DF Robot. Veuillez utiliser les liens ci-dessous pour les produits:

Firebeetle ESP32 -

Firebeetle Cover 24x8 LED Matrix -

Mon référentiel de code:

Si vous trouvez ceci ou l'un de mes projets utile ou agréable, veuillez me soutenir. Tout ce que j'obtiens sert à acheter plus de pièces et à faire plus/de meilleurs projets.

www.patreon.com/kd8bxp

Bibliothèque NTPClient

ArduinoJson.h

Bibliothèque météo ESP8266

Bibliothèque Json-Streaming-Parser

Conseillé: