Daftar Isi:

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

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

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

Apa itu modul IoT Node (A)?

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

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

I2C langsung mengontrol Lora, mengirim dan menerima data, mengontrol modul GSM/GPS/BDS melalui SC16IS752, mainboard hanya membutuhkan dukungan I2C.

Mendukung Raspberry Pi dan produk sejenis lainnya.

Perlengkapan

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

1x produk seri Docker Pi: modul IoT Node(A)

1x 16 GB kelas 10 kartu TF

1x 5V/2.5A catu daya (5V@3A untuk Pi 4B)

Langkah 1: Fitur

Fitur
Fitur
Fitur
Fitur
Fitur
Fitur
  • Seri Docker Pi
  • Dapat diprogram
  • Kontrol langsung (tanpa pemrograman)
  • Perpanjang Pin GPIO
  • Dukungan GPS/BDS
  • Dukungan GSM
  • Dukungan Lora
  • Dapat Stack dengan papan Stack lainnya
  • Independen dari perangkat keras mainboard (memerlukan dukungan I2C)

Langkah 2: Langkah1: Ketahui Tentang Papan IoT (A)

Langkah1: Ketahui Tentang Papan IoT (A)
Langkah1: Ketahui Tentang Papan IoT (A)
Langkah1: Ketahui Tentang Papan IoT (A)
Langkah1: Ketahui Tentang Papan IoT (A)
Langkah1: Ketahui Tentang Papan IoT (A)
Langkah1: Ketahui Tentang Papan IoT (A)

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

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

I2C langsung mengontrol Lora, mengirim dan menerima data, mengontrol modul GSM/GPS/BDS melalui SC16IS752, mainboard hanya membutuhkan dukungan I2C. Mendukung Raspberry Pi dan produk sejenis lainnya.

Jadi Anda dapat membuat perangkat komunikasi jarak menengah dengan menggunakan dua di antaranya.

dan Anda juga dapat menemukan lokasi perangkat Anda dengan menggunakan modul GPS onboard.

Masukkan kartu SIM, Ini akan menjadi stasiun pemancar melalui pesan SMS.

Langkah 3: Langkah2: Cara Merakitnya

Langkah2: Cara Merakitnya
Langkah2: Cara Merakitnya
Langkah2: Cara Merakitnya
Langkah2: Cara Merakitnya

Merakitnya sangat mudah karena desainnya "TOPI", Anda tinggal meletakkannya di raspberry pi Anda dan menghubungkannya melalui pin GPIO, seperti "topi" pada raspberry pi, sehingga Anda tidak perlu menambahkan massa. kabel.

Langkah 4: Langkah 3: Hubungkan Antena

Step3: Menghubungkan Antena
Step3: Menghubungkan Antena
Langkah3: Hubungkan Antena
Langkah3: Hubungkan Antena
Step3: Hubungkan Antena
Step3: Hubungkan Antena

Ada 3 buah antena untuk modul IoT (A) ini, salah satunya untuk modul loar, ini adalah antena tipe SMA, dan salah satunya bagus untuk Anda GPS, itu adalah antena kotak persegi yang memiliki port IPX. dan yang terakhir adalah untuk modul SIM (A9G), Ini adalah antena kecil yang memiliki port IPX. sambungkan antena dan pasang topi ke raspberry pi Anda.

Cara merakitPasang papan Iot Node(A) ke Raspberry Pi

Hubungkan GPS antana dan Lora antana ke port IPX.

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

Pasang antana GPRS pada port SMA.

Langkah 5: Langkah 4: Lingkungan OS dan Konfigurasi Perangkat Lunak

Dalam langkah ini, Anda harus melakukan hal-hal:

1. Unduh file gambar terbaru dari: www.raspberrypi.org/downloads

2. Buka ritsletingnya.

3. Flash kartu TF Anda dengan gambar terbaru melalui alat etsa

4. Modify file /boot/config.txt dan tambahkan paragraf ini.

