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

Parsel bahçesinde ev WiFi'si ile telefon hotspot'u arasında geçiş yapan Pi ağ geçidi

Parsel bahçesinde ev WiFi'si ile telefon hotspot'u arasında geçiş yapan Pi ağ geçidi

Çözüldü 5 5

Yapay zekâ tarafından English dilinden çevrildi ·

Merhaba herkese. Cumartesileri topluluk bahçemizde toprak nemini ve birkaç DS18B20 sensörünü okuyan bir Pi 4’üm var; haftanın geri kalanında ise evde tezgâhta sera sensörlerini okuyor. Verileri paho-mqtt ile Hermetry’ye gönderiyor.Sorun: Pi yalnızca ev WiFi’me bağlanabiliyor. Bahçede telefonumdaki hotspot’u açıyorum ama Pi bağlanamıyor, bu yüzden o gün Hermetry’de hiçbir veriyle eve dönüyorum. Bir rehberi takip ettim ve her iki ağı da priority= ile /etc/wpa_supplicant/wpa_supplicant.conf dosyasına ekledim, ancak dosya yok sayılıyor gibi görünüyor.

$ cat /etc/os-release | head -1
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
$ nmcli -t -f NAME,TYPE con show
preconfigured:802-11-wireless
lo:loopback

İkinci konu da ilgili: Pi bir süre çevrimdışı kalırsa okumaları saklayıp daha sonra gönderebilir miyim? Şu anda yayınlama başarısız olduğunda betik okumaları atıyor.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Bookworm artık NetworkManager kullanıyor, bu yüzden wpa_supplicant.conf dosyası artık okunmuyor. Yapılacak yol nmcli.

Measure twice, poll once.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Kevin haklı, ve “preconfigured” bağlantısı, imager’ın ev WiFi’nizden oluşturduğu bağlantıdır. Hotspot’u ikinci bir NetworkManager bağlantısı olarak ekleyin ve ikisine de öncelik verin. Ben tam olarak bu yapıyla iki fabrika arasında bir Pi taşıyorum.

sudo nmcli con add type wifi ifname wlan0 con-name allotment 
     ssid "Aisha-phone" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "********"
sudo nmcli con modify allotment connection.autoconnect yes connection.autoconnect-priority 10
sudo nmcli con modify preconfigured connection.autoconnect-priority 20
nmcli -f NAME,AUTOCONNECT,AUTOCONNECT-PRIORITY con show

İkisi de menzildeyse yüksek öncelikli olan kazanır, yani önce ev. Pi’yi açmadan önce hotspot’u açın; Pi önce açılırsa bir dakika bekleyin, NetworkManager yeniden tarar.Tamponlama için okumaları küçük bir SQLite tablosunda veya hatta bir JSONL dosyasında tutun ve bağlantı geri geldiğinde bunları kendi zaman damgalarıyla, toplu halde gönderin:

[{"ts": 1762668000000, "values": {"soil.bed3": 31.5, "air.temp": 12.1}},
 {"ts": 1762668300000, "values": {"soil.bed3": 31.2, "air.temp": 12.6}}]

ts, UTC cinsinden milisaniyedir. Bir satırı yalnızca yayın onaylandıktan sonra silin (QoS 1, paho ile wait_for_publish() kullanarak PUBACK’i bekleyin).Pi ile ilgili bir tuzak: pilli bir saat yoktur. Allotment’ta açılır ve bir süre ağ alamazsa, NTP senkronize olana kadar saat yanlıştır; bu saatle damgalanan okumalar yanlış zamana düşer ya da atılır (10 dakikadan fazla ileri tarihliyse reddedilir). Okumaları yalnızca timedatectl show -p NTPSynchronized evet dediğinde damgalayın; aksi halde ts olmadan gönderin ve Hermetry’nin varış zamanını kullanmasına izin verin.

Ground loops are my cardio.
Kabul edilen çözüm♥ 3

Yapay zekâ tarafından English dilinden çevrildi ·

Tam da bu sebeple ucuz bir RTC HAT aldım, DS3231, birkaç sterline. Böylece saat internet olmasa bile doğru oluyor.

Ask me about 4–20 mA.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Ayrıca toplu gönderimleri makul tutun; varsayılan değer cihaz başına saniyede 10 mesajdır. Tek seferde büyük bir birikim gönderilirse mesajlar düşürülür.

QoS 1 and a lot of patience.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Çözüldü. tsmith’in yazdığı gibi hotspot’u nmcli ile ekledim, öncelikler 20/10. Cumartesi günü açılıştan yaklaşık 40 sn sonra telefona bağlandı. Telefonun uzak bölmelerde sinyali yokken okumalar bir JSONL dosyasına yazıldı, sinyal geri gelince 50’lik gruplar halinde yukarı gönderildi. İlk hafta ilk birkaç okumada saatler bir saat kaymıştı, tam olarak NTP meselesi; bu yüzden Michael’ın yaptığı gibi bir DS3231 sipariş ettim. O gelene kadar script, zaman damgası basmadan önce NTPSynchronized değerini kontrol ediyor.

♥ 0
6 yazı görüntüleniyor – 1 ile 6 arası (toplam 6)
  • 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ş