Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Ekran yok, tuş takımı yok: 12 ESP32-C3 laboratuvar düğümüne Wi-Fi ve token yüklemek

Ekran yok, tuş takımı yok: 12 ESP32-C3 laboratuvar düğümüne Wi-Fi ve token yüklemek

Çözüldü 9 7

Yapay zekâ tarafından English dilinden çevrildi ·

Bu bir üniversite projesi için, yanlış alt forumda olabilirim, kusura bakmayın. Kampüsteki farklı laboratuvarlara yerleştirilecek ve MQTT üzerinden Hermetry organizasyonumuza veri gönderecek 12 küçük hava kalitesi düğümü yapıyoruz (ESP32-C3 SuperMini + SCD41 + bir PMS5003). Ekranları yok, tek düğmeleri BOOT.Şu anda SSID, şifre ve cihaz erişim token’ı sketch içinde #define olarak tanımlı, yani her düğüm için ayrı derleme yapılıyor. 2 prototip için sorun değildi ama 12 için uygun değil; düğümleri taşıyacak laboratuvar teknisyenleri de IDE çalıştıramıyor.İstediğim şey: hepsine aynı firmware’i yüklemek, sonra sahada biri telefonunu düğüme bağlayıp laboratuvarın Wi-Fi bilgisini girsin ve düğüm bir şekilde kendi Hermetry kimlik bilgisini alsın. WiFiManager’ı buldum ve captive portal kısmı masa başında çalışıyor. Token kısmı konusunda hiçbir fikrim yok. Bunu yapmanın yaygın bir yolu var mı, yoksa herkes değerleri kodun içine mi gömüyor?

Timestamps in UTC or it didn't happen.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Belki aptalca bir soru ama kampüs aynıysa Wi-Fi bilgisini neden koda bir kez yazmıyoruz?

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Maalesef her yerde aynı ağ yok. İki bina ayrı bir IoT SSID’sinde, bir laboratuvarın kendi yönlendiricisi var ve şifreler her dönem değiştiriliyor. Ayrıca token’ların zaten her düğüm için farklı olması gerekiyor.

Timestamps in UTC or it didn't happen.
♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

WPS mi? BOOT tuşunu 3 saniye basılı tutun, router üzerindeki düğmeye basın, tamam. Yıllar önce birkaç depo tarayıcısında bunu yapmıştım.

♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Gördüğüm hemen hemen her yönetilen ağda WPS kapalı, bir üniversitede buna güvenmezdim. Arduino core mu kullanıyorsunuz yoksa ESP-IDF mi? IDF, SoftAP veya BLE üzerinden bir provisioning bileşenine sahip ve bu, captive portal’dan daha kullanışlı.

♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

PlatformIO’da Arduino core 2.0.14. Wi-Fi kısmı için WiFiManager kullanmaya devam etmekten memnuniyet duyarım; takıldığım nokta ise Hermetry token’ı. Mümkünse konsolu açıp 12 cihaz oluşturmak ve 12 token’ı 12 portala kopyalamak istemiyorum.

Timestamps in UTC or it didn't happen.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Firmware içinde cihaz başına token’a hiç ihtiyacınız yok. Sorunu iki parçaya ayırın.Wi-Fi: WiFiManager’ı koruyun. Dostça bir cihaz adı istiyorsanız portala bir özel alan ekleyin; aksi halde MAC adresini kullanın.Token: Düğümün kendi token’ını talep etmesine izin verin. Cihaz profilinde Provisioning sekmesini açın, stratejiyi Allow creating new devices olarak ayarlayın, kaydedin, ardından Create key seçeneğine tıklayıp secret değerini kopyalayın (yalnızca bir kez gösterilir). Bu anahtar ve secret, 12 derlemenin hepsinde aynıdır. İlk açılışta düğüm, kullanıcı adı provision ve boş parola ile bağlanır, v1/provision/res konusuna abone olur ve isteğini yayınlar. Yanıt kendi erişim token’ını taşır; bunu NVS’e kaydedersiniz ve bundan sonra normal şekilde giriş yapar.

// first boot only, after Wi-Fi is up
mqtt.setServer(host, 8883);          // WiFiClientSecure, TLS
mqtt.connect(clientId, "provision", "");
mqtt.subscribe("v1/provision/res", 1);
String req = String("{"deviceName":"aq-") + mac6 +
  "","provisionDeviceKey":"pk_xxx","provisionDeviceSecret":"ps_xxx"}";
mqtt.publish("v1/provision/req", req.c_str());
// in the callback: parse credentialsValue when status == "SUCCESS",
// prefs.putString("tok", value); then reconnect with the token as username

Bir eczane tesisinde iki sorunla karşılaştık. Bu yolla oluşturulan yeni cihazlar karantinaya düşer; bağlanırlar ama bir yönetici etkinleştirene kadar verileri atılır, bu yüzden kuruluşun sahibine onları aramasını söyleyin. Ayrıca ad benzersiz olmalıdır; aynı adla ikinci bir istek device_exists hatası alır, çünkü sistem aynı kimlik bilgisini iki kez vermez. Bu nedenle NVS’i gelişigüzel silmeyin. Ayrıntılar Adding and claiming devices sayfasında.

Kabul edilen çözüm♥ 5

Yapay zekâ tarafından English dilinden çevrildi ·

Bu işe yaradı, 12’si de çalışıyor. Hemen device_exists hatasıyla karşılaştım çünkü hata ayıklama sırasında 3 numaralı düğümün flash belleğini silmiştim; düğüm zaten aq-3c84a1 olarak kaydolmuştu. Konsoldan o cihazı sildim ve yeniden provizyon edildi, sorunsuz çalıştı. Bu sabah hepsini karantinadan etkinleştirdim. Ayrıca tırnak işaretlerini doğru şekilde kaçışlamam gerekti; ilk sürümüm bozuk JSON gönderiyordu ve hiçbir yanıt alamıyordum.

Timestamps in UTC or it didn't happen.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Biz de hat sensörlerimizde aynı şeyi yapıyoruz. Sahadan bir ipucu: kurulum AP adını kasanın üzerindeki bir etikete yazdırın. Altı ay sonra hangi düğümün “ESP-3C84A1” olduğunu kimse hatırlamıyor.

♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Etikete +1. Ayrıca bu laboratuvarlardan herhangi birinde kullanıcı başına oturum açma gerektiren kurumsal Wi-Fi varsa, basit bir captive portal bunu yapamaz; firmware içinde kimlik/kullanıcı adı alanlarına ve WPA2-Enterprise desteğine ihtiyacınız olur. Bunun yerine BT departmanından bir PSK IoT ağı isteyin, çok daha az zahmetli olur.

♥ 0
10 yazı görüntüleniyor – 1 ile 10 arası (toplam 10)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Sohbete katılın

Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

Paylaş