Schlagwort-Archive: ESP32

Meshtastic mit Cardputer ADV

Cardputer ADV ist ein Controller im Kreditkartenformat, ausgestattet mit einem M5Stack Stamp-S3A-Coremodul (ESP32-S3FN8). Er verfügt über ein 1,14-Zoll-LCD und eine einfache Tastatur mit 56 Tasten.
Der interne 1750-mAh-Lithium-Akku gewährleistet eine gute Akkulaufzeit. Ein 6-Achsen-Bewegungssensor BMI270, ein Infrarot-Sender, ein microSD-Slot sowie ein Grove-Anschluss bilden die Peripherie und ein EXT 2.54-14P-Erweiterungsbus ist zum Anschluss von Sensoren und anderen Peripheriegeräten vorgesehen.

Cardputer ADV

Beim Einsatz als Meshtastic-Knoten wird über diesen Erweiterungsbus ein Cap LoRa868 angeschlossen.

Cap LoRa868

Cap LoRa868 ist ein Erweiterungsmodul für LoRa- und GNSS-Kommunikation. Das LoRa-Modul basiert auf einem SX1262, ist mit einer externen SMA-Antenne ausgestattet und unterstützt das Frequenzband 868 MHz bis 923 MHz.
Das GPS-Modul basiert auf einer AT6668-Lösung und verfügt über eine integrierte Keramikantenne. Es bietet Multisatellitenunterstützung – kompatibel mit GPS, BDS, GALILEO, GLONASS, QZSS und SBAS – für maximale Flexibilität.

Zur Installation der Meshtastic-Firmware ist es am einfachsten, den M5Burner von M5Stack zu verwenden. M5Burner ermöglicht Benutzern das einfache Flashen verschiedener Firmware-Versionen auf unterschiedliche Geräte. Cap LoRa868 sollte noch nicht installiert sein. Der M5Burner kann von der Website https://docs.m5stack.com/en/guide/lora/meshtastic/cardputer_adv heruntergeladen werden.

Nach der Installation des M5Burners kann die Meshtastic Firmware für den Cardputer ADV heruntergeladen und auf das Target übertragen werden. Die Details sind auf der o.a. Website beschrieben.


Ist die Meshtastic-Firmware installiert, meldet sich der neue Knoten, wie in der ersten Abbildung gezeigt, und kann in der üblichen Weise konfiguriert werden.


2025-11-07/CK

Meshtastic Kit for Experimentation

Die Seeed Studio XIAO-Serie ist eine Familie kompakter, leistungsstarker Mikrocontroller-Module (MCU), die speziell für platzsparende Projekte entwickelt wurden, die hohe Leistung und drahtlose Konnektivität erfordern.

Die Arduino-kompatible XIAO-Familie stellt Mikrocontroller-Module auf Basis verbreiteter Hardware wie Espressif ESP32-C3, ESP32-C6 & ESP32-S3, Renesas RA4M1, Raspberry Pi RP2350 & RP2040, Nordic nRF52840, Microchip SAMD21 und Silicon Labs MG MG24 zur Verfügung.

Der ESP32-S3 ist das erste Modul, das mit einem B2B-Connector (Board-zu-Board) ausgestattet ist und über diesen mit anderen Modulen erweitert werden kann.  Die folgende Abbildung zeigt eine Draufsicht auf das XIAO-ESP32-S3.

An der Unterkante des Moduls befinden sich der IPEX-Stecker für die WiFi-Antenne und daneben der 30-polige B2B-Connector.

The Seeed Studio XIAO series is a family of compact, high-performance microcontroller modules (MCU) designed explicitly for space-saving projects that require high performance, and wireless connectivity.

The Arduino-compatible XIAO family provides microcontroller modules based on popular hardware such as Espressif ESP32-C3, ESP32-C6 & ESP32-S3, Renesas RA4M1, Raspberry Pi RP2350 & RP2040, Nordic nRF52840, Microchip SAMD21, and Silicon Labs MG MG24.

The ESP32-S3 is the first module to be equipped with a B2B connector (board-to-board) and can be expanded with other modules via this connector. The following figure shows a top view of the XIAO-ESP32-S3.

The IPEX connector for the WiFi antenna is located on the bottom edge of the module, with the 30-pin B2B connector next to it.

XIAO ESP32-S3

Ein Wio-SX1262 Modul erweitert den ESP32-S3 zum Meshtastic Device und nutzt den B2B-Connector zur Verbindung der beiden Module. Die folgende Abbildung zeigt das über den B2B-Connector mit dem ESP32-S3 verbundene LoRa-Modul Wio-SX1262.

A Wio-SX1262 module expands the ESP32-S3 into a meshtastic device and uses the B2B connector to connect the two modules. The following figure shows the Wio-SX1262 LoRa module connected to the ESP32-S3 via the B2B connector.

Wio-SX1262 & ESP32-S3

Zum Experimentierumfeld braucht es aber weiterer Komponenten, die eine einfache Kontaktierung von Sensorik ermöglichen. Grove- und M5Stack-Sensoren weisen eine einheitliche (Grove-) Schnittstelle auf und sind deshalb ganz besonders geeignet.

Die aktuell von Meshtastic unterstützen Sensoren sind in der folgenden Tabelle gelistet. In den Spalten Grove und M5Stack sind die dazu passenden Grove- resp. M5Stack-Sensoren ergänzt. Die Detailinfomationen finden Sie auf den Herstellerseiten über die angegebenen Links.

However, the experimental environment requires additional components that enable the simple contacting of sensors. Grove and M5Stack sensors have a standardized (Grove) interface and are particularly suitable.

The sensors currently supported by Meshtastic are listed in the following table. The corresponding Grove and M5Stack sensors are added in the Grove and M5Stack columns. You can find detailed information on the manufacturer’s website via the links provided.

SensorI2C AddressData PointsGrove
seeedstudio.com
M5Stack
m5stack.com
BMP0850x76, 0x77Temperature and barometric pressure  
BMP1800x76, 0x77Temperature and barometric pressureGrove – Barometer Sensor(BMP180) 
BMP2800x76, 0x77Temperature and barometric pressureGrove – Temperature and Barometer Sensor (BMP280)ENV II Unit with Temperature Humidity Environment Sensor (SHT30+BMP280) ENV IV Unit with Temperature Humidity Air Pressure Sensor (SHT40+BMP280)
BME2800x76, 0x77Temperature, barometric pressure and humidityGrove -Temp&Humi&Barometer Sensor (BME280) 
BME68x0x76, 0x77Temperature, barometric pressure, humidity and air resistanceGrove – Temperature, Humidity, Pressure and Gas Sensor for Arduino – BME680 Grove – Air Quality Sensor(BME688) with built-in AI, High-Performance 4-in-1, Gas, Humidity, Pressure and Temperature sensorENV Pro Unit with Temperature, Humidity, Pressure and Gas Sensor (BME688)
MCP98080x18TemperatureGrove – I2C High Accuracy Temperature Sensor – MCP9808 
INA2600x40, 0x41, 0x43Current and Voltage  
INA2190x40, 0x41, 0x43Current and Voltage  
INA32210x423-channel Current and Voltage  
LPS220x5D, 0x5CBarometric pressure  
SHTC30x70Temperature and humidity  
SHT310x44Temperature and humidityGrove – Temperature&Humidity Sensor (SHT31) 
PMSA003I0x12Concentration units by size and particle counts by size  
DFROBOT_LARK0x42Temperature, barometric pressure, humidity, wind direction, wind speed  
MAX301020x57Heart Rate, Oxygen Saturation, and body temperature Mini Heart Rate Unit (MAX30100) Pulse Oximeter
MLX906140x5ABody temperatureGrove – Thermal Imaging Camera – MLX90641NCIR 2 Thermometer Unit (MLX90614)   NCIR Non-Contact Infrared Thermometer Sensor Unit (MLX90614)

Die XIAO-Familie bietet für die einfache Erweiterung mit den genannten Senoren über den I2C-Bus das XIAO-Expansionboard an.

Es stehen aber auch ein UART- und ein IO-Interface (A0, D0) zur Verfügung.

The XIAO family offers the XIAO expansion board for simple expansion with the above sensors via the I2C bus .

However, a UART and an IO interface (A0, D0) are also available.

XIAO Expansion Board

Das UART-Interface kann für den Anschluss eines GPS-Moduls, wie beispielsweise der in der folgenden Abbildung gezeigten M5Stack GPS Unit, verwendet werden.

You can use the UART interface to connect a GPS module, such as the M5Stack GPS Unit shown in the following figure.

Zusätzlich weist das Board noch ein OLED-Display und einen Batterieanschluss auf. Die Batterie kann über USB geladen werden. Ein Solaranschluss steht nicht zur Verfügung.

