1657509006180-251.png

Table of Contents:

1.  Introduction

1.1 ​ What is LoRaWAN Soil Moisture & EC Sensor

NBSN95 is a Long Range NB-IoT Sensor Node. It is designed for outdoor data logging and powered by Li/SOCl2 battery for long term use and secure data transmission. It is designed to facilitate developers to quickly deploy industrial level NB-IoT solutions. It helps users to turn the idea into a practical application and make the Internet of Things a reality. It is easy to program, create and connect your things everywhere.

NarrowBand-Internet of Things (NB-IoT) is a standards-based low power wide area (LPWA) technology developed to enable a wide range of new IoT devices and services. NB-IoT significantly improves the power consumption of user devices, system capacity and spectrum efficiency, especially in deep coverage.

NBSN95 uses STM32l0x chip from ST, STML0x is the ultra-low-power STM32L072xx microcontrollers incorporate the connectivity power of the universal serial bus (USB 2.0 crystal-less) with the high-performance ARM® Cortex®-M0+ 32-bit RISC core operating at a 32 MHz frequency, a memory protection unit (MPU), high-speed embedded memories (192 Kbytes of Flash program memory, 6 Kbytes of data EEPROM and 20 Kbytes of RAM) plus an extensive range of enhanced I/Os and peripherals.

NBSN95 is an open source product, it is based on the STM32Cube HAL drivers and lots of libraries can be found in ST site for rapid development.

1657509740279-435.png

1.2 ​ Features

  • STM32L072CZT6 MCU
  • NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
  • Pre-load bootloader on USART1/USART2
  • MDK-ARM Version 5.24a IDE
  • I2C, LPUSART1, USB, SPI2
  • 3x12bit ADC, 1x12bit DAC
  • 20xDigital I/O
  • Open-source hardware / software
  • IP66 Waterproof Enclosure
  • Ultra-Low Power consumption
  • AT Commands to change parameters
  • Micro SIM card slot for NB-IoT SIM
  • 8500mAh Battery for long term use

1.3  Specification

Micro Controller:

  • STM32L072CZT6 MCU
  • MCU: STM32L072CZT6
  • Flash: 192KB
  • RAM: 20KB
  • EEPROM: 6KB
  • Clock Speed: 32Mhz

Common DC Characteristics:

  • Supply Voltage: 2.1v ~ 3.6v
  • Operating Temperature: -40 ~ 85°C
  • I/O pins: Refer to STM32L072 datasheet

NB-IoT Spec:

  • - B1 @H-FDD: 2100MHz
  • - B3 @H-FDD: 1800MHz
  • - B8 @H-FDD: 900MHz
  • - B5 @H-FDD: 850MHz
  • - B20 @H-FDD: 800MHz
  • - B28 @H-FDD: 700MHz

Battery:

  • Li/SOCI2 un-chargeable battery
  • Capacity: 8500mAh
  • Self Discharge: <1% / Year @ 25°C
  • Max continuously current: 130mA
  • Max boost current: 2A, 1 second

Power Consumption

  • STOP Mode: 10uA @ 3.3v
  • Max transmit power: 350mA@3.3v

​1.4  Applications

  • Smart Buildings & Home Automation
  • Logistics and Supply Chain Management
  • Smart Metering
  • Smart Agriculture
  • Smart Cities
  • Smart Factory

1.5  Pin Definitions & Switch

1657510398618-181.png

No.SignalDirectionFunctionRemark
1VCC(2.9V)OUTPUTVCCDirectly connect to main power for board
2PA0In/OutDirectly from STM32 chipUsed as ADC in NBSN95 image
3PA1In/OutDirectly from STM32 chip 
4PA2In/OutDirectly from STM32 chip, 10k pull up to VCCUsed as UART_TXD in NBSN95 image
5PA3In/OutDirectly from STM32 chip, 10k pull up to VCCUsed as UART_RXD in NBSN95 image
6PB6In/OutDirectly from STM32 chip, 10k pull up to VCC 
7PB7In/OutDirectly from STM32 chip, 10k pull up to VCC 
8PB3In/OutDirectly from STM32 chip, 10k pull up to VCC 
9PB4In/OutDirectly from STM32 chip 
10PA9In/OutDirectly from STM32 chip, 10k pull up to VCC 
11PA10In/OutDirectly from STM32 chip, 10k pull up to VCC 
12GND Ground 
13VCC(2.9V)OUTPUTVCCDirectly connect to main power for board
14Jumper Power on/off jumper 
15PA4In/OutDirectly from STM32 chip 
16NRSTInReset MCU 
17PA12In/OutDirectly from STM32 chip 
18PA11In/OutDirectly from STM32 chip 
19PA14In/OutDirectly from STM32 chip 
20PB13In/OutDirectly from STM32 chip 
21PB12In/OutDirectly from STM32 chip 
22PB15In/OutDirectly from STM32 chip 
23PB14In/OutDirectly from STM32 chip 
24PA13In/OutDirectly from STM32 chip 
25PA8In/OutDirectly from STM32 chipDefault use to turn on/off LED1 in NBSN95 image
26GND Ground 
27+5VOut5v output powerControlled by PB5(Low to Enable, High to Disable)
28LED1 Controlled by PA8Blink on transmit
29BOOT MODE Configure device in working mode or ISP program mode

Flash: Normal Working mode and send AT Commands

ISP: UART Program Mode

30NRSTInReset MCU 

1.5.1  Jumper JP2

Power on Device when put this jumper.

1.5.2  BOOT MODE / SW1

1) ISP: upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.

2) Flash: work mode, device starts to work and send out console output for further debug

1.5.3  Reset Button

Press to reboot the device.

1.5.4  LED

It will flash:

  1. When boot the device in flash mode
  2. Send an uplink packet

1.6  Hole Option

The NBSN95 provides different hole size options for different size sensor cable. The options provided are M12, M16. The definition is as below:

image-20220711135811-1.png

1657519103007-447.png

2.  Use NBSN95 to communicate with IoT Server

2.1  How it works

The NBSN95 is equipped with a NB-IoT module, the pre-loaded firmware in NBSN95 will get environment data from sensors and send the value to local NB-IoT network via the NB-IoT module.  The NB-IoT network will forward this value to IoT server via the protocol defined by NBSN95.

The diagram below shows the working flow in default firmware of NBSN95: 

image-20220711135919-2.png

2.2 ​ Configure the NBSN95

2.2.1  Power On NBSN95

1657519498925-521.png

2.2.2  Test Requirement

To use NBSN95 in your city, make sure meet below requirements:

  • Your local operator has already distributed a NB-IoT Network there.
  • The local NB-IoT network used the band that NBSN95 supports.
  • Your operator is able to distribute the data received in their NB-IoT network to your IoT server.

Below figure shows our testing structure.   Here we have NB-IoT network coverage by China Mobile, the band they use is B8.  The NBSN95 will use CoAP(120.24.4.116:5683) or raw UDP(120.24.4.116:5601) or MQTT(120.24.4.116:1883)or TCP(120.24.4.116:5600)protocol to send data to the test server

1657519549982-889.png

2.2.3  Insert SIM card

Insert the NB-IoT Card get from your provider.

User need to take out the NB-IoT module and insert the SIM card like below:

1657249468462-536.png

2.2.4  Connect USB – TTL to NBSN95 to configure it

User need to configure NBSN95 via serial port to set the Server Address / Uplink Topic to define where and how-to uplink packets. NBSN95 support AT Commands, user can use a USB to TTL adapter to connect to NBSN95 and use AT Commands to configure it, as below.

1657520237594-636.png

In the PC, use below serial tool settings:

  • Baud:       9600
  • Data bits: 8
  • Stop bits: 1
  • Parity:      None
  • Flow Control: None

Make sure the switch is in FLASH position, then power on device by connecting the jumper on NBSN95. NBSN95 will output system info once power on as below, we can enter the password: 12345678 to access AT Command input. 

1657520459085-315.png

Note: the valid AT Commands can be found at:  https://www.dragino.com/downloads/index.php?dir=NB-IoT/NBSN95/

2.2.5  Use CoAP protocol to uplink data

Note: if you don't have CoAP server, you can refer this link to set up one: http://wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/

Use below commands:

  • AT+PRO=1                                               // Set to use CoAP protocol to uplink
  • AT+SERVADDR=120.24.4.116,5683     // to set CoAP server address and port
  • AT+URI=5,11,"mqtt",11,"coap",12,"0",15,"c=text1",23,"0"        //Set COAP resource path

For parameter description, please refer to AT command set

1657249793983-486.png

After configure the server address and reset the device (via AT+ATZ ), NSE01 will start to uplink sensor values to CoAP server. 

1657522754681-536.png

2.2.6  Use UDP protocol to uplink data(Default protocol)

This feature is supported since firmware version v1.0.1

  • AT+PRO=2     // Set to use UDP protocol to uplink
  • AT+SERVADDR=120.24.4.116,5601      // to set UDP server address and port
  • AT+CFM=1           //If the server does not respond, this command is unnecessary

1657522829933-263.png

1657522854411-706.png

2.2.7  Use MQTT protocol to uplink data

This feature is supported since firmware version v110, it supports only plain MQTT now it doesn't support TLS and other related encryption.

  • AT+PRO=3                                                 //Set to use MQTT protocol to uplink
  • AT+SERVADDR=120.24.4.116,1883         //Set MQTT server address and port
  • AT+CLIENT=CLIENT                                  //Set up the CLIENT of MQTT
  • AT+UNAME=UNAME                               //Set the username of MQTT
  • AT+PWD=PWD                                        //Set the password of MQTT
  • AT+PUBTOPIC=T1_PUB                           //Set the sending topic of MQTT
  • AT+SUBTOPIC=T1_SUB                           //Set the subscription topic of MQTT

1657522979257-629.png

1657522993615-517.png

To save battery life, NBSN95 will establish a subscription before each uplink and close the subscription 3 seconds after uplink successful. Any downlink commands from server will only arrive during the subscription period.

MQTT protocol has a much higher power consumption compare vs UDP / CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval.

 

2.2.7  Use TCP protocol to uplink data

This feature is supported since firmware version v110

  • AT+PRO=4                                              // Set to use TCP protocol to uplink
  • AT+SERVADDR=120.24.4.116,5600    // to set TCP server address and port

1657250217799-140.png

1657250255956-604.png

2.2.8  Change Update Interval

User can use below command to change the uplink interval.

  • AT+TDC=600        // Set Update Interval to 600s

NOTE:

1. By default, the device will send an uplink message every 1 hour.

2.3  Uplink Payload

In this mode, uplink payload includes in total 18 bytes

Size(bytes)

62212221
ValueDevice IDVerBATSignal StrengthSoil MoistureSoil TemperatureSoil Conductivity(EC)Interrupt

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NSE01 uplink data.

image-20220708111918-4.png

The payload is ASCII string, representative same HEX:

0x72403155615900640c7817075e0a8c02f900 where:

  • Device ID: 0x 724031556159 = 724031556159
  • Version: 0x0064=100=1.0.0
  • BAT: 0x0c78 = 3192 mV = 3.192V
  • Singal: 0x17 = 23
  • Soil Moisture: 0x075e= 1886 = 18.86  %
  • Soil Temperature:0x0a8c =2700=27 °C
  • Soil Conductivity(EC) = 0x02f9 =761 uS /cm
  • Interrupt: 0x00 = 0

2.4  Payload Explanation and Sensor Interface

2.4.1  Device ID

By default, the Device ID equal to the last 6 bytes of IMEI.

User can use AT+DEUI to set Device ID

Example:

AT+DEUI=A84041F15612

The Device ID is stored in a none-erase area, Upgrade the firmware or run AT+FDR won't erase Device ID.

2.4.2  Version Info

Specify the software version: 0x64=100, means firmware version 1.00.

For example: 0x00 64 : this device is NSE01 with firmware version 1.0.0.

2.4.3  Battery Info

Check the battery voltage for LSE01.

Ex1: 0x0B45 = 2885mV

Ex2: 0x0B49 = 2889mV

2.4.4  Signal Strength

NB-IoT Network signal Strength.

Ex1: 0x1d = 29

0        -113dBm or less

1        -111dBm

2...30 -109dBm... -53dBm

31      -51dBm or greater

99      Not known or not detectable

2.4.5  Soil Moisture

Get the moisture content of the soil. The value range of the register is 0-10000(Decimal), divide this value by 100 to get the percentage of moisture in the soil.

For example, if the data you get from the register is 0x05 0xDC, the moisture content in the soil is

 

05DC(H) = 1500(D) /100 = 15%.

2.4.6  Soil Temperature

Get the temperature in the soil. The value range of the register is -4000 - +800(Decimal), divide this value by 100 to get the temperature in the soil. For example, if the data you get from the register is 0x09 0xEC, the temperature content in the soil is

Example:

If payload is 0105H: ((0x0105 & 0x8000)>>15 === 0),temp = 0105(H)/100 = 2.61 °C

If payload is FF7EH: ((FF7E & 0x8000)>>15 ===1),temp = (FF7E(H)-FFFF(H))/100 = -1.29 °C

2.4.7  Soil Conductivity (EC)

Obtain soluble salt concentration in soil or soluble ion concentration in liquid fertilizer or planting medium. The value range of the register is 0 - 20000(Decimal)( Can be greater than 20000).

For example, if the data you get from the register is 0x00 0xC8, the soil conductivity is 00C8(H) = 200(D) = 200 uS/cm.

Generally, the EC value of irrigation water is less than 800uS / cm.

 

 

2.4.8  Digital Interrupt

Digital Interrupt refers to pin GPIO_EXTI, and there are different trigger methods. When there is a trigger, the NSE01 will send a packet to the server.

The command is:

AT+INTMOD=3    //(more info about INMOD please refer AT Command Manual).

The lower four bits of this data field shows if this packet is generated by interrupt or not. Click here for the hardware and software set up.

Example:

0x(00): Normal uplink packet.

0x(01): Interrupt Uplink Packet.

2.4.9  ​+5V Output

NSE01 will enable +5V output before all sampling and disable the +5v after all sampling.  

The 5V output time can be controlled by AT Command.

AT+5VT=1000

Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.

2.5  Downlink Payload

By default, NSE01 prints the downlink payload to console port.

image-20220708133731-5.png

Examples:

 

  • Set TDC

If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.

Payload:    01 00 00 1E    TDC=30S

Payload:    01 00 00 3C    TDC=60S

 

  • Reset

If payload = 0x04FF, it will reset the NSE01

  • INTMOD

Downlink Payload: 06000003, Set AT+INTMOD=3

2.6  ​LED Indicator

The NSE01 has an internal LED which is to show the status of different state. 

  • When power on, NSE01 will detect if sensor probe is connected, if probe detected, LED will blink four times. (no blinks in this step is no probe)
  • Then the LED will be on for 1 second means device is boot normally.
  • After NSE01 join NB-IoT network. The LED will be ON for 3 seconds.
  • For each uplink probe, LED will be on for 500ms.

2.7  Installation in Soil

Measurement the soil surface

Choose the proper measuring position. Avoid the probe to touch rocks or hard things. Split the surface soil according to the measured deep. Keep the measured as original density. Vertical insert the probe into the soil to be measured. Make sure not shake when inserting. https://img.alicdn.com/imgextra/i3/2005165265/O1CN010rj9Oh1olPsQxrdUK_!!2005165265.jpg

1657259653666-883.png ​

 

Dig a hole with diameter > 20CM.

Horizontal insert the probe to the soil and fill the hole for long term measurement.

1654506665940-119.png

 

2.8  ​Firmware Change Log

Download URL & Firmware Change log

Upgrade Instruction: Upgrade_Firmware

2.9  ​Battery Analysis

2.9.1  ​Battery Type

The NSE01 battery is a combination of an 8500mAh Li/SOCI2 Battery and a Super Capacitor. The battery is none-rechargeable battery type with a low discharge rate (<2% per year). This type of battery is commonly used in IoT devices such as water meter.

The battery is designed to last for several years depends on the actually use environment and update interval.  

The battery related documents as below:

image-20220708140453-6.png

2.9.2  Power consumption Analyze

Dragino battery powered product are all runs in Low Power mode. We have an update battery calculator which base on the measurement of the real device. User can use this calculator to check the battery life and calculate the battery life if want to use different transmit interval.

Instruction to use as below:

Step 1:  Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from: https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/

Step 2:  Open it and choose

  • Product Model

  • Uplink Interval

  • Working Mode

And the Life expectation in difference case will be shown on the right.

image-20220708141352-7.jpeg

2.9.3  ​Battery Note

The Li-SICO battery is designed for small current / long period application. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period time to transmit LoRa, then the battery life may be decreased.

2.9.4  Replace the battery

The default battery pack of NSE01 includes a ER26500 plus super capacitor. If user can't find this pack locally, they can find ER26500 or equivalence without the SPC1520 capacitor, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes).

3. ​ Access NB-IoT Module

Users can directly access the AT command set of the NB-IoT module.

The AT Command set can refer the BC35-G NB-IoT Module AT Command: https://www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/  

1657261278785-153.png

4.  Using the AT Commands

4.1  Access AT Commands

See this link for detail: https://www.dragino.com/downloads/index.php?dir=NB-IoT/NSE01/

AT+<CMD>?                    : Help on <CMD>

AT+<CMD>                      : Run <CMD>

AT+<CMD>=<value>      : Set the value

AT+<CMD>=?                  : Get the value

General Commands       

AT                            : Attention        

AT?                           : Short Help      

ATZ                          : MCU Reset     

AT+TDC                   : Application Data Transmission Interval

AT+CFG                   : Print all configurations

AT+CFGMOD           : Working mode selection

AT+INTMOD            : Set the trigger interrupt mode

AT+5VT                     : Set extend the time of 5V power   

AT+PRO                    : Choose agreement

AT+WEIGRE              : Get weight or set weight to 0

AT+WEIGAP              : Get or Set the GapValue of weight

AT+RXDL                   : Extend the sending and receiving time

AT+CNTFAC              : Get or set counting parameters

AT+SERVADDR          : Server Address

COAP Management       

AT+URI            : Resource parameters

UDP Management

AT+CFM          : Upload confirmation mode (only valid for UDP)

MQTT Management

AT+CLIENT               : Get or Set MQTT client

AT+UNAME             : Get or Set MQTT Username

AT+PWD                  : Get or Set MQTT password

AT+PUBTOPIC          : Get or Set MQTT publish topic

AT+SUBTOPIC          : Get or Set MQTT subscription topic

Information           

AT+FDR              : Factory Data Reset

AT+PWORD       : Serial Access Password

​5.  FAQ

5.1 ​ How to Upgrade Firmware

User can upgrade the firmware for 1) bug fix, 2) new feature release.

Notice, NSE01 and LSE01 share the same mother board. They use the same connection and method to update.

5.2  Can I calibrate NSE01 to different soil types?

NSE01 is calibrated for saline-alkali soil and loamy soil. If users want to use it for other soil, they can calibrate the value in the IoT platform base on the value measured by saline-alkali soil and loamy soil. The formula can be found at this link.

6.  Trouble Shooting

6.1  ​Connection problem when uploading firmware

 

6.2  AT Command input doesn't work

In the case if user can see the console output but can't type input to the device. Please check if you already include the ENTER while sending out the command. Some serial tool doesn't send ENTER while press the send key, user need to add ENTER in their string. 

 

7. ​ Order Info

Part Number: NSE01

 

8.  Packing Info

 

Package Includes:

  • NSE01 NB-IoT Soil Moisture & EC Sensor x 1
  • External antenna x 1

 

Dimension and weight:

  • Size: 195 x 125 x 55 mm
  • Weight:   420g

 

 

9.  Support

  • Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
  • Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to support@dragino.com
Tags:
Created by Xiaoling on 2022/07/11 11:09
    
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0