Isi kandungan:

[Docker Pi Series] Cara Menggunakan Modul IoT Node (A) pada Raspberry Pi: 18 Langkah
[Docker Pi Series] Cara Menggunakan Modul IoT Node (A) pada Raspberry Pi: 18 Langkah

Video: [Docker Pi Series] Cara Menggunakan Modul IoT Node (A) pada Raspberry Pi: 18 Langkah

Video: [Docker Pi Series] Cara Menggunakan Modul IoT Node (A) pada Raspberry Pi: 18 Langkah
Video: Menjalankan aplikasi nodejs di docker container dengan perangkat Raspberry Pi 2024, Julai
Anonim
[Docker Pi Series] Cara Menggunakan Modul IoT Node (A) pada Raspberry Pi
[Docker Pi Series] Cara Menggunakan Modul IoT Node (A) pada Raspberry Pi

Apakah modul IoT Node (A)?

IoT Node (A) adalah salah satu modul siri Docker Pi.

Node IOT (A) = GPS / BDS + GSM + Lora.

I2C secara langsung mengawal Lora, menghantar dan menerima data, mengawal modul GSM / GPS / BDS melalui SC16IS752, papan utama hanya memerlukan sokongan I2C.

Sokong Raspberry Pi dan produk serupa yang lain.

Bekalan

1x Raspberry Pi 2B / 3B / 3B + / 4B / 3A + / Zero / Zero W

Produk siri 1x Docker Pi: modul IoT Node (A)

Kad TF kelas 1x 16GB 10GB

Bekalan kuasa 1x 5V / 2.5A (5V @ 3A untuk Pi 4B)

Langkah 1: Ciri-ciri

Keistimewaan
Keistimewaan
Keistimewaan
Keistimewaan
Keistimewaan
Keistimewaan
  • Siri Docker Pi
  • Boleh diprogramkan
  • Kawal secara langsung (tanpa pengaturcaraan)
  • Panjangkan Pin GPIO
  • Sokongan GPS / BDS
  • Sokongan GSM
  • Sokongan Lora
  • Boleh Susun dengan papan Tumpukan yang lain
  • Tidak bergantung pada perkakasan papan utama (memerlukan sokongan I2C)

Langkah 2: Langkah 1: Ketahui Mengenai Papan IoT (A)

Langkah 1: Ketahui Mengenai Papan IoT (A)
Langkah 1: Ketahui Mengenai Papan IoT (A)
Langkah 1: Ketahui Mengenai Papan IoT (A)
Langkah 1: Ketahui Mengenai Papan IoT (A)
Langkah 1: Ketahui Mengenai Papan IoT (A)
Langkah 1: Ketahui Mengenai Papan IoT (A)

IoT Node (A) adalah salah satu modul siri Docker Pi.

Node IOT (A) = GPS / BDS + GSM + Lora.

I2C secara langsung mengawal Lora, menghantar dan menerima data, mengawal modul GSM / GPS / BDS melalui SC16IS752, papan utama hanya memerlukan sokongan I2C. Sokong Raspberry Pi dan produk serupa lainnya.

Oleh itu, anda boleh membuat alat komunikasi jarak jauh dengan menggunakan dua daripadanya.

dan juga anda dapat mencari lokasi peranti anda dengan menggunakan modul GPS di atas kapal.

Masukkan kad SIM, Ia akan menjadi stesen pemancar melalui pesanan SMS.

Langkah 3: Langkah 2: Cara Menyusunnya

Langkah 2: Cara Menyusunnya
Langkah 2: Cara Menyusunnya
Langkah 2: Cara Menyusunnya
Langkah 2: Cara Menyusunnya

Sangat mudah untuk memasangnya kerana reka bentuk "HAT", anda hanya meletakkannya pada pi raspberry anda dan menyambungkannya melalui pin GPIO, seperti "topi" pada raspberry pi, supaya anda tidak perlu menambah jisim wayar.

Langkah 4: Langkah 3: Sambungkan Antena

Langkah 3: Sambungkan Antena
Langkah 3: Sambungkan Antena
Langkah 3: Sambungkan Antena
Langkah 3: Sambungkan Antena
Langkah 3: Sambungkan Antena
Langkah 3: Sambungkan Antena

Terdapat 3 keping antena untuk modul IoT (A) ini, salah satunya adalah untuk modul loar, ia adalah antena jenis SMA, dan salah satunya bagus untuk GPS anda, ini adalah antena kotak persegi yang mempunyai port IPX. dan yang terakhir adalah untuk modul SIM (A9G), Ini adalah antena kecil yang mempunyai port IPX. sambungkan antena dan pasangkan topi ke pi raspberry anda.