Ich habe die beiden Boards für das Meshtastic Device bei Seeedstudio (https://www.seeedstudio.com/Wio-SX1262-with-XIAO-ESP32S3-p-5982.html) bestellt und werde nach dem Eintreffen der Hardware das Kit zusammenstellen und die Inbetriebnahme hier dokumentieren.

The board also has an OLED display and a battery connection. You can charge the battery via USB. A solar connection is not available.


I have ordered the two boards for the Meshtastic Device from Seeedstudio (https://www.seeedstudio.com/Wio-SX1262-with-XIAO-ESP32S3-p-5982.html) and will assemble the kit once the hardware arrives and document the commissioning here.


2024-12-14/CK

Visualization of Meshtastic Data with Datacake

In the Meshtastic network, a router can send data via MQTT to any MQTT broker on the Internet.

This makes it possible to have data from one or more Meshtastic devices processed or visualized by an external instance.

My Meshtastic network has differently equipped Meshtastic devices. The WisBlock Meshtastic Device is equipped with a RAK1901 sensor for measuring temperature and humidity and a RAK12500 GNSS GPS Location Module u-blox ZOE-M8Q, whose measured values are to be visualized with a Datacake dashboard.

Im Meshtastic Netzwerk kann ein Router Daten über MQTT an jeden beliebigen MQTT Broker im Internet senden.

Dadurch besteht die Möglichkeit, Daten eines oder mehrerer Meshtastic Devices durch eine externe Instanz bearbeiten oder visualisieren zu lassen.

Mein Meshtastic Netzwerk weist unterschiedlich ausgestattete Meshtastic Devices auf. Das WisBlock Meshtastic Device ist mit einem RAK1901 Sensor zur Messung von Temperatur und Luftfeuchtigkeit und einem RAK12500 GNSS GPS Location Module u-blox ZOE-M8Q ausgestattet, deren Messwerte mit einem Datacake Dashboard visualisiert werden sollen.

Visualization of Meshtastic Data with Datacake

The WisBlock Meshtastic Device is installed in an outdoor enclosure with a solar cell.

The test is intended to show whether the buffering provided by the solar cell is sufficient

Das WisBlock Meshtastic Device ist in einem Outdoor Gehäuse mit Solarzelle untergebracht.

Der Test soll zeigen, ob die Pufferung durch die Solarzelle ausreichend ist

Solar Unify Outdoor Enclosure

A Heltec LoRa32 V3 device is configured as a router and the MQTT module sends messages to an MQTT router.

Of the messages sent, only the telemetry and position messages of the WisBlock Meshtastic device are here of interest. The device has the ID 2692927950.

The following JSON fragments show the payload to be decoded.

Ein Heltec LoRa32 V3 Device ist als Router konfiguriert und das MQTT Modul sendet Messages an einen MQTT Router.

Von den versendeten Messages sind hier nur die Telemetry und Position Messages des WisBlock Meshtastic Devices von Interesse. Das Device weißt die ID 2692927950 auf.

Die folgenden JSON-Fragmente zeigen die zu decodierende Payload.

{
  "channel": 0,
  "from": 2692927950,
  "id": 647220954,
  "payload": {
    "air_util_tx": 0.0718611106276512,
    "battery_level": 59,			
    "channel_utilization": 11.1266660690308,
    "voltage": 3.8199999332428			
  },
  "rssi": -123,
  "sender": "!fa66367c",
  "snr": -10,
  "timestamp": 1707662825,
  "to": 4294967295,
  "type": "telemetry"
}
{
  "channel": 0,
  "from": 2692927950,
  "id": 198387353,
  "payload": {
    "barometric_pressure": 0,
    "current": 0,
    "gas_resistance": 0,
    "relative_humidity": 77.9700012207031,
    "temperature": 6.55000019073486,
    "voltage": 0
  },
  "rssi": -108,
  "sender": "!fa66367c",
  "snr": 4,
  "timestamp": 1707671407,
  "to": 4294967295,
  "type": "telemetry"
}

{
  "channel": 0,
  "from": 2692927950,
  "id": 1607030652,
  "payload": {
    "PDOP": 769,
    "ground_speed": 24,
    "ground_track": 20434000,
    "latitude_i": 471919845,
    "longitude_i": 88149573,
    "sats_in_view": 3,
    "time": 1707662920,
    "timestamp": 1707662805
  },
  "rssi": -123,
  "sender": "!fa66367c",
  "snr": -10,
  "timestamp": 1707662922,
  "to": 2692927950,
  "type": "position"
}

After Datacake is connected to the MQTT broker, the received payload can be decoded using JavaScript.

The Datacake dashboard can then be set up for the desktop according to the following image.

Nach Verbindung von Datacake mit dem MQTT Broker kann die Decodierung der empfangenen Payload mit Hilfe von JavaScript vorgenommen werden.

Das Datacake Dashboard kann dann gemäss folgendem Bild für den Desktop eingerichtet werden.

Datacake Dashboard

But Datacake also allows you to create dashboards for mobile devices, as the following image shows

Datacake ermöglicht aber auch das Erstellen von Dashboards für Mobilgeräte, wie das folgende Bild zeigt.

Datacake Mobil Dashboard

2024-03-21/CK

SensorHub Weather Data on Meteologix

I have been using Kachelmannwetter’s information and following their weather forecast on YouTube for a long time.

Kachelmannwetter provides extensive weather and environmental data, as well as webcam recordings. Interested parties can also contribute weather data to complete the range of data on offer.

I have taken up the invitation and, as a new Citizen Scientist, I am now also making my SensorHub data available on the Meteologix platform.

The images below display the professional and amateur weather stations in my area. Additionally, the graph depicts the ambient temperature measured at a height of 2 meters over a 72-hour period.

Schon lange nutze ich die Informationen von Kachelmannwetter und verfolge die Wettervorhersage auf Youtube.

Neben der Bereitstellung umfangreicher Wetter- und Umweltdaten sowie Webcam-Aufnahmen können Interessenten Wetterdaten beisteuern und so das Angebot an Daten komplettieren.

Ich habe die Aufforderung aufgegriffen und stelle als neuer Citizen Scientist nun meine SensorHub Daten auch auf der Meteologix Plattform bereit.

In den folgenden Bildern sind die Profi- und Amateur-Wetterstationen meiner Gegend gezeigt. Abschließend ist der 72 h Verlauf der Umgebungstemperatur gemessen in 2 m Höhe gezeigt.

Profi Weather Stations
Amateur Weather Stations
SensorHub 72 h Weather Data

The program Oxocard_MQTT_Client_Weather_Portals uses an Oxocard Connect to retrieve the data from the TTN LNS and prepare it for upload.

The program covers both Meteologix and Weathercloud.

Das Programm Oxocard_MQTT_Client_Weather_Portals nutzt einen Oxocard Connect, um Daten vom TTN LNS abzurufen und für den Upload vorzubereiten.

Das Programm deckt sowohl Meteologix als auch Weathercloud ab.


Die Screenshots wurden mit freundlicher Genehmigung von der Website kachelmannwetter.com übernommen.


2024-02-15/CK

Oxocard Connect

In meinem Blogbeitrag Vermittlung digitaler Inhalte in der Schule hatte ich die das Informatikinteresse an den Schulen fördernden Mikrocontroller BBC micro:bit, Calliope mini, und Oxocard betrachtet.

Dieser Bereich ist nach wie vor in Bewegung, stellt doch die Digitalisierung in allen Lebensbereichen eine grosse Herausforderung dar.

Mit der Oxocard Mini Serie stellt die Schweizer Oxon AG Computerboards zur Verfügung, die das Eintauchen in Computergrafik und ihre zugrunde liegenden Algorithmen oder Spiele und Animationen mit ihren Quelltexten ermöglichen.

OxoCard (Mini) Science ist eine programmierbare Multisensorplatine, die mit Hilfe von sieben Sensoren die folgenden physikalischen Grössen erfasst: Licht/IR, Temperatur, Geräusche, Feuchte, Druck und flüchtige Kohlenstoffverbindungen (VoC, eCO2 und Ethanol). Auch hier steht der dokumentierte Quelltext zur Verfügung und eigene Experimente können gestartet werden.

Oxocard Science, Oxocard Galaxy & Oxocard Artwork

Das jüngste Kind der Oxocard-Familie ist Oxocard Connect – ein ebenfalls auf dem ESP32 aufbauendes und damit netzwerktaugliches Computermodul mit grafischem TFT-Display und einem Joystick für die Benutzer-Eingaben, welches durch seitlich einsteckbare Cartridges mit peripheren Komponenten, wie Sensoren etc., erweitert werden kann.

Oxocard Connect mit Air Cartridge

Die Programmierung kann wieder über den komfortablen Nanopy-Editor erfolgen. Zahlreiche Programmbeispiele und ausführliche Erläuterungen dienen der Einarbeitung und Auseinandersetzung mit diesem System. Zum näheren Kennenlernen möchte ich Sie auf den Beitrag von David Lee verweisen.

Ich möchte Oxocard Connect nicht mit Python programmieren, sondern diesen sehr ansprechend gestaltetem Controller mit der Arduino-IDE programmieren. Die zahlreichen Libraries ermöglichen die Erweiterung mit Sensoren und die Vernetzung sehr komfortabel. Mit dem Veroboard lassen sich Prototypen sehr einfach erstellen, bevor man mglw. eine anwendungsspezifische Cartridge erstellt.

Oxocard Connect Arduino Test

Für die Hardware-Konstellation habe ich ein Testprogramm erstellt, welches die folgenden Funktionen testet:

  • Ausgabe auf dem farbigen TFT-LCD mit 240 x 240 Pixel LH133T-IG01 mit ST7789VW LCD-Controller
  • Abfrage Joystick
  • LEDs über digitale IO
  • EEPROM über I2C-Bus

Auf der Cartridge stehen neben digitaler und analoger IO und I2C-Bus auch noch SPI zur Verfügung. Ausserdem kann die gesamte Schaltung auch extern mit 5V (VEXT) versorgt werden.

Der Einsatz eines so ansprechend gestalteten Controllers lässt schnell das oft vorhandene Drahtverhau mit seinen unsicheren Verbindungen vergessen.


Oxocard Connect Openweather Station

Oxocard Connect besitzt mit der vorhandenen Hardware alle Möglichkeiten, über das Internet auf Daten zuzugreifen und diese auf dem Display darzustellen.

Ich habe hier durch Abfrage der Wetterdaten von Openweathermap.org eine kleine Wetterstation als Anwendungsbeispiel erstellt.

Openweathermap.org stellt maximal 1000 Aufrufe pro Tag gratis zur Verfügung, weshalb hier der Abfragezyklus auf zwei Minuten eingestellt wurde. Werden die 1000 Aufrufe überschritten, dann kann ein blockierter Account die Folge sein.

Das Programm finden Sie auf GitHub unter https://github.com/ckuehnel/Arduino2023/tree/main/ESP32/Oxocard/Oxocard_OpenWeather


Oxocard Connect MQTT-Client

Simon Kemper beschreibt auf LinkedIn die Verbindung von Datacake und Slack zur Benachrichtigung bei kritischen Zuständen etc.

Unter Verwendung des TTN-internen MQTT-Servers bin ich einen anderen Weg gegangen.

Ich verwende Oxocard Connect als MQTT-Client und filtere nur die für das Monitoring erforderlichen Größen aus den Upload-Messages zur Anzeige auf dem Display.

Konkret überwache ich die Batteriekapazität eines solar-gepufferten SensorHubs von RAKwireless. Gerade jetzt in der dunklen Jahreszeit möchte ich den Ladezustand der Batterie überwachen, um die Nachladung tagsüber zu verifizieren.

Der SensorHub sendet die erfassten Umweltdaten zum TTS (CE) LNS, der diese an ein Datacake Dashboard zur Visualisierung weiterleitet. Sie finden dieses Dashboard über diesen Public Link.

Der Oxocard Connect MQTT-Client „subscribed“ die Upload-Messages des SensorHubs, filtert die Batteriekapazität aus der umfangreichen Upload-Message und bringt sie auf dem Display zur Anzeige. Die Aktualisierung des Displayinhalts erfolgt mit jeder neuen Upload-Message vom SensorHub.

Ein Screenshot des Consolen Outputs zeigt die empfangene Payload vor und nach der Filterung und die Extraktion der Daten. Auf dem Display wird aber nur die aktuelle Batteriekapazität angezeigt.

Consolen Output

2023-12-01/CK

ESP32Forth – eine alternative Programmierumgebung

Für den ESP32 steht mit MicroPython eine interaktive Programmiersprache zur Verfügung. Das ist aber nicht die einzige Möglichkeit der interaktiven Programmierung, denn mit ESP32Forth steht auch eine Portierung von eForth (Arduino and eForth) für den ESP32 zur Verfügung.

Wenn Ihnen Forth unbekannt sein sollte, dann erlätert ChatGPT Ihnen FORTH wie folgt:

Die Programmiersprache FORTH ist eine ungewöhnliche und spezielle Programmiersprache, die sich von C++ und MicroPython in vielerlei Hinsicht unterscheidet, insbesondere beim Einsatz auf Mikrocontrollern. Hier sind einige der wichtigsten Eigenschaften und Unterschiede:

Eigenschaften von FORTH:

  1. Stack-basierte Sprache: FORTH verwendet einen Stapelspeicher (Stack) als zentrales Konzept. Operationen und Daten werden auf den Stapel verschoben und von dort verarbeitet. Dies macht FORTH sehr leichtgewichtig und effizient.
  2. Interaktivität: FORTH ist eine interaktive Programmiersprache. Sie können Code direkt in die FORTH-Umgebung eingeben und ausführen, was sie ideal für den schnellen Prototypenbau und das Debugging macht.
  3. Minimalistische Syntax: Die Syntax von FORTH ist extrem einfach, bestehend aus Wörtern (FORTH-Befehlen), die von Leerzeichen getrennt sind. Dies führt zu sehr kompaktem Code.
  4. Keine strikte Typisierung: FORTH ist schwach typisiert und flexibel. Dies kann sowohl ein Vor- als auch ein Nachteil sein, je nach Anwendungsfall.
  5. Direkter Hardwarezugriff: FORTH ermöglicht einen sehr direkten Zugriff auf die Hardware, was in eingebetteten Systemen nützlich sein kann.

Unterschiede zu C++:

  1. Sprachparadigma: C++ ist eine objektorientierte Programmiersprache, während FORTH als stapelbasierte Programmiersprache betrachtet wird. Dies bedeutet, dass die Herangehensweise an die Programmierung grundlegend unterschiedlich ist.
  2. Komplexität: C++ ist eine umfangreiche und komplexe Sprache mit einer Vielzahl von Funktionen und Bibliotheken. FORTH hingegen ist extrem minimalistisch und erfordert oft mehr Zeilen Code, um ähnliche Aufgaben zu erledigen.
  3. Typisierung: C++ ist stark typisiert, was bedeutet, dass Datentypen streng überprüft werden. FORTH ist schwach typisiert und erlaubt mehr Flexibilität bei der Verwendung von Daten.

Unterschiede zu MicroPython:

  1. Syntax: MicroPython ist eine Python-Variante für Mikrocontroller und verwendet eine Python-ähnliche Syntax, während FORTH seine eigene einzigartige Syntax hat.
  2. Abstraktionsebene: MicroPython bietet eine höhere Abstraktionsebene und mehr Konventionalität im Vergleich zu FORTH. Das macht MicroPython oft einfacher zu erlernen und zu verwenden.
  3. Gemeinschaft und Bibliotheken: MicroPython hat eine aktive Gemeinschaft und eine breite Palette von Bibliotheken und Modulen, die speziell für Mikrocontroller entwickelt wurden. FORTH hat weniger Ressourcen und Unterstützung in dieser Hinsicht.
  4. Entwicklungsumgebungen: MicroPython wird oft mit modernen integrierten Entwicklungsumgebungen (IDEs) verwendet, die die Entwicklung und das Debugging erleichtern. FORTH erfordert häufig eine tiefere Einarbeitung in die Arbeitsweise des Stapels und der FORTH-Umgebung.

Insgesamt hängt die Wahl zwischen FORTH, C++ und MicroPython für Mikrocontroller-Anwendungen von den spezifischen Anforderungen Ihres Projekts, Ihrer Programmierpräferenz und Ihrer Erfahrung ab. FORTH ist eine leistungsfähige, aber unkonventionelle Option, die für bestimmte Anwendungen geeignet sein kann, während C++ und MicroPython aufgrund ihrer weitverbreiteten Akzeptanz und ihrer Entwicklungsunterstützung oft bevorzugt werden.

OpenAI. (2023). ChatGPT (August 3 Version) [Large language model]. https://chat.openai.com

Wenn Sie sich mit ESP32Forth auseinandersetzen wollen, dann finden Sie die notwendigen Informationen von Installation bis hin zur Anwendung unter https://esp32.forth2020.org/ oder https://www.facebook.com/groups/esp32forth/

Ich möchte Ihnen hier zwei Beispiele zur Arbeit mit ESP32Forth zeigen, die vielleicht helfen Neugier zu wecken.

Benchmarks sind eine beliebte Vergleichsmöglichkeit für Hard- und Software. Um einen Eindruck von der Performance von ESP32Forth auf einem ESP32 zu bekommen, habe ich den DDBench(mark) herangezogen (https://theultimatebenchmark.org/).

Das Resultat des Benchmarks sind eine Laufzeit von 5.5 Sekunden.

Vergleichen Sie das Resultat mit den unter https://theultimatebenchmark.org/ veröffentlichten Daten, dann können Sie sich ein Bild von der Leistungsfähigkeit dieser Hard- und Softwarekombination machen.

Im Blogpost ESP32 ADC & DAC hatte ich die Performance des DAC-ADC-Subsystems des ESP32 untersucht.

Wenige Zeilen ESP32Forth Code ermöglichen die Ansteuerung eines DACs und das Erfassen dessen Ausgangsspannung durch einen Kanal des ADC. GPIO25 und GPIO33 werden hierzu miteinander verbunden.

( Test ESP32-DAC-ADC-Subsystem w/ ESP32Forth )

25 CONSTANT DAC1 \ GPIO25
33 CONSTANT ADC1_CH5 \ GPIO33

: wait100ms 100 ms ;
: readADC1_CH5 ADC1_CH5 adc . ;
: readADC readADC1_CH5 ;
: writeDAC1 DAC1 swap dacWrite ; ( 0-255 -- )
: test dup writeDAC1 wait100ms readADC . cr ; ( 0-255 -- )
: testloop 255 for i test next ;

Die seriellen Ausgaben habe ich geloggt, um diese für die folgenden Grafiken aufzubereiten.

Das Verhalten des analogen Subsystems entspricht den Erwartungen und ist ohne Anpassungen nur bedingt einsatzfähig.

Der einfache Test mit dieser interaktiven Programmierumgebungen wird aber deutlich.


2023-09-14/CK

IoT Projects for Makers – Update

The title „IoT Projects for Makers“ was published at the end of June, and the first update follows.

Link: https://www.amazon.de/dp/B0C8VCF4DF

Via Aliexpress, I found a Modbus sensor (and many comparable devices) for temperature and humidity measurement at low prices. Modbus RTU via RS-485 is still a common interface in industrial applications. This sensor uses a Sensirion SHTC3 sensor, which allows precise results.

This industrial sensor for temperature and humidity with Modbus RTU via RS-485 has been added to the sensors considered so far.

WiFi is utilized to connect to a router that provides Internet access.

The message containing the measuring results is sent to the Pushover server, which forwards it to the corresponding end devices, an Android mobile phone here.

In the application here, a message with measured values is sent every 15 minutes. This is first an arbitrary assumption and can also be state-based.


2023-07-19/CK

Massgeschneidert für IoT Anwendungen

Espressif’s ESP32 ist aus IoT Anwendungen kaum noch wegzudenken. Geringe Stromaufnahme, eine leistungsfähige CPU und WiFi- bzw. BLE-Connectivity sind der Schlüssel für den Erfolg in diesem Bereich.

Eine Vielzahl dieser Anwendungen setzt das ESP-WROOM-32x-Modul von Espressiff ein.

Die ESP32-WROVER Serie besticht durch einige Modifikationen der ESP32-WROOM-32x-Module, die unter anderem ein zusätzliches 8-MB-SPI-PSRAM (Pseudo Static RAM) enthalten.

Das zusätzliche PSRAM kann für Geräte mit einem Display sehr nützlich sein. Wenn der Grafiktreiber einen Framebuffer verwendet, können so mehr Farben unterstützt werden.

Für das maschinelle Lernen bietet TensorFlow Lite alle Tools, die Sie zum Konvertieren und Ausführen von TensorFlow-Modellen auf Mobil-, Embedded- und IoT-Geräten benötigen. Genügend Speicher sollte aber vorhanden sein und den kann ein ESP32-Wrover nun bieten (siehe Tabelle).

Zu Tensorflow Lite auf dem ESP32 finden Sie weitere Informationen unter https://towardsdatascience.com/tensorflow-meet-the-esp32-3ac36d7f32c7

ModuleChipFlash, MBPSRAM, MBAnt.Dimensions, mm
ESP32-WROOM-32ESP32-D0WDQ64MIFA18 × 25.5 × 3.1
ESP32-WROOM-32DESP32-D0WD4, 8, or 16MIFA18 × 25.5 × 3.1
ESP32-WROOM-32UESP32-D0WD4, 8, or 16U.FL18 × 19.2 × 3.1
ESP32-SOLO-1ESP32-S0WD4MIFA18 × 25.5 × 3.1
ESP32-WROVER (PCB)ESP32-D0WDQ648MIFA18 × 31.4 × 3.3
ESP32-WROVER (IPEX)ESP32-D0WDQ648U.FL18 × 31.4 × 3.3
ESP32-WROVER-BESP32-D0WD4, 8, or 168MIFA18 × 31.4 × 3.3
ESP32-WROVER-IBESP32-D0WD4, 8, or 168U.FL18 × 31.4 × 3.3
Key characteristics of ESP32 Modules (https://docs.espressif.com/projects/esp-idf/en/latest/hw-reference/modules-and-boards.html)

Aus Fernost werden mittlerweile unterschiedlich ausgestattet Module mit ESP32-WROVER-B angeboten.

Ein gerade für IoT-Anwendungen optimal angepasstes Board wird mit dem ESP32 ePulse Dev Board von der Schweizer Firma Thingpulse angeboten.

Das Board ist für geringen Stromverbrauch und einen breiten Eingangsspannungsbereich optimiert. Weitere technische Aspekte finden Sie im Beitrag Designing the ESP32 Dev Board I always wanted.

Der VIN-Pin akzeptiert Spannungen zwischen 3.3 V und 12 V DC. Wenn sich das Board im Tiefschlaf befindet, verbraucht es nur zwischen 25 uA (bei 3.3 V) und 35 uA (bei 12 V). Die meisten ESP32-Boards verbrauchen etwa 100 – 130 uA.

Thingpulse bietet das Board für $ 16.90 an https://thingpulse.com/product/epulse-thingpulse-esp32-devboard/. Early Birds bekommen es noch für $ 12.70.

M5StickC Handheld Thermometer

Der M5StickC hat einen internen LiPo-Akku mit einer Kapazität von 80 mAh, der dem mobilen Einsatz dann doch gewisse Grenzen setzt. Bei meinen Experimenten zur Messung der Wassertemperatur hatte ich das zu berücksichtigen.

Kurz vor dem Jahresende 2019 kam Post aus Shenzen mit dem 18650C HAT, einem Batterieteil für den M5SticKC mit integriertem wiederaufladbaren LiPo-Akku 18650 mit einer Kapazität von 2000 mAh.

Das Batterieteil ist mit den Steckern der HAT-Serie ausgestattet, mit denen eine zuverlässige Verbindung zum M5StickC hergestellt werden kann. Die Unterseite ist mit einer USB-Ladeschnittstelle ausgestattet. Der USB-C-Anschluss des Batterieteils wird nur als Ladeschnittstelle verwendet und hat keine UART-Funktion. Auf der Rückseite des Batterieteils befinden sich zahlreiche Befestigungslöcher, die eine einfache Befestigung des gesamten Devices ermöglicht.

Handheld-Thermometer

Ich habe mit dem ENV Hat und dem M5StickC ein Handheld-Thermometer aufgebaut.

Über den BMP280 im ENV Hat werden Temperatur, relative Luftfeuchte und barometrischer Druck gemessen und im Sekundentakt auf dem M5StickC Display zur Anzeige gebracht.

Ich werde die Laufzeit einer Batterieladung in der Folge testen und hier berichten.

Überwachungsmassnahmen für den Batteriezustand sind nicht implementiert.

ESP32 – Erweiterung der Arduino Familie

Nachdem der verbreitete ESP8266 in die Arduino Umgebung integriert wurde und Ledunia als High-End-ESP8266-Modul (http://ledunia.de/) verfügbar ist, steht mit dem ESP32 der chinesischen Firma Espressif ein weiteres Upgrade der Arduino Familie bereit.

Ich hatte die Benchmarks aus dem Beitrag  „Arduino32: Die jungen Wilden“ [1] mit denen des ESP8266/Ledunia ergänzt [2] und will den deutlich mehr Performance versprechenden ESP32 ebenfalls diesen Tests unterziehen.

Sowohl der ESP8266 als auch der ESP32 Mikrocontroller von Espressif sind in zahlreiche Mikrocontroller-Module eingegangen und heute gerade wegen ihrer WiFi-Eigenschaften oft Bestandteil von Entwicklungen in der Maker-Szene. Beim ESP32 kommt nun auch noch die Bluetooth LE-Konnektivität (BLE) hinzu.

In der Zeitschrift Design & Elektronik Heft 11/2018 ist ein Artikel mit dem gleichnamigen Titel erschienen, der den ESP32 als Erweiterung der Arduino und dessen Features betrachtet.

[1]        Arduino32: Die jungen Wilden (Teil 2).  DESIGN & ELEKTRONIK 06/2016 S.14-17

http://www.elektroniknet.de/embedded/arduino32-die-jungen-wilden-131502.html

[2]        Ledunia – ESP8266 High-End-Modul. DESIGN & ELEKTRONIK  3/2018 S. 16-21

http://www.elektroniknet.de/design-elektronik/embedded/einer-der-hoechstintegrierten-wifi-chips-der-branche-152310.html