Sunday, February 28, 2021

Komunikasi NB IoT NBIOT NB-IoT TELKOMSEL dengan modem Quectel BG96 Quectel BG-96 GPS GSM GPRS 4 BAND MODULE





 

Reset dan Power ON

Pada saat pertama kali modul disambungkan dengan baterai, sistem BG96 harus diberikan input pulsa reset minimal 500mS. Kemudian dilanjutkan dengan input pulsa Powerkey minimal 200mS.

Modem READY

Setelah power up berhasil maka tunggu sampai modem BG96 apakah sudah siap atau belum. Apabila ada balasan dari port serial berupa data karakter ASCII : "RDY", maka modem siap menerima perintah berikutnya.

    RDY

Respons AT OK

Kemudian lanjut kirim command melalui port serial data karakter ASCII "AT" dan tunggu sampai dibalas "OK"

    AT

    OK

 

Cek Fungsional Modem

AT+CFUN?

+CFUN: 1

OK


Cek SIM Card Status

AT+CPIN?

+CPIN: READY

OK

 

Cek Jaringan Operator Seluler

AT+COPS?

+COPS: 0,0,"Tsel-PakaiMasker",0

OK
 

Cek EPS Network Registration Status

AT+CEREG/

+CEREG: 0,4

OK

 

REBOOT Modules Apabila setelah 90 detik nilai CEREG tidak bernilai 1 atau 5

AT+CFUN=1,1

OK

POWERED DOWN

RDY
 

 

Disable Result Code - Error Message Format

AT+CMEE=0

OK 

 

Disable Time Zone Reporting of changed Event  - Time Zone Reporting
AT+CTZR=0

OK

Enable Automatic Time Zone Update

AT+CTZU=1

OK

Configure  Network  Category  to  be  Searched  under LTE (cat M1, cat NB1, cat M1 & NB1)
AT+QCFG="iotopmode",0,1

OK

Configure RAT(s) to be Searched (Auto , GSM, LTE)
AT+QCFG="nwscanmode",0,1

OK

Configure APN for PDP Context Profile

AT+QICSGP=1,1,"NB1INTERNET","","",0  // APN Telkomsel = NB1INTERNET

OK

Aktivasi PDP Context Profile

AT+QIACT=1                           // Activate context profile 1
 
OK                                             // Activation is successful
    
AT+QIACT?                             // Query context profile status
 
+QIACT: 1,1,1,"10.7.157.1"
 
OK

 

Open a TCP connection to the remote server, TCP Client works in buffer access mode

AT+QIOPEN=1,0,"TCP","202.74.236.117",1883,0,0    // Establish a TCP connection in context 
                                                                                         // profile 1, <connectid> is 0
 OK
 
 +QIOPEN: 0,0                                                                // Connected successfully


Send Data in Buffer Access Mode

AT+QISEND=0       // Send  changeable  length  data.  “SEND  OK”  does  not  mean  the                 
                                 // data has been sent to the server successfully. The host can query
                                 // whether the data has reached the server via AT+QISEND=0,0.
 
>test1<ctrl+Z>
 
SEND OK

AT+QISEND=0,4           //Send fixed length data and the data length is 4bytes.
 
>test
 
SEND OK
 
AT+QISEND=0,0            //Query the length of sent data.
 
+QISEND: 9,9,0

OK


Check the connection state

AT+QISTATE=1,0 //Query the connection status when <connectid> is 0
 

+QISTATE: 0,"TCP","202.74.236.117",1883,16309,2,1,0,0,"uart1"

OK

 

Receive Data from Remote Server in Buffer Access Mode

+QIURC: “recv”,0    // The <connectID> 0 received data.
AT+QIRD=0,1500    // Read data, and the length is 1500bytes.
+QIRD: 5                  // The length of actual received data is 5bytes.
 

test1

OK

AT+QIRD=0,1500
+QIRD: 0                  // No data in buffer.
OK

AT+QIRD=0,0         // Query the total length of received data,
                                 // including read and unreaddata.
+QIRD: 5,5,0

OK

 

Read the server respons

AT+QIRD=0,0

+QIRD: 0,0,0

OK


Cek Signal Modem

AT+QCSQ

+QCSQ: "GSM",-74

OK

 

Board BG96 dapat diorder disini: 

https://tokopedia.com/fawwazzshop/nb-iot-stm32-quectel-bg96-gps-gsm-gprs-4-band-module-modul-for-arduino

Pemrograman STM32 di Arduino IDE menggunakan JTAG downloader STLINK V2 (STM32CubeProgramming - SWD )

Arduino menjadi board pertama bagi banyak pengguna mikrokontroller dan pelajar, mahasiswa dan engineer ketika mereka mulai dengan elektronik. Namun, ketika kita mulai membangun lebih banyak dan menggali lebih dalam, kita akan segera menyadari bahwa Arduino belum banyak digunakan untuk industri dan karena merupakan CPU 8-bit maka kinerjanya dinilai kurang cepat. Sedangkan STM32F103C8T6 STM32 Development Board (Blue Pill) baru banyak di pasaran dengan harga yang terjangkau, sehingga banyak sekarang yang menggunakan nya untuk berbagai project yang mana STM32 merupakan CPU 32-bit dan arsitektur ARM Cortex M3. gi bahwa kita dapat menggunakan Arduino IDE yang sama untuk memprogram board STM32 kita. 

Spesifikasi STM32F103C8T6

STM » adalah nama produsen STMicroelectronics
32 » adalah arsitektur ARM 32-bit
F103 » berdiri untuk menunjukkan bahwa arsitektur ARM Cortex M3
C » 48-pin
8 » Memori Flash 64KB
T » jenis paket adalah LQFP
6 » suhu pengoperasian -40 ° C hingga + 85 ° C

Berikut adalah spesifikasi Microcontroller ini :

  • Arsitektur : 32-bit ARM Cortex M3
  • Tegangan Pengoperasian : 2.7V hingga 3.6V
  • Frekuensi CPU : 72 MHz
  • Jumlah pin GPIO : 37
  • Jumlah pin PWM : 12
  • Pin input analog : 10 (12-bit)
  • Periferal USART : 3
  • Perangkat I2C : 2
  • Periferal SPI : 2
  • CAN 2.0 Periferal : 1
  • Timer : 3 (16-bit), 1 (PWM)
  • Memori Flash : 64KB
  • RAM: 20kB

Bagaimana cara memprogram Board STM32

STM32 merupakan mikrokontroler dari keluarga STMicroelectronics. Jadi semua metode yang ada untuk memprogram chip ARM dapat digunakan untuk papan STM32 juga. Salah satu IDE terkenal dan umum digunakan adalah Keil ARM MDK dan selain itu kita juga dapat menggunakan IAR, Atollic TrueStudio, MicroC Pro ARM, ARM Crossworks, Ride 7, PlatformIO + STM32 dll.

Namun yang membuat board ini sangat populer adalah kemampuannya untuk diprogram dengan Arduino IDE. Dengan cara ini orang dapat memulai dan membangun proyek dengan STM32 dalam waktu singkat karena banyak yang sudah terbiasa dengan Arduino IDE dan bahasa pemrograman yang mudah digunakan dan banyak dukungan library yang tersedia. Untuk itu dalam tutorial ini kita akan menggunakan IDE Arduino untuk memulai dengan STM32.

Pin JTAG STM32 - SWDIO dan SWCLK

Kelebihan dari download program menggunakan pin JTAG di STM32 adalah user tidak perlu merubah setting boot mode pada pin boot0 dan boot1 di STM32 seperti pada saat download program menggunakan port serial di STM32. Jadi user tidak perlu menyediakan dan merubah jumper switch boot0 dan boot1 pada saat download program ataupun pada saat running program. Kedua pin boot0 dan boot1 disetting terhubung ke ground.

Untuk memprogram papan STM32 langsung dari Arduino IDE kita menggunakan pin programming JTAG yang tersedia oleh STM32 yaitu pin SWDIO (PA13) dan pin SWCLK (PA14). Modul JTAG programmer / downloader  STLINK V2 dihubungkan dengan pin SWDIO (PA13) dan pin SWCLK (PA14) dari STM32 seperti yang ditunjukkan di bawah ini.

 

Pin VCC dari STLINK V2 dipilih menyesuaikan dengan power VCC dari STM32 yaitu 3.2V. Ground terhubung ke ground STM32. Pin SWDIO dan SWCLK pada modul STLINK V2 masing-masing terhubung ke pin PA13 dan PA14 dari STM32.

Mempersiapkan Arduino IDE untuk STM32

Ikuti langkah-langkah di bawah ini untuk mengunduh dan menyiapkan Arduino IDE untuk digunakan dengan board STM32.

Langkah 1: – Jika Anda belum menginstal Arduino IDE, unduh dan instal dari tautan ini. Pastikan Anda memilih sistem operasi yang benar.

Langkah 2: – Setelah Menginstal Arduino IDE buka dan unduh paket yang diperlukan untuk papan STM32. Ini dapat dilakukan dengan memilih File -> Preferences.

Langkah 3: – Mengklik Preferensi akan membuka kotak dialog yang ditunjukkan di bawah ini. Di kotak teks URL Boards Manager tambahan tempel tautan di bawah ini :

dan tekan OK.


Langkah 4: – Sekarang pergi ke Tools -> Board -> Board Manajer. Ini akan membuka kotak dialog Boards manager, mencari “STM32 Cores” dan menginstal paket yang muncul.

Langkah 5: – Setelah paket instalasi selesai. Pergi ke Tools dan geser ke bawah untuk menemukan seri Generic STM32F103C seperti yang ditunjukkan di bawah ini. Kemudian pastikan variannya adalah tipe 64kFlash, kecepatan CPU adalah 72MHz dan ubah metode upload ke "STM32CubeProgrammer (SWD)" .


Langkah 6: – Untuk upload / download program menggunakan JTAG STLINK V2, user harus mendownload STM32CubeProgrammer di tautan link di bawah ini:

Langkah 7: – Setelah semua perubahan dilakukan, dan STM32CubeProgrammer telah diinstall. Pada Arduino IDE klik tombol upload untuk menguji program Blink test ke board STM32. apabila proses upload berhasil akan muncul status seperti gambar di bawah ini: