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

Ciarán Walsh

ciaran55

@ciaranwalsh55 · Se unió el junio 2025

Recién llegado

Smart-city engineer · energy

Temas
9
Respuestas
68
Puntos
0
Recién llegado10 puntos para Miembro

Respuestas de foro creadas

Viendo 15 entradas – de la 16 a la 30 (de un total de 68)

Operator had a fixed-IP APN option, we got a /28. Allowed networks set on the cabinet profile. Tested with a dev board on my home broadband using a real cabinet token: CONNACK 5, and the Log tab shows the refusal reason. Tokens and PSK are in NVS now, flash encryption is next after I brick a spare or two learning it. Missing board’s token revoked.

♥ 0

Don’t push the .bin over MQTT. Hermetry’s OTA tells the device where to download the image over HTTPS and the device does the rest. I did 140 street-cabinet controllers this way last year. The parts:

Hermetry side (an Admin, and an Owner once for the key):

  1. Profile of the room sensors, Firmware tab: turn on «Allow firmware updates for this profile». Leave unsigned images off.
  2. Firmware > Signing keys: the Owner adds your Ed25519 public key. You sign each .bin on your laptop and upload the .sig with it. Hermetry never holds the private key.
  3. Upload firmware: Name must equal what the board reports as its firmware title, e.g. room-sensor, Version e.g. 2.1.0.
  4. Assign it, first to One device (the one in your office), later to the whole profile.

Device side, once by ladder, after that never again. The board gets these shared attributes on v1/attributes/set:

{"fw_title":"room-sensor","fw_version":"2.1.0","fw_size":1183744,
 "fw_checksum":"9c1e...","fw_checksum_algorithm":"SHA256",
 "fw_url":"https://...","fw_sig":"..."}

Your code then: report fw_state DOWNLOADING with fw_progress, download fw_url with HTTPClient into the OTA partition using Update.h, check SHA-256 and the signature, report VERIFIED, then UPDATING, reboot. After the reboot publish current_fw_title and current_fw_version. Hermetry only marks it Updated when that new version shows up. If anything fails, report FAILED with fw_error and stay on the old image.

Gotchas: fw_url is valid 15 minutes, so if a download stalls, ask for fw_url again on v1/attributes/req/1 and resume with an HTTP Range request. And firmware is never offered over plain MQTT, so the boards need to be on TLS.

Full page: Firmware updates (OTA)

Solución aceptada♥ 2

Blocks on rows 1 and 3 with contrast fine means the display powered up but never got initialised, so it’s sitting in its one-line power-on mode. Almost always the I2C address. Backpacks with a PCF8574A chip are at 0x3F, not 0x27, and from the outside they look identical. Run a scanner:

#include <Wire.h>
void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);
  for (uint8_t a = 1; a < 127; a++) {
    Wire.beginTransmission(a);
    if (Wire.endTransmission() == 0) Serial.printf("found 0x%02Xn", a);
  }
}
void loop() {}

Second thing for an ESP32: the backpack on 5V has its pull-ups to 5V, so SDA/SCL idle at 5V into a 3.3V chip. It usually works and it’s not great. Either power the backpack from 3.3V (some LCDs go faint at 3.3V) or remove the backpack’s pull-up resistors and add 4.7k to 3.3V, or put a small level shifter in between. For something on a cleanroom wall for years I’d do the level shifter.

Solución aceptada♥ 4

Traducido del English por IA ·

Resuelto, gracias Eric. Quité la suscripción echo; el armario ahora espera el PUBACK antes de descartar la lectura almacenada en búfer. La pantalla hace el GET cada 5 min. La primera llamada fue rechazada y me entró un poco de pánico, pero resultó que había creado la clave con mi propio login en la organización de prueba, así que el id de tenant en la ruta no coincidía con la clave. Creé una nueva en la organización correcta y funcionó enseguida.

♥ 0

Traducido del English por IA ·

El mismo patrón funciona para contadores de agua. increase nos salvó cuando un contador se cambió a mitad de mes y el nuevo empezó en 0.

♥ 0

Tyler has part of it. Each receiver input also has its own resistance to that side’s GND2 (the input impedance, around 96k for a 1/8 unit load device, more or less), and the bias network ties A and B toward one side’s isolated supply and ground. Each isolated side is floating, so it settles wherever those resistances and the leakage across the isolation barrier put it. The two GND2s drift toward each other through the bus wires themselves. On a 2 m bench with nothing injecting current, that’s close enough, so it works.

Over 300 m between buildings you get induced common-mode voltages and lightning transients. With nothing defining the common mode, one side can sit far outside the receiver’s range and the link gets flaky, or the isolation barrier takes surges it doesn’t need to.

Standard practice: run a third conductor as a signal reference, connect it to GND2 at each node through about 100 ohm to limit current if the grounds disagree, and earth the cable shield at one end only. Michael, that’s why you were taught three wires, it’s the right habit. Keep the bias on one end and termination at both ends as you have it.

Solución aceptada♥ 8

Traducido del English por IA ·

Ja, qué pequeño es el mundo. He hecho alumbrado público para un pueblo como ese, con City. No sé si sirve para aparcamientos, y tampoco encontré nunca una página de documentación al respecto.

♥ 0

Traducido del English por IA ·

Mantenga el termostato antiguo ajustado a unos 12 °C como protección anticongelante en paralelo; así, si internet o su placa fallan, el edificio igualmente no se congelará.

♥ 2

Traducido del English por IA ·

Ese es el problema. En la Zero, el pin 1 está en el extremo de la tarjeta SD, pero en la fila interior. El pin que usaste, la fila exterior en esa esquina, es el pin 2, que es 5V. Cuenta desde ahí: el pin 6 de la fila exterior es GND, el pin 7 está en la fila interior. Si tu cable rojo fue al pin 2 y el resto siguió el tutorial con la placa al revés, es probable que el DHT22 tuviera 5V o GND en las patas equivocadas, por eso se calentó.Formas de asegurarte la próxima vez: la almohadilla de soldadura del pin 1 es cuadrada, las demás son redondas. Y en la propia Pi:

$ pinout          # viene con gpiozero, muestra un mapa ASCII de tu placa
   3V3  (1) (2)  5V
 GPIO2  (3) (4)  5V
 GPIO3  (5) (6)  GND
 GPIO4  (7) (8)  GPIO14

Entonces: VCC al pin 1 (3V3), DATA al pin 7 (que es GPIO4 en el código), GND al pin 6. Usa 3V3 para el DHT22, no 5V, para que la línea de datos se mantenga en un nivel que la Pi pueda soportar.Sobre si el sensor sobrevivió: los DHT22 son más resistentes de lo que parece. Vuelve a cablear, deja que se enfríe e inténtalo de nuevo. Si con el cableado correcto sigue diciendo que no lo encuentra, está muerto, y son baratos.

Solución aceptada♥ 5
Viendo 15 entradas – de la 16 a la 30 (de un total de 68)