Traceur de remorque Pi Zero + SIM7600 vide une batterie externe de 10 Ah en neuf heures
Traduit de English par IA ·
Mon premier vrai projet en dehors de la maison, donc attendez-vous à des erreurs bêtes.Je construis un traceur pour ma remorque : un Pi Zero W, un HAT SIM7600E (LTE + GPS) et une batterie externe USB de 10 000 mAh. Un script Python lit le GPS du HAT toutes les 30 secondes et l’envoie à Hermetry via l’API HTTP de l’appareil :
{"lat": 52.95231, "lon": -1.14972, "speed_kmh": 0.0, "sats": 9}
La carte affiche bien la remorque, donc cette partie fonctionne. Le problème, c’est que la batterie est vide après environ neuf heures. J’ai placé un wattmètre USB en ligne et il affiche environ 350 mA en permanence, à l’arrêt comme en mouvement. Je espérais une semaine entre deux charges. Est-ce simplement la consommation d’un Pi, ou est-ce que je fais quelque chose de stupide ?Le script utilise requests avec le jeton de l’appareil dans l’en-tête Authorization, un POST par position, et garde la session HTTPS ouverte entre les envois. Le HAT est alimenté depuis les broches 5 V du Pi, et les deux fonctionnent sur l’unique port 2,1 A de la batterie externe.
First real project outside the house, so expect silly mistakes.
I’m building a tracker for my trailer: Pi Zero W, a SIM7600E HAT (LTE + GPS), and a 10,000 mAh USB power bank. A Python script reads GPS from the HAT every 30 seconds and posts it to Hermetry with the device HTTP API:
{"lat": 52.95231, "lon": -1.14972, "speed_kmh": 0.0, "sats": 9}
The map card shows the trailer, so that part works. Problem is the battery is flat after about nine hours. I put a USB power meter in line and it reads around 350 mA the whole time, parked or moving. I was hoping for a week between charges. Is this just what a Pi costs, or am I doing something dumb?
The script uses requests with the device token in the Authorization header, one POST per fix, and keeps the HTTPS session open between posts. The HAT is powered from the Pi 5 V pins, and both run off the single 2.1 A port of the power bank.
Traduit de English par IA ·
Que font le GPS et le modem entre deux positions ? Les deux restent-ils allumés en permanence ?
What are the GPS and the modem doing between fixes? Both on all the time?
Traduit de English par IA ·
Oui, les deux sont allumés. Le script est une boucle avec time.sleep(30), rien de sorcier.
Yes, both on. The script is a loop with time.sleep(30), nothing clever.
Traduit de English par IA ·
Et le Zero lui-même consomme environ 100 mA au repos avec le Wi-Fi, le BT et le HDMI activés. C’est un tiers de votre budget avant même que le HAT ne fasse quoi que ce soit.
And the Zero itself idles around 100 mA with Wi-Fi, BT and HDMI on. That’s a third of your budget before the HAT does anything.
Traduit de English par IA ·
Pourrais-tu mettre le Pi en veille profonde entre deux positions, comme sur l’ESP32 ?
Could you put the Pi into deep sleep between fixes like an ESP32?
Traduit de English par IA ·
Côté données : avez-vous besoin d’un point toutes les 30 s pendant que la remorque est garée dans votre allée ? Pour nos fourgonnettes, nous n’envoyons des données qu’en cas de mouvement.
From the data side: do you need a point every 30 s while it’s parked in your drive? We only send on movement for our vans.
Traduit de English par IA ·
Aoife, le Pi n’a malheureusement pas de veille profonde. C’est une machine Linux : elle tourne ou elle est éteinte. Donc tu coupes tout ce que tu peux et tu fais travailler la radio le moins possible.Ce que je ferais, par ordre de gain :
- Pi :
dtoverlay=disable-wifietdtoverlay=disable-btdans config.txt, HDMI désactivé (tvservice -osur les anciennes images), LED d’activité éteinte. Sur un Zero, cela ramène à environ 80 mA. - GPS : couper le moteur GNSS entre deux positions (
AT+CGPS=0, puisAT+CGPS=1). Un démarrage à chaud sur le SIM7600 prend quelques secondes. - Cadence : 30 s en mouvement, 15 à 60 min à l’arrêt. Décide selon la vitesse ou la distance depuis la dernière position.
- Lots : mémoriser les positions et envoyer un message toutes les quelques minutes sous forme de tableau avec ts. Le GPS fournit une horloge correcte, donc les horodatages sont fiables. Un appel HTTPS au lieu de dix consomme moins de temps radio et ne coûte qu’un message du quota mensuel au lieu de dix.
[{"ts": 1757683200000, "values": {"lat": 52.95231, "lon": -1.14972, "speed_kmh": 31.5}},
{"ts": 1757683230000, "values": {"lat": 52.95410, "lon": -1.14701, "speed_kmh": 33.0}}]
Comme l’appareil ne communique que toutes les quelques minutes, règle la règle de connexion de son profil sur Recent message avec un intervalle attendu correspondant à ta cadence à l’arrêt, sinon il apparaîtra hors ligne toute la nuit.Si une semaine est une exigence stricte, la réponse honnête est un microcontrôleur (ESP32 ou nRF) qui dort et réveille le modem, ou un circuit temporisateur comme le TPL5110 qui coupe l’alimentation de tout le Pi entre deux cycles. Une carte Linux qui tourne à vide à 80 mA n’y arrivera jamais avec 10 Ah.
Aoife, the Pi has no deep sleep, sadly. It’s a Linux box, it’s either running or off. So you cut everything you can and make the radio work less.
What I’d do, in order of payoff:
- Pi:
dtoverlay=disable-wifianddtoverlay=disable-btin config.txt, HDMI off (tvservice -oon older images), activity LED off. On a Zero that gets you to roughly 80 mA. - GPS: switch the GNSS engine off between fixes (
AT+CGPS=0, thenAT+CGPS=1again). A warm start on the SIM7600 is a few seconds. - Rate: 30 s while moving, 15 to 60 min while parked. Use speed or the distance from the last fix to decide.
- Batch: buffer fixes and send one message every few minutes as an array with ts. GPS gives you a correct clock, so the timestamps are trustworthy. One HTTPS call instead of ten is less radio time, and it costs one message out of the monthly quota instead of ten.
[{"ts": 1757683200000, "values": {"lat": 52.95231, "lon": -1.14972, "speed_kmh": 31.5}},
{"ts": 1757683230000, "values": {"lat": 52.95410, "lon": -1.14701, "speed_kmh": 33.0}}]
Because the device only talks every few minutes, set its profile’s online rule to Recent message with an expected interval that matches your parked rate, otherwise it shows offline all night.
If a week is a hard requirement, the honest answer is a microcontroller (ESP32 or nRF) that sleeps and wakes the modem, or a timer chip like a TPL5110 that cuts power to the whole Pi between runs. A Linux board idling at 80 mA will never get there on 10 Ah.
Traduit de English par IA ·
Fait 1 à 4 aujourd’hui. Wi-Fi/BT/HDMI désactivés, GPS désactivé entre les fixes, 30 s en mouvement, 30 min à l’arrêt, envoi toutes les 5 min. Le compteur affiche maintenant environ 95 mA en moyenne. Cela devrait tenir à peu près quatre jours. J’ai aussi dû passer le profil sur Recent message, il basculait en hors ligne chaque nuit, ce que je prenais pour un bug. TPL5110 commandé pour la prochaine version.
Did 1 to 4 today. Wi-Fi/BT/HDMI off, GPS off between fixes, 30 s when moving, 30 min when parked, sending every 5 min. Meter now reads about 95 mA average. Should be roughly four days. Also had to switch the profile to Recent message, it was flipping to offline every night, which I thought was a bug. TPL5110 ordered for the next version.
Traduit de English par IA ·
Si tu regardes plus tard PSM ou eDRX sur le modem, vérifie d’abord que ton opérateur prend en charge cette fonction avec cette SIM. Le nôtre ne la prenait pas en charge et j’ai perdu tout un week-end.
If you look at PSM or eDRX on the modem later, check your operator supports it on that SIM first. Ours didn’t and I lost a weekend.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

