Riporto fedelmente l’ottimo lavoro fatto e editato sul forum da Panda ( M/P su telegram).
ciao,
dato che ho delle schede lora con esp32, prima di comprare delle nrf, volevo vedere fin dove posso spingermi con una di queste in ottica di infilarla in un nodo solare autonomo.
premessa/note:
so che l’esp32 non e’ indicata come scheda a basso consumo ma al momento quello avevo in casa
la mia idea di nodo autonomo prevede che wifi e bluetooth siano spenti,
la gestione del nodo avverra’ tramite admin channel via lora
le metriche del nodo verranno raccolte tramite nodi ad-hoc sempre accesi che mandano via mqtt i dati ricevuti
hardware:
- Heltec v3.1
- BME280
- INA219
- Li-Ion 18650 da 3000mAh (di gen 2017 ma mai usata prima di feb 2024)
- KA75330 (nb: in test01 non era presente)
- antenna: gommino di serie della heltec
- contenitore: scatola gewiss GW44206 con telaio interno autoprogettato e stampato 3d (https://www.printables.com/model/1029943-gewiss-junction-box-mounting-plate-gw44206-and-gw4)
- altro: tappo per l’umido, serve per evitare che si crei condensa dentro la scatola, autoprogettato e stampato in 3d (https://www.printables.com/model/1029947-moisture-plug-for-junction-boxes)
schema:
foto:
connettori sul fondo della scatola, da sx:
- giunzione stagna per far entrare il cavo del pannello solare
- porta usb-c (dati+5v su usb2.0) stagna
- tappo per l’umido
- reset (push button)
- interruttore input solare
- interruttore batteria
NB: questo non e’ il design per un nodo solare autonomo, questo e’ il mio nodo di test che sta in balcone e che mi serve per testare e perfezionare il nodo solare senza smadonnare tutte le volte per salire sul tetto.
collegamenti:
la 18650 ha il positivo che entra nel “vin -” dell’INA219 ed esce dal “vin +” dello stesso componente (il verso e’ importante per poi plottare la carica e scarica coerentemente), in modo da poter monitorare quanta energia entra ed esce dalla batteria, per il resto e’ collegata al circuito di carica dell’heltec
BME280 e INA219 sono collegate allo stesso bus I2C
il tutto e’ saldato su una millefori, con pettini per togliere i componenti al bisogno.
recentemente e’ stato aggiunto anche un KA75330 per andare a tamponare il problema del brownout e factory reset (vedere in fondo al post)
ambiente:
in casa, con vicino altri nodi, solitamente dai 2 ai 4 in modo che ci sia sempre un po’ di chiacchiericcio,
in particolare un nodo fa da gateway mqtt in modo da poter portare le metriche su influxdb e grafana (i grafici che vedete vengono da li)
test01:
in casa, 2/4 altri nodi nei dintorni
range registrati dal BME del nodo:
- temperature:
- min: 22.2
- max: 27.1
- mean: 23.3
- diff min/max: 4.90
- humidity
- min: 34.7
- max: 58.6
- mean: 49.8
- diff min/max: 23.9
carica:
la carica della batteria viene effettuata con la porta usb della heltec,
la batteria si carica
dal 2024-09-16 23:30
al 20224-09-17 07:00
ovvero 7.5h, assorbendo in media 220mAh (qualcosa di piu’ perche’ all’inizio avevo scambiato i terminali del verso di carica/scarica come vedete all’inizio del grafico):
mantenimento:
quindi ho lasciato il sistema carico ma collegato all’alimentazione per vedere come si comportava
dal 2024-09-17 07:00
al 2024-09-17 22:40
ha delle fluttuazioni ma niente di macroscopico:
scarica:
quindi ho scollegato la carica per vedere in quanto si scaricasse:
dal 2024-09-17 23:00
al 2024-09-24 08:00
6.4gg o 153h
una bella scarica graduale con una media di -51mAh:
note:
il risultato e’ soddisfacente anche se so che e’ stato fatto a temperature ottimali per la batteria.
test02
infilare tutto l’hardware nella scatola stagna e metterlo in balcone attaccato al pannello solare per fare il test invernale
pannello solare: 6W 5V usb (micro e c): li ho usati un po’ questa estate e si sono comportati molto bene per il momento
https://www.amazon.it/gp/product/B09XR1KH9R
configurazioni:
power
la scheda e’ in risparmio energetico (is_power_saving: true) e il deep sleep (sds) e’ stato abbassato da 1y a 30min.
NB: l’indirizzo i2c dell’INA219 e’ definito in questa sezione, non in telemetry, e va settato a mano perche’ non lo rileva
power:
is_power_saving: true
wait_bluetooth_secs: 5
sds_secs: 1800
ls_secs: 300
min_wake_secs: 1
device_battery_ina_address: 64
display
abbiamo solo fatto in modo che stia acceso il meno possibile
display:
screen_on_secs: 15
lora
lora:
use_preset: true
modem_preset: MEDIUM_FAST
region: EU_868
hop_limit: 3
tx_enabled: true
tx_power: 27
sx126x_rx_boosted_gain: true
telemetry
con “power_measurement_enabled” andiamo ad abilitare la telemetrica dell’INA219 e con “environment_measurement_enabled” quella del BME280
telemetry:
device_update_interval: 900
environment_update_interval: 900
environment_measurement_enabled: true
power_measurement_enabled: true
bluetooth
disabilitato perche’ non ci serve,
il comando esatto: “–set bluetooth.enabled false”
bluetooth:
mode: FIXED_PIN
fixed_pin: 123456
problemi (noti?)
- brownout = morte: quando la batteria si scarica completamente ma poi si ricarica (anche al 100%) la scheda non si sveglia, si dovrebbe riuscire a risolvere con un integrato che quando il voltaggio passa i 3.3 tira un reset all’esp cosi’ si riprende (se avete altre soluzioni sono felice di provarle, comunque non e’ questione di deep sleep da tarare perche’ lo ho gia’ portato a 2h)
- bug di factory reset: in seguito alla condizione precedente di bassa tensione, la scheda si riavvia piu’ volte durante il boot, alcune versioni di meshtastic soffrono del bug per cui dopo alcuni reset perdono la configurazione: https://meshtastic.discourse.group/t/heltec-v3-random-factory-resets/13769/21
ovvero quando la batteria si scarica sotto il voltaggio di funzionamento della scheda, poi il pannello solare ricarica la batteria ma la scheda non si ripiglia, e rimane in uno stato in cui va svegliata a mano
opzioni:
- KA75330: https://www.reddit.com/r/esp32/comments/1cmv1ye/solar_powered_esp32_without_batteries/
- fix ADC Multiplier Override:
https://meshtastic.org/docs/configuration/radio/power/#adc-multiplier-override
ma non sembra fixare a quanto dicono i forum