Cara memasangMount papan Iot Node (A) ke Raspberry Pi

Hookup GPS antana dan Lora antana ke port IPX.

  • E1: GPS-ANTANA-IPX
  • E3: LoRa-ANTANA-IPX

Skru antana GPRS pada port SMA.

Langkah 5: Langkah 4: Persekitaran OS dan Konfigurasi Perisian

Dalam langkah ini, anda harus melakukan perkara-perkara berikut:

1. Muat turun fail gambar terkini dari: www.raspberrypi.org/downloads

2. Buka zip.

3. Flash kad TF anda dengan gambar terkini melalui alat etcher

4. Ubah fail /boot/config.txt dan tambahkan perenggan ini.

dtoverlay = sc16is752-i2c

5. Mengganti fail /boot/overlay/sc16is752-i2c.dtbo dengan fail ini:

wiki.52pi.com/index.php/File:Sc16is752-i2c…

PS: jangan lupa unzipnya dan letakkan di folder / boot / overlay / anda dan ganti yang lama.

6. Nyalakan semula Raspberry Pi anda.

Langkah 6: Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)

Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)
Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)
Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)
Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)
Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)
Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)
Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)
Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)

Jalankan sudo raspi-config dan ikuti arahan untuk memasang sokongan i2c untuk teras ARM dan kernel linux Pergi ke Pilihan Antaramuka

Langkah 7: Langkah 6: Ketahui Mengenai Maklumat Daftar

Bahagian GPRS

Penggunaan kuasa rendah, arus tidur siap sedia <1mA2.

Sokong empat jalur frekuensi GSM / GPRS, termasuk 850, 900, 1800, 1900MHZ

Kelas GPRS 10

Sokong perkhidmatan data GPRS, kadar data maksimum, muat turun 85.6Kbps, muat naik 42.8Kbps

Sokong perintah GSM07.07, 07.05 AT standard, dan akses port bersiri melalui penukaran antara muka I2C

Perintah AT menyokong port arahan AT dan TCP / IP standard

Bahagian GPS Menyokong kedudukan bersama BDS / GPS

Sokong A-GPS, A-BDS

Menyokong kad SIM standard

Bahagian LORA Jarak penghantaran: 500 Meter (Parameter RF: 0x50 @ China City)

Sokong kaedah modulasi FSK, GFSK, MSK, GMSK, LoRaTM dan OOK

Kepekaan penerima yang sangat tinggi serendah -141 dBm

Menyokong pengesanan mukadimah

Mesin paket dengan CRC, sehingga 256 bait

Penunjuk transceiver LORA

Mudah TX / RX oleh Docker Pi

Langkah 8:

Modul A9G

Modul A9G menawarkan dua port bersiri.

Gunakan jambatan I2C UART untuk komunikasi.

Nama Modul Port Bersiri

  • / dev / ttySC0 GSM
  • / dev / ttySC1 GPS / BDS

Daftar Peta

  • Nilai Fungsi Alamat Alamat
  • 0x01 LORA_TX1 Lora TX Buffer 1 - Data Pengguna
  • 0x02 LORA_TX2 Lora TX Buffer 2 - Data Pengguna
  • 0x03 LORA_TX3 Lora TX Buffer 3 - Data Pengguna
  • 0x04 LORA_TX4 Lora TX Buffer 4 - Data Pengguna
  • 0x05 LORA_TX5 Lora TX Buffer 5 - Data Pengguna
  • 0x06 LORA_TX6 Lora TX Buffer 6 - Data Pengguna
  • 0x07 LORA_TX7 Lora TX Buffer 7 - Data Pengguna
  • 0x08 LORA_TX8 Lora TX Buffer 8 - Data Pengguna
  • 0x09 LORA_TX9 Lora TX Buffer 9 - Data Pengguna
  • 0x0a LORA_TX10 Lora TX Buffer 10 - Data Pengguna
  • 0x0b LORA_TX11 Lora TX Buffer 11 - Data Pengguna
  • 0x0c LORA_TX12 Lora TX Buffer 12 - Data Pengguna
  • 0x0d LORA_TX13 Lora TX Buffer 13 - Data Pengguna
  • 0x0e LORA_TX14 Lora TX Buffer 14 - Data Pengguna
  • 0x0f LORA_TX15 Lora TX Buffer 15 - Data Pengguna
  • 0x10 LORA_TX16 Lora TX Buffer 16 - Data Pengguna
  • 0x11 LORA_RX1 Lora RX Buffer 1 - Data Pengguna
  • 0x12 LORA_RX2 Lora RX Buffer 2 - Data Pengguna
  • 0x13 LORA_RX3 Lora RX Buffer 3 - Data Pengguna
  • 0x14 LORA_RX4 Lora RX Buffer 4 - Data Pengguna
  • 0x15 LORA_RX5 Lora RX Buffer 5 - Data Pengguna
  • 0x16 LORA_RX6 Lora RX Buffer 6 - Data Pengguna
  • 0x17 LORA_RX7 Lora RX Buffer 7 - Data Pengguna
  • 0x18 LORA_RX8 Lora RX Buffer 8 - Data Pengguna
  • 0x19 LORA_RX9 Lora RX Buffer 9 - Data Pengguna
  • 0x1a LORA_RX10 Lora RX Buffer 10 - Data Pengguna
  • 0x1b LORA_RX11 Lora RX Buffer 11 - Data Pengguna
  • 0x1c LORA_RX12 Lora RX Buffer 12 - Data Pengguna
  • 0x1d LORA_RX13 Lora RX Buffer 13 - Data Pengguna
  • 0x1e LORA_RX14 Lora RX Buffer 14 - Data Pengguna
  • 0x1f LORA_RX15 Lora RX Buffer 15 - Data Pengguna
  • 0x20 LORA_RX16 Lora RX Buffer 16 - Data Pengguna
  • 0x01 - 0x10 Tulis Sahaja.
  • 0x11 - 0x20 Hanya Baca.

Langkah 9: Arahan:

Arahan
Arahan

L_SET (Tulis Sahaja)

  • Tulis 1 untuk menetapkan parameter dari 0x22 hingga LORA Module.
  • Tulis 0 bukan kesan

G_RESET (Tulis sahaja)

  • Tulis 1 untuk menetapkan semula Modul A9G
  • Tulis 0 bukan kesan

L_RXNE (Baca & Tulis)

  • Tulis 1 sebab ralat
  • Tulis 0 untuk membersihkan
  • Baca 1 bermaksud data telah diterima, sila dapatkan data dari daftar 0x11 - 0x20.
  • Baca 0 bermaksud data tidak tersedia sekarang.

L_SET (Tulis Sahaja)

  • Tulis 1 untuk menghantar data, sila isi data dalam daftar 0x01 - 0x10 sebelum menghantar.
  • Tulis 0 bukan kesan

Langkah 10: Cara Menggunakan Modul GPS Dengan Gpsd (Raspberry Pi)

Cara Menggunakan Modul GPS Dengan Gpsd (Raspberry Pi)
Cara Menggunakan Modul GPS Dengan Gpsd (Raspberry Pi)
Cara Menggunakan Modul GPS Dengan Gpsd (Raspberry Pi)
Cara Menggunakan Modul GPS Dengan Gpsd (Raspberry Pi)
Cara Menggunakan Modul GPS Dengan Gpsd (Raspberry Pi)
Cara Menggunakan Modul GPS Dengan Gpsd (Raspberry Pi)

Cara menggunakan Modul GPS dengan gpsd (Raspberry Pi)

Pertama, ganti /boot/overlays/sc16is752-i2c.dtbo dan pastikan I2C berfungsi dengan baik.

  • Gantikan sc16is752-i2c.dtbo
  • Mengkonfigurasi I2C
  • Pasang alat gpsd.

Buka terminal dan ketik arahan ini:

sudo apt pasang gpsd gpsd-klien

Ubah suai / etc / default / gpsd file dan tambahkan parameter berikut:

  • PERANTI = "/ dev / ttySC1"
  • GPSD_OPTIONS = "- F /var/run/gpsd.sock"

Masukkan arahan i2cset -y 1 0x16 0x23 0x40 untuk menetapkan semula modul GPRS.

Skrip Python Untuk GPS Terbuka:

import serialimport os masa import # Mulakan semula perkhidmatan gpsd. os.system ("sudo systemctl restart gpsd.socket") # Open port port ser = serial. Serial ('/ dev / ttySC0', 115200) i = 0 if ser.isOpen == False: ser.open () cuba: cetak ("Hidupkan GPS …") sementara Benar: ser.write (str.encode ("AT + GPS = 1 / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () respons = ser.read (size) gps = str (respons, encoding = "utf-8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") keluar () lain: i = i + 1 cetakan ("Menunggu GPS Aktifkan, Jika waktunya terlalu lama, Sila uji di luar:" + str (i)) ser.flushInput () time.sleep (1) kecuali KeyboardInterrupt: ser.flushInput () ser.tutup ()

Simpan dan laksanakan:

python3 GPS.py

Langkah 11: Cara Menggunakan Modul GPS Dengan C (Raspberry Pi)

Pasang alat gpsd

sudo apt-get install libgps-dev

Buat kod sumber dan beri nama "gps.c"

#sertakan #sertakan #sertakan

#sertakan

#sertakan

int utama ()

{int rc; menstruktural tv; struct gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("kod:% d, sebab:% s / n", rc, gps_errstr (rc)); pulangkan EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);

semasa (1)

{/ * tunggu selama 2 saat untuk menerima data * / jika (gps_waiting (& gps_data, 2000000)) {/ * baca data * / jika ((rc = gps_read (& gps_data)) == -1) {printf ("ralat berlaku semasa membaca data gps. kod:% d, sebab:% s / n ", rc, gps_errstr (rc)); } lain {/ * Paparkan data dari penerima GPS. * / if ((gps_data.status == STATUS_FIX) && (gps_data.fix.mode == MODE_2D || gps_data.fix.mode == MODE_3D) &&! isnan (gps_data.fix.latitude) &&! isnan (gps_data.fix.longitude)) {/ * gettimeofday (& tv, NULL); EDIT: tv.tv_sec sebenarnya bukan cap waktu! * /

printf ("latitud:% f, longitud:% f, speed:% f, cap waktu:% lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);

// EDIT: Ganti tv.tv_sec dengan gps_data.fix.time} yang lain {printf ("data GPS tidak tersedia / n"); }}} tidur (3); } / * Apabila anda selesai… * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); pulangkan EXIT_SUCCESS; }

Langkah 12: Menyusunnya

Menyusunnya
Menyusunnya

Menyusun!

gcc gps.c -lm -lgps -o gps

Laksanakannya!

./gps

Langkah 13: Cara Menggunakan Modul GPS Dengan Python (Raspberry Pi)

Cara Menggunakan Modul GPS Dengan Python (Raspberry Pi)
Cara Menggunakan Modul GPS Dengan Python (Raspberry Pi)

Kod berikut disyorkan untuk dilaksanakan menggunakan Python 3 dan pasang pustaka gpsd-py3 dan Perbaiki GPS 2D / 3D:

import gpsd

# Sambung ke gpsd tempatan

gpsd.connect ()

# Dapatkan kedudukan gps

paket = gpsd.get_current ()

# Lihat dokumen sebaris untuk GpsResponse untuk data yang ada

cetak (packet.position ())

Langkah 14: Cara Menggunakan Modul GSM Dengan PPPd (Raspberry Pi)

Cara Menggunakan Modul GSM Dengan PPPd (Raspberry Pi)
Cara Menggunakan Modul GSM Dengan PPPd (Raspberry Pi)
Cara Menggunakan Modul GSM Dengan PPPd (Raspberry Pi)
Cara Menggunakan Modul GSM Dengan PPPd (Raspberry Pi)
Cara Menggunakan Modul GSM Dengan PPPd (Raspberry Pi)
Cara Menggunakan Modul GSM Dengan PPPd (Raspberry Pi)

A) Pertama, ganti /boot/overlays/sc16is752-i2c.dtbo dan pastikan I2C berfungsi dengan baik.

  • Gantikan sc16is752-i2c.dtbo
  • Mengkonfigurasi I2C

B) Masukkan arahan i2cset -y 1 0x16 0x23 0x40 untuk menetapkan semula modul GPRS.

Setelah menjalankan perintah, anda perlu menunggu sedikit, kira-kira 10 saat

Anda juga boleh menggunakan kaedah berikut untuk menetapkan semula.

C) Masukkan arahan

sudo apt pasang ppp

untuk memasang alat ppp.

D) Salin / etc / ppp / rakan sebaya / penyedia ke / etc / ppp / peers / gprs

E) Ubah suai / etc / ppp / rakan sebaya / gprs

  • Baris 10: Sila hubungi penyedia perkhidmatan anda untuk pengguna (Contoh: cmnet).
  • Baris 15: Sila hubungi penyedia perkhidmatan anda untuk mendapatkan apn (Contoh: cmnet).
  • Baris 18 - Baris 24: Tetapan yang disyorkan

F) Ubah suai / etc / chatscripts / gprs (Tukar Baris 34 ke Baris 35, Nombor Dialout TIDAK BOLEH * 99 #)

G) Masukkan perintah sudo pppd panggil gprs untuk mendail.

H) Periksa konfigurasi ppp anda dari ISP anda.

I) Masukkan arahan ping -I ppp0 8.8.8.8 uji rangkaian anda (Sekiranya Internet tersedia dan jadual laluan betul)

J) Pastikan isyarat GSM baik, jika tidak, perkara berikut akan berlaku.

Langkah 15: Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)

Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)
Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)
Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)
Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)
Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)
Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)
Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)
Cara Mendiagnosis Modul GSM Saya (Raspberry Pi)

Kod berikut disyorkan untuk dilaksanakan menggunakan Python 3 dan pasang perpustakaan smbus:

import serialimport time import smbus import operator import os

cetak ("Menunggu permulaan …")

bas = smbus. SMBus (1)

bas.write_byte_data (0x16, 0x23, 0x40)

ser = bersiri. Siri ('/ dev / ttySC0', 115200)

jika ser.isOpen == Salah:

ser.open () cuba: cetak ('-' * 60) cetak ("Memulakan modul A9G GPRS.") cetak ("Penyambungan GSM …") time.sleep (3) i = 0 sementara True: ser.write (str.encode ("AT + CCID / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () respon = ser.read (size) ccid = str (respons, encoding = "utf -8 ") cetak (ccid) lain: i = i + 1 ser.flushInput () time.sleep (1) kecuali KeyboardInterrupt: ser.close ()

Menjalankan Skrip Ujian, berdasarkan hasil pelaksanaannya, kita dapat mendiagnosis modul GSM. Sebagai contoh, ralat berikut, ralat CME ERROR 53 memberitahu kita Power tidak baik. Kod CME = Kesalahan berkaitan Peralatan GSM

Sudah tentu, skrip juga mempunyai fungsi reset. Sekiranya anda dapat memaparkan CCID dengan betul, tetapan semula selesai.

Langkah 16: Cara Menggunakan Lora TX & RX Dengan C (Raspberry Pi)

Kod berikut disyorkan untuk dilaksanakan menggunakan Python 3 dan pasang perpustakaan smbus.

Ia mesti dipindahkan antara kedua IOT Node (A). Kandungan yang dihantar dengan sendirinya tidak dapat diterima dengan sendirinya. Sila simpan sebagai skrip py untuk pelaksanaan.

Cara Kirim: Setelah mengisi data ke daftar 0x01 - 0x10, tetapkan bit L_TX untuk mulai mengirim data.

import timeimport smbus import os import sys

bas = smbus. SMBus (1)

cuba:

data_list = [170, 85, 165, 90] # tulis data untuk mendaftar dan kemudian data akan dihantar. untuk indeks dalam julat (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA hantar data ke% d register% d data"% (index, data_list [index - 1])) bus.write_byte_data (0x16, 0x23, 0x01) kecuali KeyboardInterrupt: sys.exit ()

Cara Kirim Terima: Periksa bit L_RXNE, Jika ditetapkan, data baru tiba, bendera ini mesti jelas secara manual

import timeimport smbus import os import sys

bas = smbus. SMBus (1)

recv_data =

cuba:

if bus.read_byte_data (0x16, 0x23) & 0x02: # kosongkan secara manual L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # membaca data untuk indeks dalam jarak (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11]))

cetak ("Data yang diterima:")

print (recv_data) else: print ("Belum ada data yang diterima ~") kecuali KeyboardInterrupt: sys.exit ()

Langkah 17: Penerangan Khas Lebar Jalur I2C

Had kelajuan I2C adalah 400kHz, kerana protokol I2C, jadi lebar jalur efektif satu peranti lebih rendah daripada 320kbps, lebar jalur efektif pelbagai peranti lebih rendah daripada 160kbps. Had kelajuan I2C UART Bridge adalah 115200bps. Apabila GPS dan GSM berfungsi pada masa yang sama, lebar jalur I2C tidak mencukupi, kerana 115.2kbps * 2 = 230.4kbps, jadi beberapa data akan melimpah. Mengurangkan kadar baud komunikasi GPS dan GSM dapat meningkatkan kekurangan jalur lebar komunikasi. Menyekat modul DockerPi lain mungkin memakan masa lebar jalur I2C tambahan. Biasanya, kelajuan data rangkaian perlahan, jadi lebar jalur GSM tidak penuh, jadi tidak ada masalah limpahan.

Langkah 18: Selesai

Harap anda suka dan berjaya.

anda boleh menemuinya di sini:

Amazon

Lampu Malam : https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4channel Relay board: https://www.amazon.co.uk/dp/B07MV1TJGR?ref=myi_title_dp Power Board : Https: //www.amazon.co.uk/dp/B07TD595VS? Ref = myi_title_dp IoT Node (A) : https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB : https:// www. menara ais amazon.co.uk/dp/B07TZD8B61 :

Disyorkan: