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

GPS, GSM modülü ve toz sensörü: üç seri cihazı tek Raspberry Pi’ye nasıl bağlarım?

GPS, GSM modülü ve toz sensörü: üç seri cihazı tek Raspberry Pi’ye nasıl bağlarım?

Résolu 6 5

Merhaba, yeniyim, umarım doğru yere yazıyorum.

Balkona hava kalitesi istasyonu yapıyorum. Elimde Raspberry Pi 4, bir NEO-6M GPS (aslında konum sabit ama saat için istedim), bir SIM7600 GSM modülü (evde Wi-Fi bazen gidiyor, yedek olsun diye) ve bir PMS5003 toz sensörü var. Üçü de seri port (UART) ile konuşuyor. Pi’de GPIO14/15’te tek bir seri port var gibi görünüyor, onu da GPS’e verdim, çalışıyor.

Diğer ikisini nereye takacağım? İnternette biri « USB-TTL dönüştürücü al », biri « Pi 4’te gizli UART’lar var » diyor. Bir de USB’ye taktığımda bazen /dev/ttyUSB0 bazen ttyUSB1 oluyor, script yanlış porttan okuyup saçmalıyor. Verileri sonra Hermetry’ye gönderiyorum, o kısım tamam.

♥ 0

SIM7600’ün zaten USB’si var, onu UART’tan değil USB’den bağlayın. Bir sorun eksilir.

Sahadan selamlar.
♥ 0

Haklısınız, kartın üstünde micro USB var, hiç aklıma gelmedi. Onu USB’ye taktım, /dev/ttyUSB2 diye bir şey çıktı.

♥ 0

GPS’i de USB’li alsaydınız hepsi USB olurdu, ama sorun değil.

♥ 0

Ben bizim tesiste ortam izleme için aynı karışıklığı yaşadım, iki şeyi beraber yapınca düzeldi.

Pi 4’te gerçekten ek UART’lar var, overlay ile açılıyor. PMS5003’ü onlardan birine verin. /boot/firmware/config.txt sonuna:

enable_uart=1
dtoverlay=uart3      # TX GPIO4, RX GPIO5 -> /dev/ttyAMA3 (Bookworm'da numara değişebilir)

Yeniden başlatınca ls -l /dev/ttyAMA* ile bakın. PMS5003 5 V ile beslenir ama veri hattı 3,3 V, doğrudan Pi’ye bağlanabilir. Baud 9600.

USB numaralarının değişmesi için udev kuralı yazın, script hep aynı adı görsün. Önce kimliği bulun:

udevadm info -a -n /dev/ttyUSB2 | grep -E "idVendor|idProduct|bInterfaceNumber" | head

Sonra /etc/udev/rules.d/99-seri.rules:

SUBSYSTEM=="tty", ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="9001", ENV{ID_USB_INTERFACE_NUM}=="02", SYMLINK+="modem_at"

Script’te artık /dev/modem_at kullanırsınız. SIM7600 birkaç arayüz açtığı için interface numarası önemli, AT komutları genelde 02’de ama kendi kartınızda kontrol edin.

Modbus sadece register'dır, ta ki olmayana kadar.
Solution acceptée♥ 1

Ek olarak: GPS saati için gpsd + chrony kurarsanız Pi’nin saatini de düzeltir. Hermetry’ye ts ile gönderiyorsanız saatin doğru olması şart, senkronize olmamış saatle zaman damgası uydurmak yerine ts’siz gönderin.

♥ 2

Sonunda üçü birden çalışıyor! uart3 bende /dev/ttyAMA3 olarak geldi, PMS5003 oradan okunuyor. Modem için udev kuralı yaptım, interface 02 değil 03 çıktı bende, onu düzeltince oturdu. Chrony’yi de kurdum. Çok teşekkür ederim 🙏

♥ 2
7 sujets de 1 à 7 (sur un total de 7)
  • 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