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

Aoife Lynch

lynchlab

@aoife_l22 · Nisan 2025 tarihinde katıldı

Yeni üye

Engineering student · university

Konular
15
Yanıtlar
79
Puan
0
Yeni üye10 için Üye puan

Oluşturulan forum yanıtları

15 yazı görüntüleniyor – 61 ile 75 arası (toplam 79)

Yapay zekâ tarafından English dilinden çevrildi ·

0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

Sadece Wi-Fi var, hiç Bluetooth girişi yok.

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

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

Liam’s half right. avr-libc’s printf family is built without float support by default to save flash, so %f prints ?. You can link the float version (-Wl,-u,vfprintf -lprintf_flt) but it costs about 1.5 KB of flash and the Arduino IDE makes the flags annoying.

What I do on Nanos is convert the floats with dtostrf first, then format strings:

char ts[8], hs[8], buf[96];
dtostrf(t, 0, 2, ts);      // width 0 = no padding
dtostrf(h, 0, 1, hs);
snprintf(buf, sizeof(buf), "{"temp_c":%s,"rh":%s,"seq":%lu}", ts, hs, seq);

Or send integers: temp_c10 as 2154 and scale it back later. Same quota, zero float formatting. Also check for NaN when the SHT31 read fails: dtostrf prints nan, which isn’t valid JSON, and the whole message gets stored as raw text. Skip the key when the read fails.

Timestamps in UTC or it didn't happen.
Kabul edilen çözüm♥ 5

Both fixed. The society bought the isolated carrier for the pH circuit and the 0.3 jumps are gone. The JSON rule with the any group saved fine, and the pump ran three times today without a single alarm. Then I dropped the probe in pH 4 buffer to test and it opened after five minutes, as expected.

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

Yapay zekâ tarafından English dilinden çevrildi ·

Gerçekten faydalı, teşekkürler. Yönetici „kartta public CA, sırlar şifreli NVS’te“ yaklaşımını kabul etti. X.509 kısmı bana bir hafta kazandırdı; openssl ile bir CA üretmeye zaten başlamıştım. Garip ama geçen hafta ikinci bir kart için kartı klonlamıştım ve veriler eksik çıktı; tam da ele geçirme (takeover) meselesiydi.

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

Yapay zekâ tarafından English dilinden çevrildi ·

Son sınıf bitirme projemizde hemen hemen bunun aynısını yaptık (2G üzerinden akıllı sayaçlar, kendi trafiğimizi dinledik). Laura’nın dediklerinin hepsi doğru. Sizin yerinizde ne yapardım, sırasıyla anlatayım.Birincisi, profili ayırın. 38 TLS cihazı için yeni bir profil oluşturun ve varsayılan ayarda bırakın, yani yalnızca 8883 üzerinden TLS. Cihazları bu profile taşıyın. Bu profildeki cihazlar 1883 üzerinden hiç giriş yapamaz, dolayısıyla biri onlara dokunsa bile hiçbir şey açık metin olarak gitmez.İkincisi, 12 eski cihaz için düz MQTT’ye izin veren ayrı bir profil oluşturun ve bunu sıkı şekilde kilitleyin:

  • İzin verilen ağlar: Yalnızca operatörünüzün trafiğinin geldiği adres aralığını girin. Mümkünse operatörden özel bir APN isteyin; böylece aralık onların özel aralığı olur. Bunun dışından gelenler reddedilir (CONNACK 5).
  • TLS olmadan izin verilen komutlar: Boş bırakın ya da en fazla sys.info ekleyin. Asla sys.reboot eklemeyin. Diğer komutlar yalnızca bir TLS oturumu bekler; bu cihazların hiçbir zaman sahip olmayacağı bir oturum olduğundan bu komutlar zaman aşımına uğrar.
  • İzin verilen kimlik doğrulama: Yalnızca erişim belirteci kullanıyorlarsa onu seçin.

Üçüncüsü, test uzmanının ele geçirdiği kabinin belirtecini yenileyin; dürüst olmak gerekirse 12’sinin de belirtecini yenileyin, çünkü iki yıldır internet üzerinden açık metin olarak geçiyorlar.Yazılım güncellemeleri ve cihaz ayarları zaten hiçbir zaman açık metin gönderilmez, dolayısıyla bunları sızdırmıyorsunuz. Yukarıdakilerin tamamı bu sayfada: Device transport security. BT ekibine verilecek dürüst yanıt şu: “38’i uçtan uca şifreli, 12’si şifreli değil ve değiştirilene kadar izole edildi”.

Timestamps in UTC or it didn't happen.
Kabul edilen çözüm♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Güç tasarrufu açıktı. Yapılandırma dosyasını ekledim, NetworkManager’ı yeniden başlattım ve o zamandan beri 3 gündür kesintisiz çevrimiçi. O zamandan beri Log sekmesinde keepalive_timeout yok. SSH bağlantısı da anında gerçekleşiyor; bunun bağlantılı olduğunu fark etmemiştim bile. Teşekkürler Ciaran!

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

Yapay zekâ tarafından English dilinden çevrildi ·

Dün çalıştırdım, laboratuvardaki herkes bayıldı. IT’ye hiç sormak zorunda kalmadım, bu ayrı bir kazançtı. Tek sorun: önce status=active kullandım, seen-set boş olduğu için yeniden başlatmadan sonra onaylanmış alarmları tekrar tekrar okumaya devam etti. Sizin yazdığınız gibi OPEN’a geçtim. Ayrıca piper “frz” olarak okuduğu için cihaz adlarını “frz-03” yerine “freezer three” olarak değiştirmem gerekti.

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

Yapay zekâ tarafından English dilinden çevrildi ·

Başsız, hiç ekranı yok. Yine de ihtimale karşı ekran kararmasını (blanking) kapattım, değişiklik olmadı.

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

Yapay zekâ tarafından English dilinden çevrildi ·

Geçen yıl bir laboratuvar için Edison breakout kartıyla uğraştım. Bu kartta /dev/ttyMFD1 dosyasını açmak yetmiyor: 0 ve 1 numaralı pinler bir pin çoklayıcı ve seviye dönüştürücülerden geçiyor; bunlar ayarlanana kadar UART başlığa bağlı değildir, pinler yalnızca düz GPIO’dur. Bu yüzden port hatasız açılıyor ama hiçbir şey okunmuyor.Kolay yol, UART’ı kart numarasıyla açtığınızda mux’ı sizin yerinize ayarlayan mraa kütüphanesini kullanmaktır:

import mraa
u = mraa.Uart(0)            # pins 0/1 on the Arduino breakout, sets the mux
u.setBaudRate(115200)
u.setMode(8, mraa.UART_PARITY_NONE, 1)
while True:
    if u.dataAvailable(1000):
        line = u.readStr(64).strip()     # "caps_ok=1823;caps_rej=12"
        vals = dict(kv.split("=") for kv in line.split(";"))
        # add to the payload the Edison already sends:
        payload["caps_ok"] = int(vals["caps_ok"])
        payload["caps_rej"] = int(vals["caps_rej"])

Ayrıca kablolamanın çapraz olduğunu kontrol edin: OpenMV TX, Edison’un RX (pin 0) ucuna; OpenMV RX, Edison’un TX (pin 1) ucuna bağlanmalı. Breakout kartında pin 0 RX’tir; yazdığınız şey kablolamayla birebir aynıysa bunları birbiriyle değiştirin.

Timestamps in UTC or it didn't happen.
Kabul edilen çözüm♥ 9
15 yazı görüntüleniyor – 61 ile 75 arası (toplam 79)