Randapparatuur¶
BUZZER · LED · BUSEXPANDER · VERSNELLINGSMETER
Vier libraries bedienen wat er verder nog aan een MeshCore-bord kan hangen: een zoemer, een adresseerbare LED, een busexpander die tekort aan pennen oplost, en een versnellingsmeter. Ze hebben weinig met elkaar te maken, behalve dat ze geen van alle in de meting of de communicatie zitten.
[!NOTE] Bron. Deze pagina is geverifieerd tegen de firmware zelf:
MeshCorev1.16.0, commit03b6ef4, 28 juli 2026 — bestandenplatformio.ini,src/helpers/ui/buzzer.cpp,src/helpers/ui/GxEPDDisplay.cpp,variants/thinknode_m5/envariants/wio_wm1110/platformio.ini.
Hoe MeshCore deze groep aanroept¶
Alle vier zitten achter een #ifdef op een penconstante uit het
variantbestand. Bestaat de pen niet, dan bestaat de code niet:
src/helpers/ui/buzzer.cpp r.1-16
#include "Arduino.h"
#ifdef PIN_BUZZER
#include "buzzer.h"
void genericBuzzer::begin() {
// Serial.print("DBG: Setting up buzzer on pin ");
// Serial.println(PIN_BUZZER);
#ifdef PIN_BUZZER_EN
pinMode(PIN_BUZZER_EN, OUTPUT);
digitalWrite(PIN_BUZZER_EN, HIGH);
#endif
quiet(false);
pinMode(PIN_BUZZER, OUTPUT);
digitalWrite(PIN_BUZZER, LOW); // need to pull low by default to avoid extreme power draw
}
end2endzone/NonBlockingRTTTL¶
RTTTL is het tekstformaat waarin oude Nokia-telefoons hun beltonen bewaarden:
een naam, een paar standaardinstellingen en dan de noten als tekst. De
gewone Arduino-implementaties spelen zo'n melodie af met delay(), wat de
firmware seconden stilzet. NonBlockingRTTTL doet het met een toestandsmachine
die bij elke doorloop van de hoofdlus één stap zet — een MeshCore-node kan
dus een melodie spelen en tegelijk pakketten blijven ontvangen.
MeshCore verpakt hem in genericBuzzer (src/helpers/ui/buzzer.h en
.cpp), die de melodie start, onderbreekt en stilzet. Met zeventien
varianten is dit na de displaylibraries de meest voorkomende library in deze
groep.
adafruit/Adafruit NeoPixel¶
NeoPixel is de Adafruit-naam voor adresseerbare LED's van het type WS2812 en verwant: één datalijn, en per LED drie of vier bytes kleur, met een protocol dat op de microseconde nauw luistert. De library regelt die timing per platform.
In drie varianten gedeclareerd, waaronder lilygo_techo_card,
heltec_mesh_solar en nibble_screen_connect. De library wordt daarnaast
door drie Adafruit-sensorlibraries als afhankelijkheid meegebracht voor hun
voorbeeldschetsen; zie ../dependencies.md.
maxpromer/PCA9557-arduino¶
De PCA9557 is een I²C-busexpander: één chip aan de I²C-bus levert acht extra in- en uitgangen. Op borden waar de pennen op zijn, hangen daar bijvoorbeeld de reset- en selectielijnen van een e-inkscherm aan.
MeshCore gebruikt hem op de ThinkNode M5. De expander wordt in het variantbestand aangemaakt en door de schermdriver gebruikt:
src/helpers/ui/GxEPDDisplay.cpp r.5-6
#include <PCA9557.h>
extern PCA9557 expander;
variants/thinknode_m5/ThinknodeM5Board.cpp r.3
PCA9557 expander (0x18, &Wire1);
Merk op dat de expander aan Wire1 hangt, de tweede I²C-bus van het bord.
De library staat als enige in de repo zonder versieaanduiding in lib_deps:
er staat alleen maxpromer/PCA9557-arduino, dus PlatformIO pakt wat er op
dat moment de nieuwste is.
adafruit/Adafruit LIS3DH¶
De LIS3DH is een versnellingsmeter met drie assen, bruikbaar om te merken dat een apparaat opgepakt of bewogen wordt. De library wordt in één variant gedeclareerd:
variants/wio_wm1110/platformio.ini r.36
adafruit/Adafruit LIS3DH @ ^1.2.4
In src/, examples/, variants/ en arch/ is geen enkele include van
Adafruit_LIS3DH te vinden. Die waarneming staat beschreven in
../dependencies.md; er wordt hier geen conclusie aan
verbonden.
Overzicht¶
| Library | Versie | Varianten | Bord |
|---|---|---|---|
end2endzone/NonBlockingRTTTL |
^1.3.0 |
17 | alle borden met PIN_BUZZER |
adafruit/Adafruit NeoPixel |
^1.10.0 · ^1.12.3 |
3 | T-Echo Card, Heltec Mesh Solar, Nibble Screen Connect |
maxpromer/PCA9557-arduino |
geen | 1 | ThinkNode M5 |
adafruit/Adafruit LIS3DH |
^1.2.4 |
1 | Wio WM1110 |