thompsonfw
@mthompson · Membre depuis août 2025
Embedded developer · agriculture · 4 years in the field
- Sujets
- 5
- Réponses
- 24
- Points
- 0
Toutes mes réponses sur les forums
Which pin again? GPIO 4?
30 probes, no redesign budget.
Certified module. Testing your own radio design for intentional radiator certification costs more than your whole first batch, and a copied antenna rarely passes first time.
Traduit de English par IA ·
Les contacts de porte sont de simples interrupteurs à lames souples (reed), oui. Les PIR ne peuvent pas être alimentés depuis l’ESP32, ils ont besoin de leur propre alimentation 12 V. Savez-vous si les sorties des PIR sont des contacts de relais ou du collecteur ouvert ? C’est généralement indiqué sur la carte à l’intérieur du capot.
Door contacts are plain reed switches, yes. The PIRs will not run from the ESP32, they need their own 12 V supply. Do you know if the PIR outputs are relay contacts or open collector? It’s usually written on the board inside the cover.
Compute on the ESP32. I do tilt alarms on irrigation pivots this way.
The drops: a device profile by default allows 10 telemetry messages per second and 200 data points per second. You send 50 messages and 450 points a second, so most of it is acknowledged and dropped, and a device that keeps breaking its limit gets its session closed. That’s the rate_limit in the log. See MQTT for the table.
Angles, for roberts.r too: roll is rotation around the pallet’s long axis, pitch around the short axis, yaw is the compass heading. From the accelerometer alone, when the pallet is still:
float roll = atan2(ay, az) * 180 / PI;
float pitch = atan2(-ax, sqrt(ay * ay + az * az)) * 180 / PI;
In a moving truck the accelerometer also sees braking and bumps, so blend it with the gyro (complementary filter, about 98 % gyro, 2 % accel) or use a Madgwick filter library, which also uses the magnetometer for yaw.
Then send what you need, not the raw stream: once every 10 s the current roll/pitch, plus an immediate message when the tilt passes, say, 30°:
{"roll": 2.1, "pitch": -0.8, "tilt_max": 3.4}
tilt_max is the biggest tilt seen since the last message, so a short tip between messages is not lost. An alarm rule on tilt_max > 30 is then all you need.
Traduit de English par IA ·
Ça pourrait venir de la radio. J’ai eu une fois un Pi 4 avec le Bluetooth HS mais le Wi-Fi fonctionnel, même puce, mais ça arrive.
Could be the radio. I had a Pi 4 with dead Bluetooth but working Wi-Fi once, same chip but it happens.
dtostrf it is. Valid JSON now, keys showing up. The NaN point bit me ten minutes later when I unplugged the sensor to test, so good call.
Termination and bias resistors? 40 m at 38400 without them can do exactly this.
Traduit de English par IA ·
La différence réside dans l’effort. Retirer une carte ne demande aucune compétence. Extraire la mémoire flash est aussi facile sur un ESP32, sauf si le chiffrement flash est activé. Avec le chiffrement flash + le chiffrement NVS, un dump ne donne que des données illisibles.
Difference is effort. Pulling a card is zero skill. Dumping flash is easy on an ESP32 too, unless flash encryption is on. With flash encryption + NVS encryption, a dump gives you garbage.

