Archiv der Kategorie: Allgemein

Post im (Meshtastic-) Postfach?

Ein mit einem Display ausgestatteter Meshtastic-Knoten zeigt eingegangene Messages auf diesem an. Wählt man sich mit einem Meshtastic-Client (bspw. einem Smartphone) ein, dann kann man eine eingegangene Message incl. des Empfangszeitpunktes lesen. Wird eine Message zu spät gelesen, dann kann sie bereits obsolet sein. Das Ereignis ist einfach vorbei.

Mit dem Modul External Notification erhält man die Möglichkeit, beim Eintreffen einer Textnachricht eine externe Benachrichtigung abzusetzen. Die Benachrichtigung kann durch eine LED, einen Buzzer oder einen Vibrationsmotor erfolgen.

Mit dem Meshtastic Kit von SeeedStudio ist sehr schnell ein geeignetes Experimentierumfeld geschaffen. Zur Komplettierung habe ich noch eine M5Stack ENV Unit über I2C angeschlossen.

Bei der Konfiguration des Moduls External Notification sind den eingesetzten Benachrichtigungselementen (LED, Buzzer, Vibrationsmotor) IO-Pins zuzuweisen.

Hier ist es wichtig, die ESP-Notation zu verwenden. Bspw. muss einer an D0 angeschlossenen LED Pin (GPIO)1 zugewiesen werden. Mich hat das anfangs etwas verwirrt und entsprechend Zeit gekostet.

XIAO ESP32-Se Pinout

Die folgenden Abbildungen zeigten das Display des Meshtastic-Knotens in verschiedenen Situationen.

Wie am folgenden Pinout des XIAO-Expansionsboards zu sehen ist, steht nur Pin D0 zur freien Verfügung. Der interne Buzzer ist mit D3 verbunden und wenn auf die SD Card verzichtet wird, dann können auch D2 und D8-D10 noch eingesetzt werden.

XIAO Expansionsboard Pinout

Ich möchte zur Signalisierung eine LED mit Vorwiderstand, einen Piezo-Buzzer oder einen Vibrationsmotor einsetzen. Dem auf dem XIAO-Expansionsboard befindlichen Buzzer konnte ich keinen Ton entlocken und habe deshalb einen externen Piezo-Buzzer eingesetzt. Alle drei Elemente reagieren auf einen Hi-Pegel am betreffenden digitalen Ausgang.

Die beiden folgenden Screenshots zeigen die Konfiguration des Moduls External Notification für den Piezo-Buzzer. Der Piezo-Buzzer ist an D3 und GND angeschlossen. Bei der Konfiguration ist GPIO4 (des ESP32-S3) zu aktivieren. Die Dauer eines Beeps ist 150 ms und die der Ausgabe 1 s. Es werden als mehrere kurze Beeps bein Eintreffen einer Textnachricht ausgegeben.

Für die anderen Signalisierungselemente kann vergleichbar vorgegangen werden.


2025-03-28/CK

Audio-Zusammenfassungen mit Google NotebookLM

Heute habe ich Google’s NotebookLM ausprobiert. NotebookLM ist ein KI‑basierter Assistent für vielfältige Aufgaben, wie dem Lesen von Quellen, dem Erstellen von Notizen und gemeinsam mit NotebookLM dem Verfeinern und Organisieren Ihrer Ideen. Mit der Audio-Zusammenfassung können die Quellen mit nur einem Klick in aufschluss- und detailreiche Diskussionen (z.Z. nur in Englisch) verwandelt werden.

Hier ist als Beispiel eine Zusammenfassung meiner Meshtastic-Beiträge unter https://ckblog2016.net/:

Laden Sie einfach die Audio-Zusammenfassung unter https://bit.ly/4iDgt8Z.


2025-03-09/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 Weathercloud

My SensorHub Weather Station has been running for a few months now and provides the recorded data on a Datacake Dashboard.

SensorHub applications are described in the eBook SensorHub IoT Applications.

The data collected by the SensorHub weather station is sent to the TTN LNS and forwarded to Datacake via a WebHook.

The data stored in the TTN is also available to other applications, and I use it to upload to the Weathercloud platform. Weathercloud is a global weather network with over 120,000 devices currently connected.

The density of weather stations in my area is already quite high, but I was able to fill a gap with my station (green point).

Seit einigen Monaten läuft meine SensorHub Wetterstation und stellt die erfassten Daten auf einem Datacake Dashboard zur Verfügung.

SensorHub Anwendungen sind im eBook SensorHub IoT Applications beschrieben.

Die von der SensorHub Wetterstation ermittelten Daten werden an den TTN LNS gesendet und über einen WebHook an Datacake weitergeleitet.

Die im TTN gespeicherten Daten stehen aber auch anderen Anwendungen zur Verfügung und ich verwende sie für ein Upload auf die Wettercloud Plattform. Weathercloud ist ein globales Wetternetzwerk, an das derzeit mehr als 120.000 Geräte angeschlossen sind.

Die Dichte an Wetterstationen in meinem Gebiet ist bereits recht hoch, dennoch konnte ich mit meiner Station eine Lücke schließen (grüner Punkt).

TTN provides an MQTT server to handle streaming events. An MQTT client can subscribe to the LoRaWAN uplinks. Afterwards, the desired data can be extracted.

No extensive hardware is required for this data conversion. I use an ESP32-based Oxocard Connect here. Internet access is via WiFi, the TTN LNS is queried via MQTT, and the data is forwarded to the weather cloud via HTTP GET.

TTN stellt einen MQTT-Server für die Arbeit mit Streaming-Ereignissen zur Verfügung. Ein MQTT-Client kann die LoRaWAN-Uplinks abonnieren und die gewünschten Daten lassen sich anschliessend extrahieren.

Für diese Daten-Konversion bedarf es keiner umfangreichen Hardware. Ich benutze hier einen ESP32-basierenden Oxocard Connect. Der Internetzugriff erfolgt über WiFi, die Abfrage des TTN LNS über MQTT und die Weiterleitung der Daten an die Wettercloud über HTTP GET.

Oxocard Connect

The uploaded data is then presented in the Weathercloud according to the following images.

The data can be accessed via the link https://app.weathercloud.net/d3000677249#current.

Die hochgeladenen Daten präsentieren sich dann in der Wettercloud gemäss den folgenden Bildern.

Der Aufruf der Daten erfolgt gemäss https://app.weathercloud.net/d3000677249#current.

Weathercloud Dashboard

2024-02-06/CK

IoT Projects for Makers – 2nd Edition

The advantage of an eBook edition is that the author can make additions and updates available to the reader at short notice.
This edition presents NB-IoT as an alternative communication option in the LPWAN. Furthermore, battery-powered IoT nodes do not have to do without a display. ePaper displays with very low power requirements are very well suited for this. Lastly, although prototyping boards rarely offer favorable conditions for low-power applications, I will discuss these aspects together with using ePaper displays.

Available for download at https://www.amazon.com/dp/B0C8VCF4DF

The first Sensor Hub application is running…

The Sensor Hub equipped with a Sensor Probe containing Temperature and Humidity Sensor RAK1901 and Pressure Sensor RAK1902 measures environmental data and sends them to TTS (CE). Datacake provides for the Visualization.

RAKwireless Sensor Hub is an excellent example of how low-code platforms help implement IoT solutions extremely fast.


2023-09-23/CK

Meeting mit RAKwireless

Am 19.09.2023 hatte ich die Gelegenheit den CEO von RAKwireless, Ken Yu, und zwei seiner Mitarbeiter in Zürich zu treffen.

Ich konnte einen Print-Version, des als eBook konzipierten Titels zu WisBlock übergeben.

Mit dem auf WisBlock aufsetzendem SensorHub wird es weitergehen.

Hier ist der Link zu Ken’s Statement auf LinkedIn: https://www.linkedin.com/feed/update/urn:li:activity:7110136146503888896?updateEntityUrn=urn%3Ali%3Afs_feedUpdate%3A%28V2%2Curn%3Ali%3Aactivity%3A7110136146503888896%29


2023-09-21/CK

Programmieren der AVR RISC Mikrocontroller mit BASCOM-AVR – Start vor 20 Jahren

In den 1990er Jahren kamen Microchip’s PIC- und Atmel’s AVR-Mikrocontroller auf den Markt und haben seither eine starke Verbreitung erfahren.

Das Konzept der AVR-Mikrocontroller hatte mich damals begeistert, ganz im Gegenteil zum recht umständlich handhabbaren PIC.

Schon bald standen neben dem Assembler auch erste Hochsprachen für die Programmierung der AVR-Mikrocontroller zur Verfügung. Im 1998 erschienenen AVR RISC Microcontroller Handbook hatte ich dann auch Programmbeispiele in Assembler, C, Pascal und BASIC.

Im Jahr 2000 veröffentlichte Mark Albers, der Entwickler von Bascom-AVR, die erste Version dieser neuen Entwicklungsumgebung. Die aktuelle Version (Stand: März 2023) ist Bascom-AVR 2.0.8.1. Bascom-AVR ist ein Beispiel dafür, dass leistungsfähige Entwicklungsumgebungen auch kostengünstig zur Verfügung gestellt werden können.

Nach den ersten Programmierversuchen mit den erwähnten Sprachen kam Bascom-AVR also zur richtigen Zeit für mich und es sollte eine intensive Beschäftigung damit folgen.

Meine Erfahrungen mit Bascom-AVR mündeten dann im gleichen Jahr in dem Titel Programmieren der AVR RISC Mikrocontroller mit BASCOM-AVR.

In der zweiten, bearbeiteten und erweiterten Auflage stehen dann die megaAVR mit ihren weiterentwickelten Merkmalen im Vordergrund. Aber auch die restlichen Mitglieder der AVR-Familie werden in die Betrachtungen einbezogen.

Im Jahr 2010 erschien schließlich die dritte, nun immerhin 444 Seiten umfassende Auflage, die den Entwicklungen in diesem Sektor Rechnung tragen sollte.

Nach nunmehr 25 Jahren gibt es noch immer Interessenten an Bascom-AVR und diesem Titel. Das freut jeden Autor und ist Grund genug, der Leserschaft Danke für ihr Interesse zu sagen.

Gleichwohl gilt das aber auch Bascom-AVR und seinem Entwickler, Mark Albers, selbst. Ohne diese Entwicklungsumgebung wäre die Bascom-AVR Community und dieser Titel nicht entstanden.


2023-03-27/ck