Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

Lakshmi Iyer

iyerdev

@iyer-l · Se unió el septiembre 2026

Recién llegado

Backend developer · logistics · 21 years in the field

Temas
1
Respuestas
6
Puntos
0
Recién llegado10 puntos para Miembro

Respuestas de foro creadas

Viendo 6 entradas – de la 1 a la 6 (de un total de 6)

Traducido del English por IA ·

Usar ambos a la vez no pasa nada. El Uno tiene un comparador que conmuta el riel de 5 V al regulador cuando VIN supera aproximadamente 6,6 V, y los datos por USB siguen funcionando porque las líneas serie no les importa de dónde viene la alimentación. Tu portátil no corre ningún riesgo por eso.El problema es el solenoide. Una bobina de solenoide sin diodo de libre circulación genera un pico de tensión muy grande cada vez que el relé se abre, y ese pico pasa por la masa compartida de tu protoboard. Ese es el salto en la lectura analógica y, muy probablemente, la caída del USB. Esto es lo que cambiaría:

  • Una 1N4007 en paralelo con el solenoide, cátodo a +12 V.
  • Alimentar la bobina del relé desde el lado de 12 V o desde una fuente de 5 V separada, no desde el pin 5V del Uno. El regulador integrado se calienta mucho si alimenta un relé desde la entrada de 12 V.
  • Llevar la masa de la válvula de vuelta al adaptador y unirla a la masa del Uno en un único punto, no a través de los raíles de la protoboard que usa el sensor.
  • 100 nF más 10 µF en la alimentación del sensor, cerca del sensor.
  • En el sketch, no tomar muestras durante un segundo después de conmutar la válvula, y promediar 8 lecturas.

En el lado del portátil, envía solo lecturas limpias y deja que Hermetry asigne la hora a menos que el reloj del portátil esté sincronizado:

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)

Las reglas del payload están en Device HTTP API.

Solución aceptada♥ 6

Traducido del English por IA ·

+1 al fragmento de bashrc, en nuestras pasarelas es igual. Yo también añadiría export LANG=C.UTF-8 ahí si ves que los caracteres de dibujo de cajas se rompen en htop.

♥ 1

Traducido del English por IA ·

¿Esto requiere ser administrador? La mayoría de mi equipo son simples miembros.

♥ 0
Viendo 6 entradas – de la 1 a la 6 (de un total de 6)