brooksdata
@megan_b40 · Eylül 2025 tarihinde katıldı
Data analyst · water and wastewater
- Konular
- 2
- Yanıtlar
- 45
- Puan
- 0
Oluşturulan forum yanıtları
Yapay zekâ tarafından English dilinden çevrildi ·
Bunun neredeyse aynısını birkaç küçük pompa istasyonunda çalıştırıyoruz, o yüzden bu konuda birkaç şey paylaşayım.Kesintileriniz göz önüne alındığında ortadaki Pi iyi bir tercih. Ağ geçidi olarak çalışmasını sağlayın: Hermetry’de “Bu cihaz bir ağ geçididir” olarak işaretlenmiş tek bir cihaz olsun ve Pi her odayı ilk bildirdiğinde o oda bir alt cihaz olarak eklensin. Node-RED, Mosquitto’dan oda mesajlarını toplasın, internet kesikken bunları bir dosyada ya da küçük bir SQLite tablosunda tutsun, sonra kendi zaman damgalarıyla gönderin:
topic v1/gw/telemetry
{"Room 4": [{"ts": 1793000000000, "values": {"temperature": 22.1, "humidity": 51, "door_open": 0}},
{"ts": 1793000300000, "values": {"temperature": 22.0, "humidity": 51, "door_open": 1}}]}
Herhangi bir veriye ts eklemeden önce Pi’nin doğru saate sahip olduğundan emin olun (açılıştan sonra NTP). Büyük bir birikim biraz daha yavaş boşalır, çünkü tekrar oynatmalar profilde kendi hız sınırına sahiptir; bu normaldir.Şofben kontrolü aynı Pi üzerinden yapılabilir. Alt bir cihaza gönderilen komut, ağ geçidine v1/gw/rpc üzerinden ulaşır; dolayısıyla Node-RED bunu dinleyip doğru odaya iletir. Ya da şofben kontrolcüsünü Hermetry’ye doğrudan bağlanan kendi cihazı yapabilirsiniz. Şofben için doğrudan bağlantıyı tercih ederim, daha az hareketli parça olur.Ağ geçidi konuları Devices behind a gateway sayfasında açıklanmıştır.
We run nearly this at a few small pump stations, so a couple of things from that.
The Pi in the middle is a good call because of your outages. Have it act as a gateway: one device in Hermetry marked “This device is a gateway”, and each room becomes a child device the first time the Pi reports it. Node-RED collects the room messages from Mosquitto, keeps them in a file or a small SQLite table while the internet is down, and then sends them on with their own timestamps:
topic v1/gw/telemetry
{"Room 4": [{"ts": 1793000000000, "values": {"temperature": 22.1, "humidity": 51, "door_open": 0}},
{"ts": 1793000300000, "values": {"temperature": 22.0, "humidity": 51, "door_open": 1}}]}
Make sure the Pi has the right time (NTP after boot) before you put a ts on anything. A big backlog drains a bit slower because replays have their own rate limit on the profile, that’s normal.
Geyser switching can go through the same Pi. A command sent to a child device comes down to its gateway on v1/gw/rpc, so Node-RED subscribes to that and passes it on to the right room. Or make the geyser controller its own device that connects to Hermetry directly. For a geyser I’d go direct, fewer moving parts.
Gateway topics are described in Devices behind a gateway.
Yapay zekâ tarafından English dilinden çevrildi ·
Bu, cihaz tarafı için; komutları bekliyor. Bence cihaz token’ı yerine bir API anahtarı kullanman gerekiyor. Bir süre önce python requests ile buna benzer bir şey yapmıştım ama yolu hatırlamıyorum.
That one is for the device side, it waits for commands. I think you need an API key instead of the device token, I did something like this with python requests a while ago but I don’t remember the path.
Nice. Watch the 22:00 shift around the clock change in spring and autumn, our timestamps are UTC and we got a 7 hour shift once.
Grove is just a connector convention, wire it with Grove-to-female-jumper cables (or cut one cable in half). Did a classroom kit like this on ESP32s.
Digital and analog modules:
yellow SIG (the main signal: digital or analog out)
white NC or second signal (unused on most single modules)
red VCC
black GND
I2C modules use yellow = SCL, white = SDA.
Voltage is the part to check per module. The light sensor (v1.2) and loudness sensor are analog and run fine at 3.3 V, their output stays below 3.3 V, so straight into ESP32 ADC1 pins (GPIO32-39; ADC2 doesn’t work while Wi-Fi is on). The DHT11 module works at 3.3 V too, with a short cable. The Grove relay coil is 5 V: power it from the 5 V pin (VIN on the DevKit with USB), its input is happy with a 3.3 V signal.
Don’t feed any module 5 V if its output goes into an ESP32 pin, the ESP32 isn’t 5 V tolerant.
The loudness sensor gives an envelope, not audio. Sample it every 50 ms and send the max and average for the minute, e.g. {"temperature": 21, "light": 1830, "noise_avg": 312, "noise_max": 744}, so a forklift going past shows up as a peak.
What does the ERP need exactly, one total per shift or a running count?
Worth sending an error counter next to the readings, modbus.crc_errors or similar. On our sites that counter going up was always the first sign of a loose A/B wire.
Not fixed, the ESP32 can route I2C to almost any pin through its GPIO matrix. The scanner working proves your wiring is fine.
What happens is that sht4.begin() and ina219.begin() with no arguments call Wire.begin() again inside the library, and a bare Wire.begin() puts the bus back on the default pins 21 and 22. That moves I2C away from your sensors and onto your RS-485 transceiver, which explains the second symptom too.
Give the libraries the bus you already started:
Wire.begin(32, 33);
Wire.setClock(100000);
if (!sht4.begin(&Wire)) Serial.println("SHT40 not found");
if (!ina219.begin(&Wire)) Serial.println("INA219 not found");
Most of the Adafruit libraries take a TwoWire*. If one does not, use Wire1 for the sensors and leave Wire alone.
On pin choice: 34 to 39 are input only, so never SDA or SCL. And stay off the strapping pins 0, 2, 12 and 15 if you can, a pull-up on 12 can stop the board from booting.
Did you turn Bluetooth off? On the Pi 3 the good UART goes to Bluetooth by default.
I’m on the data side at a water operator, so I see this argument from the people who want dashboards. Our sites run exactly this split and it’s held up for years.
The PLC does control: it scans I/O every few milliseconds whether the network is up or not, its inputs and outputs are made for 24 V field wiring and noisy cabinets, it has certified safety options, and the night-shift technician can open the ladder logic and see why a pump didn’t start. An ESP32 can do the logic, but you’d be building and certifying all of that yourself, then supporting it for 15 years.
Hermetry does monitoring and supervision: history, alarms, dashboards, operators sending a command. Even Hermetry’s own ready-made water solution keeps it that way, the pump stations’ automatic start and stop stays in the station’s controller and the cloud only switches manual mode and pumps on command. See Water site. If the internet drops, a cloud rule can’t stop a conveyor.
Where ESP32s do make sense: extra sensors the PLC doesn’t have, like vibration on a motor, temperatures in a cabinet, energy meters. Cheap, no risk, and they go straight to Hermetry.
Kevin, the cost question is the one to answer with numbers: one hour of downtime on a line versus the price of an S7-1200.
Fixed! printf version works, all seven .up keys show up and raw stopped updating. Went with Ciaran’s idea in the end because ops will add more sites, so now each site is a child with a single up key and one rule. Pump 6 had a real outage last night and the alarm opened after 5 minutes like it should.
It runs, raw updates every minute. So it’s the quoting. I always get confused by bash quotes.
Rev B is back: stitched top pour every 4 mm, antenna keep-outs cleared on all layers, antennas on opposite corners. Time to first fix went from about 3 minutes to 35 s, and LoRa SNR at the same test spot improved by 6 dB. The chart comparison was very satisfying for a data person.
Plastic box. Good thought though.
Yapay zekâ tarafından English dilinden çevrildi ·
rfkill list ne gösteriyor? Yazılımsal engelleme de böyle görünür.
What does rfkill list show? A soft block looks like this too.
Yapay zekâ tarafından English dilinden çevrildi ·
Veri tarafından bakınca: araç park halindeyken sürücünüzde 30 sn’de bir konum noktası gerekiyor mu? Bizde vanlar için yalnızca hareket halinde veri gönderiyoruz.
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.

