Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Oğuz Özkan

oguz59

@oguz-ozkan · Membre depuis mai 2025

Nouveau

Akıllı şehir mühendisi · su ve atık su

Sujets
5
Réponses
36
Points
0
Nouveau10 points pour Membre

Toutes mes réponses sur les forums

15 sujets de 1 à 15 (sur un total de 36)

setInsecure ile bağlanır belki ama sertifikayı hiç doğrulamadığın için önerilmez. Asıl sorun IP ile bağlanman. Hermetry’de SNI zorunlu, TLS el sıkışmasında host adını göndermen gerekiyor, IP ile gidince el sıkışma kuruluyor ve kopuyor, PubSubClient de bunu -2 (bağlantı kurulamadı) olarak görüyor. Saha cihazlarında bunu ben de yaşadım.

Düzeltilmiş hali:

WiFiClientSecure net;
net.setCACert(ROOT_CA_PEM);        // sunucu sertifikası genel bir CA'dan, onun kök sertifikası
PubSubClient mqtt(net);
mqtt.setServer("<Connection details'teki host>", 8883);
mqtt.setKeepAlive(60);
mqtt.setBufferSize(1024);           // varsayılan 256 bayt, büyük JSON sessizce gitmez
mqtt.connect("esp32-atolye", TOKEN, NULL);

Kullanıcı adı token, şifre boş. Bağlandıktan sonra v1/telemetry‘ye QoS 1 ile gönder. Aynı token ile iki cihaz çalıştırma, ikinci bağlantı birincisini düşürür.

Bir de saat: ESP32 TLS için tarih kontrolü yapıyor, configTime() ile NTP alıp sonra bağlan, yoksa sertifika « henüz geçerli değil » görünebilir. Bağlantı kuralları burada: MQTT.

Solution acceptée♥ 9

O zaman sebep zener. Su şebekesinde benzer basınç noktalarında aynı hatayı yaptık. 3.3V’luk BZX55’in kırılma bölgesi keskin değil, 2.5V civarından itibaren akım çekmeye başlıyor. 1k seri direnç üzerinde bu akım gerilim düşümü yapıyor, okuma tam üst uçta düşük çıkıyor. Doğrusal değil, sıcaklıkla da değişir; kalibrasyonla düzeltmek zor.

Bizim kullandığımız:

  • Seri direnç kalsın (1k-4.7k).
  • Zener yerine girişten 3.3V’a ve GND’ye Schottky çift diyot (BAT54S). Normal çalışmada sızıntısı çok düşük, ADS1115’in sınırı olan VDD + 0.3V’u aşan darbeyi beslemeye ve şaseye atıyor.
  • Saha tarafında, kablo girişinde bir TVS diyot (örneğin SMBJ serisinden düşük gerilimli bir tane) ve ADC girişinde 100nF.
  • Şöntü kartın üstünde, ADS1115’e yakın tutun.

3.3V hattının darbeyi yutabilmesi için orada da bir kondansatör olsun, yoksa diyotun bastığı akım hattı yükseltir.

Hermetry tarafında ham mA değerini de ayrı bir anahtar olarak gönderin, 3.6 mA altı gelirse kablo kopuk demektir, onun için bir alarm kuralı kurarsınız.

Solution acceptée♥ 9

Traduit de Türkçe par IA ·

Cette coupure est classique : trois topics rejetés ferment la session en une minute. Chez nous, c’était pareil le premier jour.

♥ 2

Traduit de English par IA ·

C’est assez proche de ce que nous avons : deux forages et six stations de pompage qui se ressemblent toutes. Ai-je besoin de six schémas ?

♥ 0

Traduit de Türkçe par IA ·

Si tu parles d’un standard, je ne connais pas de « standard IoT hors ligne » unique. Tout le monde utilise du MQTT local, du Modbus TCP ou du HTTP. Mais je suis sûr que la solution à ta deuxième question est une passerelle (gateway).

♥ 0

Traduit de Türkçe par IA ·

La plupart de ces prises ont un HLW8012 ou son clone BL0937, 8 pattes, et les broches que tu décris correspondent exactement. J’ai utilisé les mêmes modules à puce dans des armoires de pompes à eau de la mairie, et voici comment ça fonctionne :

  • CF (ta broche 5) : sortie d’impulsions dont la fréquence est proportionnelle à la puissance active.
  • CF1 (broche 4) : selon la broche SEL, une impulsion proportionnelle soit au courant, soit à la tension.
  • SEL (broche 6) : broche de sélection allant de la carte logique vers la puce. Sur HLW8012, SEL=1 correspond au courant, sur BL0937 c’est l’inverse, et si on les confond, les valeurs deviennent absurdes.

C’est facile à lire : relie les deux broches à une interruption et compte les impulsions sur une fenêtre de 1 seconde. Pour la puissance, en gros :

volatile uint32_t cfPulses = 0;
void IRAM_ATTR onCF() { cfPulses++; }

// setup:
attachInterrupt(digitalPinToInterrupt(PIN_CF), onCF, RISING);

// every second:
noInterrupts(); uint32_t n = cfPulses; cfPulses = 0; interrupts();
float power_w = n * powerFactor;     // kalibrasyonla bulunacak
energy_wh += power_w / 3600.0;

Trouve la valeur de powerFactor avec une charge connue : branche un radiateur de 100 W ou une ampoule à incandescence, puis divise les impulsions comptées par la puissance réelle. Pour la tension, fais la même chose en changeant SEL et en utilisant CF1.
Sécurité : lorsque tu charges le code, débranche la prise du secteur, programme l’ESP32-C3 via USB, puis débranche-la et rebranche-la. Brancher au secteur pendant que l’USB est connecté revient à relier ton ordinateur au secteur. Fais la calibration en suivant les logs via le Wi-Fi.
Envoie à Hermetry un compteur energy_wh qui augmente, avec power_w ; récupérer la consommation quotidienne à partir du compteur ensuite est beaucoup plus propre.

Solution acceptée♥ 6

Traduit de Türkçe par IA ·

Esra, merci beaucoup, c’est exactement ça. J’ai importé les 60 appareils via CSV, et nous avons chargé les tokens du fichier téléchargé dans les boîtiers selon le numéro de série. Hier, nous avons volontairement retiré puis remis le fusible, et tous se sont connectés proprement en 15 secondes, sans aucun takeover dans le Log.Nous avons aussi changé l’AP : pour passer à 200, nous le répartissons sur trois AP de plafond.

♥ 0

Traduit de Türkçe par IA ·

Avec une charge moteur équilibrée, le résultat est à peu près juste, mais quand le compresseur passe de la marche à vide à la marche en charge, le cosφ change, et courant × tension ne donne de toute façon pas la vraie puissance. Pour une estimation grossière, c’est correct.

♥ 0
15 sujets de 1 à 15 (sur un total de 36)