dtoverlay=sc16is752-i2c

5. Ganti file /boot/overlay/sc16is752-i2c.dtbo dengan file ini:

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

PS: ingat unzip dan taruh di folder /boot/overlay/ Anda dan ganti yang lama.

6. Reboot Raspberry Pi Anda.

Langkah 6: Langkah5: Konfigurasi I2C (Raspberry Pi)

Langkah5: Konfigurasi I2C (Raspberry Pi)
Langkah5: Konfigurasi I2C (Raspberry Pi)
Langkah5: Konfigurasi I2C (Raspberry Pi)
Langkah5: Konfigurasi I2C (Raspberry Pi)
Langkah5: Konfigurasi I2C (Raspberry Pi)
Langkah5: Konfigurasi I2C (Raspberry Pi)
Langkah5: Konfigurasi I2C (Raspberry Pi)
Langkah5: Konfigurasi I2C (Raspberry Pi)

Jalankan Sudo raspi-config dan ikuti petunjuk untuk menginstal dukungan i2c untuk inti ARM dan kernel linux Buka Opsi Antarmuka

Langkah 7: Langkah 6: Ketahui Tentang Informasi Pendaftaran

bagian GPRS

Konsumsi daya rendah, arus tidur siaga <1mA2.

Mendukung GSM/GPRS empat pita frekuensi, termasuk 850, 900, 1800, 1900MHZ

GPRS Kelas 10

Mendukung layanan data GPRS, kecepatan data maksimum, unduh 85.6Kbps, unggah 42.8Kbps

Mendukung perintah GSM07.07, 07.05 AT standar, dan mengakses port serial melalui konversi antarmuka I2C

Perintah AT mendukung port perintah AT dan TCP/IP standar

Bagian GPSMendukung posisi bersama BDS/GPS

Mendukung A-GPS, A-BDS

Mendukung kartu SIM standar

Bagian LORAJarak transmisi: 500 Meter (parameter RF: 0x50 @ China City)

Mendukung metode modulasi FSK, GFSK, MSK, GMSK, LoRaTM dan OOK

Sensitivitas penerima ultra-tinggi serendah -141 dBm

Mendukung deteksi pembukaan

Mesin paket dengan CRC, hingga 256 byte

Indikator transceiver LORA

TX/RX mudah oleh Docker Pi

Langkah 8:

Modul A9G

Modul A9G menawarkan dua port serial.

Gunakan jembatan UART I2C untuk komunikasi.

Nama Modul Port Serial

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

Daftar Peta

  • Nilai Fungsi Alamat Daftar
  • 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 Buffer Lora TX 15 - Data Pengguna
  • 0x10 LORA_TX16 Penyangga Lora TX 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 Saja.
  • 0x11 - 0x20 Hanya Baca.

Langkah 9: Instruksi:

instruksi
instruksi

L_SET (Tulis Saja)

  • Tulis 1 untuk mengatur parameter dari 0x22 ke Modul LORA.
  • Tulis 0 bukan efek

G_RESET(Hanya Tulis)

  • Tulis 1 untuk mengatur ulang Modul A9G
  • Tulis 0 bukan efek

L_RXNE(Baca & Tulis)

  • Tulis 1 penyebab kesalahan
  • Tulis 0 untuk menghapus
  • Read 1 artinya data sudah diterima, silahkan ambil data dari register 0x11 - 0x20.
  • Baca 0 berarti tidak ada data yang tersedia sekarang.

L_SET (Tulis Saja)

  • Tulis 1 untuk mengirim data, mohon isi data di register 0x01 - 0x10 sebelum dikirim.
  • Tulis 0 bukan efek

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.

  • Ganti sc16is752-i2c.dtbo
  • Mengonfigurasi I2C
  • Instal alat gpsd.

Buka terminal dan ketik perintah ini:

sudo apt install gpsd gpsd-clients

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

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

Masukkan perintah i2cset -y 1 0x16 0x23 0x40 untuk mereset modul GPRS.

Skrip Python Untuk GPS Terbuka:

import serialimport os import time # Mulai ulang layanan gpsd. os.system("sudo systemctl restart gpsd.socket") # Buka serial port ser = serial. Serial('/dev/ttySC0', 115200) i = 0 if ser.isOpen == False: ser.open() coba: print("Aktifkan GPS…") while True: ser.write(str.encode("AT+GPS=1\r")) size = ser.inWaiting() if size != 0: ticks = time.time() respon = ser.read(ukuran) gps = str(respons, encoding="utf-8") if(gps.find("OK") != -1): os.system("sudo cgps -s") exit() else: i = i + 1 print("Menunggu GPS Aktifkan, Jika waktunya terlalu lama, Silakan tes di luar ruangan:" + str(i)) ser.flushInput() time.sleep(1) kecuali KeyboardInterrupt: ser.flushInput() ser.close()

Simpan dan jalankan:

python3 GPS.py

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

Instal alat gpsd

sudo apt-get install libgps-dev

Buat kode sumber dan beri nama "gps.c"

#sertakan #sertakan #sertakan

#termasuk

#termasuk

int utama()

{ int rc; struct tv waktu; struktur gps_data_t gps_data; if ((rc = gps_open("localhost", "2947", &gps_data)) == -1) { printf("kode: %d, alasan: %s\n", rc, gps_errstr(rc)); kembali EXIT_FAILURE; } gps_stream(&gps_data, WATCH_ENABLE | WATCH_JSON, NULL);

sementara (1)

{ /* tunggu 2 detik untuk menerima data */ if (gps_waiting(&gps_data, 2000000)) { /* baca data */ if ((rc = gps_read(&gps_data)) == -1) { printf("terjadi kesalahan pembacaan data gps.kode: %d, alasan: %s\n", rc, gps_errstr(rc)); } else { /* Menampilkan 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 stempel waktu! */

printf("lintang: %f, bujur: %f, kecepatan: %f, stempel waktu: %lf\n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);

//EDIT: Mengganti tv.tv_sec dengan gps_data.fix.time } else { printf("data GPS tidak tersedia\n"); } } } tidur(3); } /* Setelah selesai… */ gps_stream(&gps_data, WATCH_DISABLE, NULL); gps_close(&gps_data); kembali EXIT_SUCCESS; }

Langkah 12: Kompilasi

Kompilasi Itu
Kompilasi Itu

Menyusun!

gcc gps.c -lm -lgps -o gps

Eksekusi!

./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)

Kode berikut direkomendasikan untuk dieksekusi menggunakan Python 3 dan menginstal pustaka gpsd-py3 dan GPS 2D/3D Fix:

impor gpsd

# Hubungkan ke gpsd lokal

gpsd.koneksi()

# Dapatkan posisi gps

paket = gpsd.get_current()

# Lihat dokumen sebaris untuk GpsResponse untuk data yang tersedia

cetak(paket.posisi())

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.

  • Ganti sc16is752-i2c.dtbo
  • Mengonfigurasi I2C

B) Masukkan perintah i2cset -y 1 0x16 0x23 0x40 untuk mereset modul GPRS.

Setelah menjalankan perintah, Anda perlu menunggu sedikit, sekitar 10 detik

Anda juga dapat menggunakan metode berikut untuk mengatur ulang.

C) Masukkan perintah

sudo apt install ppp

untuk menginstal alat ppp.

D) Salin /etc/ppp/peers/provider ke /etc/ppp/peers/gprs

E) Ubah /etc/ppp/peers/gprs

  • Baris 10: Silakan berkonsultasi dengan penyedia layanan Anda untuk pengguna (Contoh:cmnet).
  • Baris 15: Silakan berkonsultasi dengan penyedia layanan Anda untuk apn (Contoh: cmnet).
  • Baris 18 - Baris 24: Pengaturan yang disarankan

F) Ubah /etc/chatscripts/gprs (Ubah Baris 34 ke Baris 35, Nomor Dialout Mungkin BUKAN *99#)

G) Masukkan perintah sudo pppd call gprs untuk dial up.

H) Periksa konfigurasi ppp Anda dari ISP Anda.

I)Masukkan perintah ping -I ppp0 8.8.8.8 uji jaringan Anda (Jika Internet tersedia dan tabel rute benar)

J) Harap jaga agar sinyal GSM tetap baik, jika tidak, hal berikut akan terjadi.

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)

Kode berikut direkomendasikan untuk dieksekusi menggunakan Python 3 dan menginstal perpustakaan smbus:

impor serialimport waktu impor smbus import operator os

print("Menunggu Inisialisasi…")

bus = smbus. SMBus(1)

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

ser = serial. Serial('/dev/ttySC0', 115200)

if ser.isOpen == Salah:

ser.open() coba: print('-'*60) print("Menginisialisasi modul GPRS A9G.") print("GSM menghubungkan…") time.sleep(3) i = 0 while True: ser.write(str.encode("AT+CCID\r")) size = ser.inWaiting() if size != 0: ticks = time.time() response = ser.read(size) ccid = str(response, encoding="utf -8") print(ccid) else: i = i + 1 ser.flushInput() time.sleep(1) kecuali KeyboardInterrupt: ser.close()

Jalankan Test Script, berdasarkan hasil implementasi, kami dapat mendiagnosis modul GSM. Misalnya, pengembalian berikut, kesalahan CME ERROR 53 memberi tahu kami Daya tidak baik. Kode CME = Kesalahan Terkait Peralatan GSM

Tentu saja, skrip juga memiliki fungsi reset. Jika Anda dapat menampilkan CCID dengan benar, reset selesai.

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

Kode berikut direkomendasikan untuk dieksekusi menggunakan Python 3 dan menginstal perpustakaan smbus.

Itu harus ditransfer antara dua IOT Node (A). Konten yang dikirim dengan sendirinya tidak dapat diterima dengan sendirinya. Harap simpan sebagai skrip py untuk dieksekusi.

Cara Mengirim: Setelah mengisi data ke register 0x01 - 0x10, atur bit L_TX untuk mulai mengirim data.

impor waktu impor smbus impor os impor sistem

bus = smbus. SMBus(1)

mencoba:

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

Cara Mengirim Terima: Centang bit L_RXNE, Jika disetel, data baru tiba, tanda ini harus dihapus secara manual

impor waktu impor smbus impor os sistem impor

bus = smbus. SMBus(1)

recv_data =

mencoba:

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

print("Data yang diterima:")

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

Langkah 17: Deskripsi Khusus Bandwidth I2C

Batas kecepatan I2C adalah 400kHz, karena protokol I2C, sehingga bandwidth efektif perangkat tunggal lebih rendah dari 320kbps, bandwidth efektif multi perangkat lebih rendah dari 160kbps. Batas kecepatan Jembatan UART I2C adalah 115200bps. Ketika GPS dan GSM bekerja pada saat yang sama, bandwidth I2C tidak mencukupi, karena 115.2kbps * 2 = 230.4kbps, sehingga beberapa data akan meluap. Mengurangi baud rate komunikasi GPS dan GSM dapat meningkatkan kekurangan bandwidth komunikasi. Penumpukan modul DockerPi lainnya mungkin memakan waktu bandwidth I2C ekstra. Biasanya, kecepatan data jaringan lambat, sehingga bandwidth GSM tidak penuh, sehingga tidak ada masalah overflow.

Langkah 18: Selesai

Semoga kalian suka dan berhasil.

Anda dapat menemukannya di sini:

Amazon

Lampu malam:https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S Papan relai 4 saluran: https://www.amazon.co.uk/dp/B07MV1TJGR?ref=myi_title_dp Papan Daya 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. amazon.co.uk/dp/B07TZD8B61 menara es:

Direkomendasikan: