Taula de continguts:

4 projectes en 1 amb DFRobot FireBeetle ESP32 i coberta de matriu LED: 11 passos (amb imatges)
4 projectes en 1 amb DFRobot FireBeetle ESP32 i coberta de matriu LED: 11 passos (amb imatges)

Vídeo: 4 projectes en 1 amb DFRobot FireBeetle ESP32 i coberta de matriu LED: 11 passos (amb imatges)

Vídeo: 4 projectes en 1 amb DFRobot FireBeetle ESP32 i coberta de matriu LED: 11 passos (amb imatges)
Vídeo: FireBeetle 2 ESP32 S3 WROOM-1 getting started tutorial 2024, Desembre
Anonim
Image
Image
Instal·leu biblioteques comunes per als projectes
Instal·leu biblioteques comunes per als projectes

Vaig pensar en fer una instrucció per a cadascun d'aquests projectes, però al final vaig decidir que realment la diferència més gran és el programari de cada projecte. Vaig pensar que era millor fer-ne un de gran.

El maquinari és el mateix per a cada projecte i estem utilitzant l'IDE Arduino per programar el dispositiu ESP32.

Quin és el maquinari: tot el maquinari el van proporcionar els meus amics de DFRobot, tenen molt bons tutorials i són fàcils d’instal·lar plaques bàsiques per a això. També teniu instal·lat un bon sistema d’assistència i un enviament bastant ràpid als Estats Units.

DF Robot ha proporcionat la targeta Firebeetle ESP32 i la matriu LED, els projectes presentats i els vídeos són propis.

Tots aquests projectes fan servir un microcontrolador DFRobot FireBeetle ESP32 IOT

www.dfrobot.com/product-1590.html

Les instruccions d’instal·lació del wiki de suport - amb el nucli del tauler es poden trobar aquí:

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

També necessitem un FireBeetle Covers 24x8 LED Matrix (BLAU)

www.dfrobot.com/product-1595.html

No m’agraden els leds BLAUS: també tenen colors diferents.

VERD:

VERMELL:

BLANC:

GROC:

Només necessiteu un LED Matrix: el color és la vostra elecció, tots funcionen igual.

El wiki de suport de LED Matrix es pot trobar aquí:

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

Aquí trobem un enllaç a la biblioteca Arduino.

github.com/Chocho2017/FireBeetleLEDMatrix

Més informació sobre això una mica més endavant …

Alguna cosa que és opcional, però potser útil és tenir un suport de bateria MicroUSB 3xAA.

www.dfrobot.com/product-1130.html

Per tant, aquest és el maquinari necessari - Quins són els 4 projectes -

Pas 1: els projectes

Image
Image

Projecte 1: és un senzill rellotge LED NTP de matriu amb visualització d'hora militar o visualització d'hora AMPM, Aquest rellotge es connectarà a un NTP (servidor d’hora) que agafa l’hora i aplica un paràmetre desactivat perquè obtingueu l’hora local. Es mostrarà l'hora a la matriu LED. - És un rellotge molt senzill i un primer projecte molt senzill.

Projecte 2: Visualització de prediccions ISS Pass, aquest projecte utilitza el segon nucli del processador. Es mostrarà la proximitat (en milles) de la ISS, quan es pot esperar el proper passi ISS a la vostra ubicació (en hora UTC) i, opcionalment, quantes persones hi ha a l’espai. Com que molta d’aquesta informació no canvia sovint, fem servir el segon nucli només per comprovar si hi ha actualitzacions de les prediccions de passatge o quantes persones hi ha a l’espai cada 15 minuts. D’aquesta manera, podem evitar massa trucades d’API al servidor. Aquest projecte és una mica més complicat, però encara és bastant fàcil de fer.

Projecte 3: Un senyal de missatge mòbil senzill mitjançant MQTT, vaig tornar a visitar un projecte que es va fer per a la mini placa ESP8266 D1 i que és de matriu LED de 8x8: la idea és connectar-se a un broker MQTT, enviar un missatge a un tema del dispositiu escoltar i mostrar aquest missatge. És bastant fàcil i molt senzill de fer un cop s'hagi configurat tot. I hi ha uns quants passos per configurar el programari client MQTT en un ordinador de sobretaula. Un cop configurat, MQTT és un protocol de missatgeria molt potent que utilitzen molts dispositius IoT per enviar i rebre missatges.

Projecte 4: Visualització de l'estació meteorològica: basat en la mini estació meteorològica ESP8266 D1 fabricada per Squix78 i ThingPulse. Agafem les nostres dades de Wunderground i mostrem les condicions actuals i la temperatura en graus Fahrenheit. Utilitzem el segon nucli de l’ESP32 per actualitzar les nostres dades cada 10 minuts. També és senzill de configurar.

BOUNS MINI EXEMPLES: La biblioteca (i els esbossos anteriors) utilitzen un tipus de lletra de 8x4, la biblioteca també conté un tipus de lletra de 5x4, que he utilitzat per a la majoria d’aquests mini exemples de BOUNS. Hi ha un parell de problemes que puc observar amb el tipus de lletra petit, un que sembla causar problemes quan utilitzeu la WIFI del dispositiu. És una cosa que vull explorar més, però he tingut temps. L'altre problema és que no es desplaça, només la font més gran pot desplaçar-se. Per tant, cap d’aquests exemples no utilitza la WIFI: només actualitzen la pantalla, i més informació sobre aquests serà posterior.

Comencem…..

Pas 2: instal·leu la placa DFRobot FireBeetle ESP32 a l'IDE Arduino

Així doncs, us referiré a la wiki del robot DF sobre la instal·lació del nucli de la placa per a l’IDE Arduino.

És bastant fàcil de fer amb l'IDE modern (1.8.x o superior).

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

Vaig trobar que la biblioteca WiFi integrada a l'IDE Arduino causa problemes (PS qualsevol altra biblioteca WiFi que potser estigui instal·lada al directori de la biblioteca pot causar problemes o no). L'única manera (o almenys la forma més senzilla) que he trobat de solucionar el problema és eliminar la biblioteca WiFi del directori IDE. Malauradament, no hi ha cap bona manera d’indicar-vos on potser s’ha instal·lat; depèn de com s’instal·li l’IDE i del sistema operatiu que utilitzeu.

El que he fet és trobar la biblioteca WiFi que està causant problemes, i simplement moure el directori WiFi del directori al vostre escriptori … i reinicieu l'IDE. D’aquesta manera podeu conservar la biblioteca per si la necessiteu per a les taules WIFI Arduino.

El 90% dels problemes que he vist han estat relacionats amb el problema anterior. Si teniu molts errors de compilació relacionats amb l’ús de WiFi des del directori Arduino IDE o del directori Arduino Library, aquest és el problema que teniu.

El meu segon número és que de vegades no es pot carregar l'esbós. En aquest cas, només he de tornar a prémer el botó de càrrega i funciona.

I, finalment, si teniu la consola sèrie oberta i la tanqueu, el FireBeetle es congela.

Sé que DF Robot està treballant activament en el nucli de la placa, i en el poc temps que tinc la placa han llançat un nou nucli. Malauradament, no va resoldre el problema de WiFi, que és el meu problema més important.

* Espressif té un gestor bàsic "genèric" que es pot instal·lar, el nucli inclou la placa FireBeetle ESP32, però tenia problemes amb la forma en què té els pins numerats. L’interessant aquí és que la biblioteca WiFi funciona amb la biblioteca WiFi integrada, de manera que sé que hi ha una solució a aquest problema a la volta de la cantonada.

Si voleu provar els nuclis Espressif, podeu obtenir més informació aquí:

github.com/espressif/arduino-esp32

Personalment, m'agrada el funcionament del nucli DF-Robot, fins i tot amb els pocs problemes que tinc.

** NOTA: Estic fent servir LinuxMint 18, que es basa en Ubuntu 16.04, crec, no ho he provat en cap altra màquina, però crec que el problema està present per a tots els sistemes operatius basats en algunes cerques a Internet que he fet. **

Pas 3: instal·leu biblioteques comunes per als projectes

Instal·leu biblioteques comunes per als projectes
Instal·leu biblioteques comunes per als projectes

Tots aquests projectes fan servir algunes biblioteques habituals, de manera que ara és més fàcil fer aquest pas.

Depenent de la biblioteca, podeu trobar-la al gestor de la biblioteca, que és amb molt la forma més senzilla d’instal·lar una biblioteca.

Una altra forma habitual és instal·lar-la mitjançant un fitxer zip, que també funciona igual. Però generalment faig servir el mètode d’instal·lació manual. Hi ha un bon tutorial sobre els tres mètodes al lloc web Arduino.

www.arduino.cc/en/guide/libraries

Per a aquestes biblioteques, recomanaria el mètode manual, ja que hi ha algunes biblioteques diferents amb el mateix nom. Si utilitzeu el gestor de biblioteques, podreu acabar amb una incorrecta.

Tots aquests projectes fan servir un gestor de WiFi per facilitar la connexió a la vostra connexió wifi. Vaig decidir fer-ho, de manera que, si heu de moure el projecte, no cal reprogramar la placa. Això és el que faig servir per a les plaques ESP8266 i funciona bé: no és perfecte. La sort d'utilitzar la biblioteca ha estat portada per utilitzar ESP32 per un usuari de github anomenat bbx10. (Aquest gestor també hauria de treballar amb les plaques ESP8266)

Per a això també necessitem instal·lar tres biblioteques.

El WiFiManager:

El servidor web:

I, finalment, el servidor DNS -

També és comú per a tots els esbossos la biblioteca DF Robot DFRobot_HT1632C per a la matriu LED.

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

La biblioteca es pot trobar aquí (novament recomanaria el mètode d'instal·lació manual)

github.com/Chocho2017/FireBeetleLEDMatrix

Una nota especial: al meu repositori de github: tinc un parell de biblioteques DFRobot_HT1632C lleugerament modificades

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

La modificació és per a un tipus de lletra més petit i només s’utilitza per a alguns exemples de bonificació. Podeu utilitzar la biblioteca modificada i no hauria de causar problemes. També hi ha una biblioteca lleugerament modificada (adjunta a alguns esbossos com a pestanyes) que pot fer imatges de mapa de bits.

Si decidiu utilitzar la versió lleugerament modificada, haureu de canviar el nom del directori "modified-library" a FireBeetleLEDMatrix i moure aquesta carpeta al directori de la vostra biblioteca Arduino. No cal que utilitzeu aquesta versió per a aquests projectes, és necessària si voleu provar alguns dels tipus de lletra més petits dels exemples de bonificació.

Aquestes són les biblioteques habituals: instal·larem algunes biblioteques específiques per a cada projecte.

Passem a la matriu LED …

Pas 4: la coberta de la matriu LED de 24x8

La coberta de matriu LED de 24x8
La coberta de matriu LED de 24x8
La coberta de matriu LED de 24x8
La coberta de matriu LED de 24x8
La coberta de matriu LED de 24x8
La coberta de matriu LED de 24x8

Per a Seguirem juntament amb el tutorial de robot DF per a la matriu LED

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

Introducció: Aquesta pantalla de matriu LED de 24 × 8 està dissenyada especialment per a la sèrie FireBeetle. Admet el mode de baix consum d'energia i la visualització de desplaçament. Amb el xip de controlador LED d’alt rendiment HT1632C, tots els leds tenen un registre independent, cosa que facilita la conducció per separat. Integra un rellotge RC de 256 KHz, només 5uA en mode de baixa potència, admet ajust de brillantor PWM a 16 escales. Aquest producte també funciona amb l’altre microcontrolador Arduino com Arduino UNO.

Especificació:

  • Voltatge de funcionament: 3,3 ~ 5VLED
  • Color: color únic (blanc / blau / groc / vermell / verd)
  • Xip de la unitat: HT1632C
  • Corrent de treball: 6 ~ 100mA
  • Consum de baixa energia: 5uARC
  • rellotge: 256 KHz
  • Selecció de xip (CS): D2, D3, D4, D5 seleccionable
  • Suporta visualització de desplaçament

PIN predeterminats:

  1. DATAD6
  2. WRD7 (generalment no s'utilitza)
  3. Es poden seleccionar CSD2, D3, D4, D5 (predeterminat D2)
  4. RDD8
  5. VCC 5VUSB; Bateria Lipo 3.7V

(Tots aquests projectes fan servir D2 per al pin de selecció, això es pot canviar fàcilment segons sigui necessari.)

A la part posterior de la matriu LED hi veureu 4 petits interruptors. Assegureu-vos de seleccionar només un dels pins CS. Aquests petits commutadors són la manera de seleccionar el PIN CS i el valor per defecte és D2.

El DF Robot WIKI té algun codi de mostra, aquest codi també es troba als exemples de la biblioteca. (Jo crec)

Una altra nota: utilitzeu els números Dx per als vostres pins; en cas contrari, els números de PIN seran els noms / noms dels pins IO

I això us pot causar problemes.

Establir un punt:

X és de 0 a 23 (o si ho penseu com a full de càlcul, aquestes són columnes).

Y és de 0 a 7 (o si ho penseu com a full de càlcul, es tracta de files).

La biblioteca proporciona una funció de set point.

display.setPoint (x, y) establirà el cursor en aquesta ubicació, on ara podeu imprimir un missatge.

display.print ("Hello World", 40); // això farà que la pantalla mostri "Hello World" a partir del punt x, y i desplaceu-vos per la pantalla.

També hi ha setPixel (x, y) i clrPixel (x, y): setPixel encendrà un LED a la ubicació x, y i clrPixel apagarà un LED a la ubicació x, y.

Hi ha altres coses que pot fer aquesta biblioteca, i la majoria s’inclouen als exemples.

(Recomanaria executar i modificar els exemples per veure què pot fer).

* Una cosa que sembla que falta és dibuixar mapes de bits: la biblioteca pot fer-ho, però per alguna raó és una funció privada de la biblioteca. Vegeu alguns dels meus exemples addicionals per a una versió lleugerament modificada de la biblioteca

** Una altra cosa que inclou un conjunt de tipus de lletra 5x4, que és bo tenir una font més petita: es comenta a la biblioteca. Vaig fer un comentari i el vaig fer funcionar, però vaig notar alguns problemes: el més gran que no es desplaça. I em vaig adonar que sembla causar problemes amb el wifi o potser amb una altra biblioteca que volia utilitzar.

Una de les biblioteques modificades que incloc, però, utilitza el tipus de lletra 5x4.

Passem als projectes …

Pas 5: Projecte 1: un rellotge NTP LED de matriu senzilla amb pantalla de temps militar o pantalla AMPM

Projecte 1: un rellotge NTP LED de matriu senzill amb pantalla de temps militar o pantalla AMPM
Projecte 1: un rellotge NTP LED de matriu senzill amb pantalla de temps militar o pantalla AMPM
Projecte 1: un rellotge NTP LED de matriu senzill amb pantalla de temps militar o pantalla AMPM
Projecte 1: un rellotge NTP LED de matriu senzill amb pantalla de temps militar o pantalla AMPM
Projecte 1: un rellotge NTP LED de matriu senzill amb pantalla de temps militar o pantalla AMPM
Projecte 1: un rellotge NTP LED de matriu senzill amb pantalla de temps militar o pantalla AMPM

Projecte 1: és un senzill rellotge LED NTP de matriu amb visualització d'hora militar o visualització d'hora AMPM, Aquest rellotge es connectarà a un NTP (servidor d’hora) que agafa l’hora i aplica un paràmetre desactivat perquè obtingueu l’hora local. Es mostrarà l'hora a la matriu LED. - És un rellotge molt senzill i un primer projecte molt senzill.

Abans de començar amb aquest senzill projecte, pot ser una bona idea saber què és NTP -

NTP és un protocol d’Internet que s’utilitza per sincronitzar rellotges d’ordinadors amb alguna referència horària. És un protocol estàndard. NTP significa Network Time Protocol.

NTP utilitza UTC com a hora de referència (UTC és el temps universal coordinat) que va evolucionar a partir de GMT (Greenwich Mean Time), i en alguns cercles es diu Zulu Time (militar). UTC es basa en una ressonància quàntica d’un àtom de cesi.

NTP és tolerant a fallades i altament escalable, el protocol és molt precís, amb una resolució inferior a un nanosegon.

*

Un rellotge UTC no és gaire útil per a la majoria de la gent, de manera que hem d’ajustar el rellotge a l’hora local. Per sort, ho podem fer força fàcilment. Comencem, doncs, amb aquest senzill rellotge NTP …

En primer lloc, hem d’instal·lar una biblioteca que faciliti la conversa amb els servidors NTP.

github.com/arduino-libraries/NTPClient (aquesta biblioteca probablement es troba al gestor de la biblioteca)

Heu saltat el pas 3 i no esteu segur de com instal·lar biblioteques (?) Millor tornar enrere i llegir el pas 3:-)

Heu d’anar a aquest lloc web i posar-vos a la ciutat més propera a la vostra zona horària.

www.epochconverter.com/timezones

Quan premeu Intro, veureu "Resultats de la conversió" i, en els resultats, obtindreu el vostre desplaçament (diferència a GMT / UTC) en segons (per a mi és -14400)

A l'esbós dfrobot_firebeetle_led_matrix_ntp_clock de la línia 66, veureu:

#define TIMEOFFSET -14400 // Trobeu la vostra zona horària desactivada aquí https://www.epochconverter.com/timezones DESACTIVADA Establerta en segons # definiu AMPM 1 // 1 = hora PM AM, 0 = MILITAR / 24 hores HR

substituïu -14400 pel vostre desplaçament. La següent línia veureu l'AMPM 1 (això farà que el rellotge mostri l'hora en AM / PM) si preferiu veure-ho en 24 hores, feu que el zero sigui zero.

A continuació, pengeu l'esbós al tauler, connecteu-vos al punt d'accés (gestor de wifi) i introduïu les dades del vostre wifi. Si ja ho heu fet, hauríeu de veure desplaçar-vos "connectat" per la pantalla i pocs segons després veureu l'hora.

Això és tot per a aquest projecte: senzill i fàcil d'utilitzar …..

(Possibles millores: mostreu el mes, el dia i l'any, configureu un brunzidor i alarmes; generalment controleu el que veieu a través d'una pàgina web. Aquesta idea suposaria una gran reescriptura de l'esbós senzill actual)

Llest per a un altre projecte senzill: mostra on és la ISS, passa prediccions i quanta gent hi ha a l’espai. (PS aquest esbós fa servir una pàgina web per controlar el que es mostra) …..

Pas 6: Projecte 2: Visualització de predicció de pass ISS,

Projecte 2: Visualització de predicció de pass ISS,
Projecte 2: Visualització de predicció de pass ISS,
Projecte 2: Visualització de predicció de pass ISS,
Projecte 2: Visualització de predicció de pass ISS,
Projecte 2: Visualització de predicció de pass ISS,
Projecte 2: Visualització de predicció de pass ISS,

Projecte 2: Visualització de prediccions ISS Pass, aquest projecte utilitza el segon nucli del processador. Es mostrarà la proximitat (en milles) de la ISS, quan es pot esperar el proper passi ISS a la vostra ubicació (en hora UTC) i, opcionalment, quantes persones hi ha a l’espai. Com que molta d’aquesta informació no canvia sovint, fem servir el segon nucli només per comprovar si hi ha actualitzacions de les prediccions de passatge o quantes persones hi ha a l’espai cada 15 minuts. D’aquesta manera, podem evitar massa trucades d’API al servidor. Aquest projecte és una mica més complicat, però encara és bastant fàcil de fer.

Aquest projecte es basa en un dels meus projectes anteriors que es pot trobar aquí:

(Un sistema senzill de notificacions ISS) En aquest cas vaig utilitzar un ESP8266 amb una pantalla OLED integrada (D-Duino). En la seva major part, aquest projecte només fa servir un sistema de visualització diferent, el vaig ampliar perquè pugueu canviar el que vulgueu veure sobre la marxa a través d'una pàgina web. Comencem doncs …

La major part del crèdit per la seva fàcil utilització va a https://open-notify.org, que té una API molt senzilla i fàcil d’utilitzar. L'API de notificació oberta té tres coses que es poden mostrar: la ubicació de l'ISS en latitud i longitud, prediccions de pas basades en una latitud i longitud determinades. I, finalment, quantes persones (i els seus noms) hi ha a l’espai.

Haurem d’instal·lar una altra biblioteca: la biblioteca ArduinoJson.

github.com/bblanchon/ArduinoJson

També necessitem TimeLib.h però no estic segur d’on l’he tret o si s’inclou a l’IDE (ho sento) …

Llavors, per què predir on serà la ISS? La ISS conté diversos equips de ràdio aficionats i, quan està "en excés", un operador de ràdio pernil pot contactar amb la ISS mitjançant ràdios molt senzilles (i econòmiques). Fins i tot ho he fet amb un mòbil (conduint al cotxe). Realment no necessiteu gaire per fer que això funcioni. L'única cosa que necessiteu és saber on és. I apuntar l’antena en la seva direcció general ajuda.

Les línies 57, 58, 59 són algunes de les variables de visualització: si es defineixen a 1, es mostrarà una pantalla, si es posen a 0 (zero), no es mostrarà. (Aquestes variables es poden definir a l’esbós o actualitzar-les des d’una pàgina web que el firebeetle crea, més endavant).

int locDis = 1; // Mostra la ubicació d’ISSint pasDis = 0; // Mostra prediccions de passatge int pplDis = 1; // Mostrar persones a l’espai

de manera que locDis mostrarà la ubicació de l’ISS en latitud i longitud; també mostra quants quilòmetres de distància es troba.

pasDis obtindrà les prediccions dels passos a open-notify.org i les mostrarà.

i, finalment, pplDis mostrarà els noms i la quantitat de persones que hi ha a l'espai; això pot ser molt llarg, no ho és

canviar sovint tampoc. (podeu canviar-los o deixar-los, és totalment opcional)

També hem de conèixer la nostra latitud i longitud i posar-les a l’esbós.

Això no ha de ser un lat / llarg precís, pot ser el centre de la vostra ciutat o només una mica. La petjada de la ISS és àmplia mentre s’acaba, i es poden recórrer centenars (o milers) de quilòmetres, de manera que estar un poc fora del vostre lat / llarg no suposarà cap trencament (la majoria de les vegades), la comunicació a més de 500 milles és bastant habitual.

Si no coneixeu la vostra latitud i longitud, aquest lloc web us pot ajudar.

www.latlong.net A prop de la línia 84 de l'esbós veureu alguna cosa així:

// Cerqueu la vostra latitud i longitud aquí // https://www.latlong.net/ float mylat = 39.360095; flotador de mió = -84,58558;

Tot això hauria de ser canviat. Pengeu l’esbós i connecteu el Firebeetle a Internet, i hauríeu de veure la ubicació de l’ISS indicada en lat / llarg i quants quilòmetres de distància es troba (recordeu que serà una distància aproximada. L’ISS es mou molt ràpidament i en acabar la pantalla, l'ISS s'ha mogut molts quilòmetres d'on era). També hauríeu de veure la gent a l’espai. (SI no heu canviat la variable anterior).

Estem utilitzant el segon nucli de l’ESP32 per executar un lloc web, ja que l’ús del lloc ens dóna control sobre el que es mostra a la matriu de LED. Ha de ser bastant intuïtiu sobre el seu funcionament, una secció mostra el que està activat per mostrar-se, una altra secció té botons "sí" "no"; si feu clic a "sí" voleu veure-ho, el "no" vol dir que no. no ho mostreu. També heu de veure que la secció superior canvia en funció dels botons.

L'única cosa que no està tan tallada i seca aquí és com trobar l'adreça IP del Firebeetle (per desgràcia, no vaig poder trobar una bona manera de trobar-lo), així que acabo d'utilitzar la consola sèrie de l'IDE per mostrar (9600 bauds).

Obriu la consola i hauríeu de veure l'adreça IP. (obriu-lo abans que obtingueu el missatge connectat): la meva altra opció era mostrar-lo al LED Matrix una vegada just en iniciar-lo. Vaig decidir-me en contra, perquè és possible que no estigueu mirant el moment i el trobareu a faltar. M’havia plantejat enviar un missatge SMS, o alguna cosa així, però al final només ho tinc senzill. (També he intentat assignar una IP / passarel·la / etc estàtica, no he pogut aconseguir que funcionés bé amb el gestor de wifi; el codi encara es troba a l'esbós, així que si algú ho descobreix, aviseu-me)

L'esbós també avança la construcció de FreeRTOS al nucli ESP32: tenim una tasca que s'executa cada 15 minuts més o menys, el que fa això és actualitzar les prediccions de passatge, així com les persones a l'espai. Com he dit anteriorment, la gent a l'espai no canvia tant, de manera que probablement es podria traslladar a una altra tasca i potser funcionaria un cop cada 12 hores (o 6 hores), però això funciona i fa que les coses siguin senzilles.

Per a aquells que no ho saben, FreeRTOS és una manera de deixar que un microcontrolador de nucli únic executi tasques de multiplicació

Normalment, cal incloure algunes biblioteques i altres coses perquè funcioni, tot i que està integrat en el nucli de l'ESP32, que fan que l'ESP32 sigui un dispositiu molt potent. per obtenir més informació sobre FreeRTOS

freertos.org/

MILLORES: hi ha diverses coses que es poden millorar per a aquest projecte i gairebé cada dia penso en alguna cosa que es pugui fer una mica diferent, canviar-la o afegir-la.

I al directori de més exemples del repositori podeu veure algunes de les coses anteriors / diferents en què pensava: algunes no funcionaven, algunes només es canviaven i algunes s’inclouen a l’esbós actual.

* En un moment donat, vaig intentar afegir un neopíxel a la pantalla, de manera que s’assemblaria una mica més al meu projecte anterior; mai no vaig aconseguir que funcionés del tot bé (em va semblar un problema d’energia que no havia considerat). treballant en una manera de millorar aquesta idea *

Mentre escrivia aquest pas, vaig pensar que potser podria afegir una manera d’actualitzar la vostra latitud i longitud al lloc web (d’aquesta manera, l’esbós mai no hauria de ser modificat). Pensaré en aquest tema una mica més.

Una manera millorada d’obtenir l’adreça IP és una altra cosa que m’agradaria fer (encara pensant-hi també)

Passem al nostre proper projecte …..

Pas 7: Projecte 3: un senyal de missatge mòbil senzill mitjançant MQTT

Projecte 3: un senyal de missatge mòbil senzill mitjançant MQTT
Projecte 3: un senyal de missatge mòbil senzill mitjançant MQTT
Projecte 3: un senyal de missatge mòbil senzill mitjançant MQTT
Projecte 3: un senyal de missatge mòbil senzill mitjançant MQTT
Projecte 3: un senyal de missatge mòbil senzill mitjançant MQTT
Projecte 3: un senyal de missatge mòbil senzill mitjançant MQTT

"loading =" mandrós "" loading = "mandrós"

Part 2 de la bonificació: mostrar imatges
Part 2 de la bonificació: mostrar imatges
Bonificació de la part 2: mostrar imatges
Bonificació de la part 2: mostrar imatges
Part 2 de la bonificació: mostrar imatges
Part 2 de la bonificació: mostrar imatges

Resulta que la biblioteca pot mostrar imatges - per alguna raó aquesta funció sembla "privada" - bé, per a aquests esbossos següents vaig modificar la biblioteca una vegada més i vaig convertir drawImage en una funció pública.

Aquesta vegada, he posat la biblioteca modificada al directori d'esbossos, de manera que no cal que reinstal·leu la biblioteca; l'esbós primer es mira a si mateix, després es veurà al directori de la biblioteca, així que estem bé.

*** Estic planejant enviar aquest canvi a DFRobot, ja que és realment molt divertit i és una mica ordenat per poder fer aquest tipus d'esbossos ***

Esbós de LED Matrix Images, aquí intentava primer esbrinar què volia la biblioteca i què funcionaria i no, amb diferents graus d’èxit. Vaig trobar que les imatges de 8x8 funcionen millor, però també podeu aconseguir que altres treballin. També he trobat alguns editors de matrius dirigits en línia, alguns funcionen millor que altres.

xantorohara.github.io/led-matrix-editor/: sembla que funciona bé, crea imatges de 8x8 i les voleu com a matrius de bytes.

www.riyas.org/2013/12/online-led-matrix-fo… aquest funciona bé i té la capacitat de fer pantalles de més de 8x8, la pantalla sembla estar girada al costat amb aquesta pantalla malgrat això. Les matrius de bytes semblen funcionar millor aquí. L'he utilitzat per fer els "invasors de l'espai" que es veuen al vídeo anterior.

Com funciona això, drawImage (byte const * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);

variable de matriu de bytes d’imatge, l’amplada de la imatge (8), l’alçada de la imatge (8), la posició inicial a la pantalla x (0), y (0) normalment i un número de desplaçament, que no sóc 100% segur del que fa, així que la majoria de les vegades el deixava a zero.

A l'esbós LED Matrix Images, hi ha 8 matrius de bytes diferents, amb tres mètodes diferents.

- Els focs artificials són les primeres matrius, sincerament, no estic segur de com funciona, però sí.

a continuació, hi ha una boca: això no funciona realment bé, la boca està donant el camí equivocat a un i intentar fer qualsevol canvi empitjora. (aprendre què funciona i què no és la meitat de la diversió)

Seguit del primer marioImg (això és massa gran per a la pantalla i crec que és aquí on entra en joc el joc off). L’he utilitzat aquí i es pot veure la part frontal de mario si canvies l’offset a 1 tu. El veuré al darrere. (tu realment no puc dir-te per què o què fa el desplaçament. Sembla canviar la imatge, però per què 2 la canvia perquè puguis veure la part davantera i per què canvio l'altra direcció que no puc dir-te)

IMATGES: la matriu de bytes és un signe @ que he creat - sembla el que he fet amb l'eina a

La matriu de bytes pic1 també sembla el que intentava fer, només és més petita del que provava; no puc dir el que és, però en general puc dir que sembla el que feia a l'editor.

mario2Img: aquesta és la meva pròpia versió del Mario més gran per a una mida de pantalla de 8x8, i tu hi tens un o dos píxels fora de lloc (culpa meva, no de les pantalles), sembla un Mario petit (sorta).

invasor1 i invasor2: la meva idea és un invasor espacial. van sortir força bé i, posant les imatges unes sobre les altres, sóc capaç de crear l’efecte del moviment dels peus.

Hi ha dos esbossos de focs artificials al directori, cadascun és una mica diferent i val la pena provar-ho.

Un té els focs artificials movent-se per la pantalla, així que una mica més / diferent d’animació … l’altre té dos focs artificials al mateix temps

També hi ha tres esbossos "invasors", cadascun és una mica diferent, un té l'invasor movent-se per la pantalla i podeu veure com ho vaig fer (potser hi ha maneres millors de fer-ho, no ho sé)

Encara més: hi ha alguns esbossos al directori de proves del repositori: la majoria no funcionaven del tot com jo volia o eren idees que vull fer, però no funcionaven com volia. Els he deixat perquè algú té algunes idees * (vaig fer un petit "escut" amb un píxel WS2812 per utilitzar-lo amb la pantalla ISS, però el vaig connectar a la línia 3v i no en tenia prou amb el LED Matrix també funcionant, el píxel funcionava bé, sense el LED Matrix tu, així que encara hi podria fer alguna cosa) *

També hi ha un directori anomenat "Més exemples": són variacions en alguns esbossos del projecte, ja sigui que s'ha afegit o s'ha eliminat alguna cosa, o bé s'ha canviat d'alguna manera. Per a aquests, funcionen, simplement no són el projecte final. Així que els vaig deixar de nou, algú els podria treure alguna cosa útil. (Pot ser)

Espero que us hagi agradat aquest instructiu tant com he gaudit fent aquests projectes:-)

Pas 11: LInks …

Aquest projecte va ser patrocinat i recolzat per DF Robot. Utilitzeu els enllaços següents per als productes:

Firebeetle ESP32 -

Firebeetle Cover 24x8 LED Matrix -

El meu dipòsit de codis:

Si creieu que aquest o algun dels meus projectes és útil o agradable, ajudeu-me. Tot el que obtinc és comprar més peces i fer més / millors projectes.

www.patreon.com/kd8bxp

Biblioteca NTPClient

ArduinoJson.h

Biblioteca meteorològica ESP8266

Biblioteca Json-Streaming-Parser

Recomanat: