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

ESP32’yi kendi Flask sunucumdan Hermetry’ye taşıdım, MQTT bağlantısı rc=-2 veriyor

ESP32’yi kendi Flask sunucumdan Hermetry’ye taşıdım, MQTT bağlantısı rc=-2 veriyor

Résolu 2 3

Selamlar. Bir süredir ESP32’deki sensör verilerini (sıcaklık, akım) kendi yazdığım Flask-SocketIO sunucusuna gönderiyordum, canlı bir sayfada izliyordum. Sunucuyla uğraşmaktan bıktım, veriyi Hermetry’ye göndermeye karar verdim. SocketIO istemcisini söktüm, yerine PubSubClient + WiFiClientSecure koydum.

Bağlanmıyor:

WiFi OK, IP 192.168.1.44
MQTT connecting... failed, rc=-2
MQTT connecting... failed, rc=-2

Kod kabaca şöyle:

WiFiClientSecure net;
PubSubClient mqtt(net);
mqtt.setServer(IPAddress(203,0,113,25), 8883);
mqtt.connect("esp32-atolye", TOKEN, "");

IP adresini host adını ping’leyerek buldum, DNS’e takılmasın diye. Token cihazın sayfasından kopyalandı. Neyi kaçırıyorum?

♥ 1

Ben derste net.setInsecure() ile geçmiştik bunu, onu dene belki?

♥ 1

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
3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager