iyerdev
@iyer-l · Membre depuis septembre 2026
Backend developer · logistics · 21 years in the field
- Sujets
- 1
- Réponses
- 6
- Points
- 0
Toutes mes réponses sur les forums
Traduit de English par IA ·
Les deux en même temps, c’est sans problème. L’Uno dispose d’un comparateur qui bascule le rail 5 V vers le régulateur lorsque VIN dépasse environ 6,6 V, et les données USB continuent de fonctionner car les lignes série se moquent de l’origine de l’alimentation. Ton ordinateur portable ne risque rien à cause de ça.Le problème vient de l’électrovanne. Une bobine de solénoïde sans diode de roue libre génère un fort pic de tension à chaque ouverture du relais, et ce pic traverse la masse commune de ta platine d’essai. C’est le saut dans la lecture analogique, et très probablement la coupure de l’USB. Voici ce que je changerais :
- Une 1N4007 aux bornes de l’électrovanne, cathode vers +12 V.
- Alimenter la bobine du relais depuis le côté 12 V ou depuis une alimentation 5 V séparée, pas depuis la broche 5V de l’Uno. Le régulateur embarqué chauffe fortement s’il alimente un relais à partir de 12 V.
- Ramener la masse de la vanne vers l’adaptateur et ne la relier à la masse de l’Uno qu’en un seul point, pas via les rails de la platine utilisés par le capteur.
- 100 nF plus 10 µF aux bornes de l’alimentation du capteur, près du capteur.
- Dans le sketch, ne pas échantillonner pendant une seconde après la commutation de la vanne, et faire la moyenne de 8 mesures.
Côté ordinateur portable, n’envoie que des mesures propres et laisse Hermetry horodater si l’horloge de ton ordinateur n’est pas synchronisée :
import serial, requests
s = serial.Serial("/dev/ttyACM0", 9600, timeout=5)
URL = "https://<your-host>/api/v1/telemetry"
HDR = {"Authorization": "Bearer <device token>", "Content-Type": "application/json"}
while True:
line = s.readline().decode(errors="ignore").strip()
if line.isdigit():
requests.post(URL, json={"soil_moisture": int(line)}, headers=HDR, timeout=10)
Les règles relatives au contenu des messages se trouvent dans Device HTTP API.
Both at once is fine. The Uno has a comparator that switches the 5 V rail to the regulator when VIN is above roughly 6.6 V, and USB data keeps working because the serial lines don’t care where power comes from. Your laptop is not at risk from that.
The trouble is the solenoid. A solenoid coil with no flyback diode throws a big voltage spike every time the relay opens, and that spike goes through your shared breadboard ground. That’s the jump in the analog reading and very likely the USB dropping out. What I’d change:
- A 1N4007 across the solenoid, cathode to +12 V.
- Take the relay coil power from the 12 V side or a separate 5 V supply, not the Uno’s 5V pin. The onboard regulator gets hot feeding a relay off 12 V in.
- Run the valve’s ground back to the adapter, and join it to the Uno ground at one point only, not through the breadboard rails the sensor uses.
- 100 nF plus 10 µF across the sensor supply, close to the sensor.
- In the sketch, don’t sample for a second after switching the valve, and average 8 readings.
On the laptop side, send only clean readings and let Hermetry stamp the time unless your laptop clock is synced:
import serial, requests
s = serial.Serial("/dev/ttyACM0", 9600, timeout=5)
URL = "https://<your-host>/api/v1/telemetry"
HDR = {"Authorization": "Bearer <device token>", "Content-Type": "application/json"}
while True:
line = s.readline().decode(errors="ignore").strip()
if line.isdigit():
requests.post(URL, json={"soil_moisture": int(line)}, headers=HDR, timeout=10)
Payload rules are on Device HTTP API.
Agree on batching. Also give the APs a minimum data rate of 6 or 12 Mbps if the yard boxes can still hold that, it stops one far client from dragging the whole cell down.
Traduit de English par IA ·
+1 pour le snippet bashrc, c’est pareil sur nos passerelles. J’ajouterais aussi export LANG=C.UTF-8 là-dedans si les caractères de dessin de boîte se cassent dans htop.
+1 to the bashrc snippet, same on our gateways. I’d add export LANG=C.UTF-8 there too if you see box-drawing characters break in htop.
Can’t the alarm rule just text the carer’s phone? Add the number as a recipient.
Traduit de English par IA ·
Cela nécessite-t-il les droits administrateur ? La plupart des membres de mon équipe sont de simples membres.
Does this need admin? Most of my team are plain members.
Trucks lose signal a lot. If a device buffers and sends its readings an hour late, do they land at the time they were taken?

