N95S31B NB-IoT Temperature & Humidity Sensor User Manual
Table of Contents:
- 1. Introduction
- 2. Use N95S31B to communicate with IoT Server
- 2.1 How it works
- 2.2 Configure the N95S31B
- 2.2.1 Power On N95S31B
- 2.2.1 Test Requirement
- 2.2.3 Insert SIM card
- 2.2.4 Connect USB – TTL to N95S31B to configure it
- 2.2.5 Use CoAP protocol to uplink data
- 2.2.6 Use UDP protocol to uplink data(Default protocol)
- 2.2.7 Use MQTT protocol to uplink data
- 2.2.8 Use TCP protocol to uplink data
- 2.2.9 Change Update Interval
- 2.3 Uplink Payload
- 2.4 Downlink Payload
- 2.5 Humidity and Temperature alarm function
- 2.6 Set the number of data to be uploaded and the recording time
- 2.7 Read or Clear cached data
- 2.8 Battery Analysis
- 3. Access NB-IoT Module
- 4. Using the AT Commands
- 5. FAQ
- 6. Trouble Shooting
- 7. Order Info
- 8. Packing Info
- 9. Support
1. Introduction
1.1 What is N95S31B NB-IoT Sensor Node
The Dragino N95S31B is a NB-IoT Temperature and Humidity Sensor for Internet of Things solution. It is used to measure the surrounding environment temperature and relative air humidity precisely, and then upload to IoT server via NB-IoT network*.
The temperature & humidity sensor used in N95S31B is SHT31, which is fully calibrated, linearized, and temperature compensated digital output from Sensirion, it provides a strong reliability and long-term stability. The SHT31 is fixed in a waterproof anti-condensation casing for long term use.
N95S31B supports different uplink methods include TCP, MQTT, UDP and CoAP for different application requirement.
N95S31B is powered by8500mAh Li-SOCI2 battery, It is designed for long term use up to several years. (Real-world battery life depends on the use environment, update period. Please check related Power Analyze report).
* make sure you have NB-IoT coverage locally.
1.2 Features
- NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
- Monitor Temperature & Humidity via SHT31
- AT Commands to change parameters
- Uplink on periodically
- Downlink to change configure
- 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
Common DC Characteristics:
- Supply Voltage: 2.1v ~ 3.6v
- Operating Temperature: -40 ~ 85°C
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
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
N95S31B use the mother board from NBSN95 which as below.
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:
- When boot the device in flash mode
- Send an uplink packet
2. Use N95S31B to communicate with IoT Server
2.1 How it works
The N95S31B is equipped with a NB-IoT module, the pre-loaded firmware in N95S31B 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 N95S31B.
The diagram below shows the working flow in default firmware of N95S31B:
2.2 Configure the N95S31B
2.2.1 Power On N95S31B
2.2.1 Test Requirement
To use N95S31B 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 N95S31B 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.
N95S31B supports different communication protocol such as :
CoAP (120.24.4.116:5683)
raw UDP (120.24.4.116:5601)
MQTT (120.24.4.116:1883)
TCP (120.24.4.116:5600)
We will show how to use with each protocol. The IP addresses above are our test server. User need to change to point their corresponding server.
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:
2.2.4 Connect USB – TTL to N95S31B to configure it
User need to configure N95S31B via serial port to set the Server Address / Uplink Topic to define where and how-to uplink packets. N95S31B support AT Commands, user can use a USB to TTL adapter to connect to N95S31B and use AT Commands to configure it, as below.
Connection:
USB TTL GND <----> GND
USB TTL TXD <----> UART_RXD
USB TTL RXD <----> UART_TXD
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 N95S31B. N95S31B will output system info once power on as below, we can enter the password: 12345678 to access AT Command input.
Note: the valid AT Commands can be found at: https://www.dropbox.com/sh/mlpd6l05bogvaf6/AABwAJLMttqG7i--AyZcQkoua?dl=0
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
After configure the server address and reset the device (via AT+ATZ ), NDDS75 will start to uplink sensor values to CoAP server.
2.2.6 Use UDP protocol to uplink data(Default protocol)
- 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
2.2.7 Use MQTT protocol to uplink data
N95S31B 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=f9527 //Set the sending topic of MQTT
- AT+SUBTOPIC=Ns9527 //Set the subscription topic of MQTT
To save battery life, N95S31B 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 high-power consumption compare vs UDP / CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval.
2.2.8 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
2.2.9 Change Update Interval
User can use below command to change the uplink interval.
- AT+TDC=600 // Set Update Interval to 600s
NOTE: Since firmware version is v1.2:
By default, the device will send an uplink message every 2 hours. Each Uplink Include 8 set of records in this 2 hour (15 minute interval / record).
2.3 Uplink Payload
N95S31B has different working modes for the connections of different types of sensors. This section describes these modes. User can use the AT Command AT+MOD to set NBSN95 to different working modes.
For example:
AT+CFGMOD=2 //will set the N95S31B to work in MOD=2 distance mode which target to measure distance via Ultrasonic Sensor.
The uplink payloads are composed in ASCII String. For example:
0a cd 00 ed 0a cc 00 00 ef 02 d2 1d (total 24 ASCII Chars) . Representative the actually payload:
0x 0a cd 00 ed 0a cc 00 00 ef 02 d2 1d Total 12 bytes
NOTE:
All modes share the same Payload Explanation from HERE.
By default, the device will send an uplink message every 1 hour.
2.3.1 Payload Analyze
2.3.1.1 Before Firmware v1.2
N95S31B uplink payload includes in total 21 bytes
Size(bytes) | 6 | 2 | 2 | 1 | 1 | 5 | 2 | 2 |
---|---|---|---|---|---|---|---|---|
Value | Device ID | Ver | BAT | Signal Strength | MOD 0X01 | Reserve/ Same as NBSN95 CFGMOD=1 No function here. | By SHT31 | By SHT31 |
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NB sensor uplink data.
The payload is ASCII string, representative same HEX: 0x724031607457006e0ccd1b0100dc000ccc00e10186 where:
- Device ID: 0x724031607457 = 724031607457
- Version: 0x006e=110=1.1.0
- BAT: 0x0ccd = 3277 mV = 3.277V
- Signal: 0x1b = 27
- Model: 0x01 = 1
- 0x00dc000ccc= reserve, ignore in N95S31B
- Temperature by SHT31: 0x00e1 = 225 = 22.5 °C
- Humidity by SHT31: 0x0186 = 390 = 39.0 %rh
2.3.1.2 Since Firmware v1.2
In this mode, uplink payload includes 91 bytes in total by default.
Each time the device uploads a data package, 8 sets of recorded data will be attached. Up to 32 sets of recorded data can be uploaded.
Size(bytes) | 8 | 2 | 2 | 1 | 1 | 2 | 1 | 2 | 2 | 2 | 4 | 2 | 2 | 4 |
Value | Device ID | Ver | BAT | Signal Strength | MOD | TemDS18B20 | Interrupt | ADC | SHTTEM | SHTHUM | Time stamp | SHTTEM | SHTHUM | Time stamp ..... |
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the N95S31B uplink data.
The payload is ASCII string, representative same HEX:
0xf868411056758782000c0d0f0c0100000000300114023163199d3c0113023163199d120113023163199c5e0112023763199baa0112023263199af60111023b631999a70112023b631998f3011202426319983f01110242631996eb where:
- Device ID: f868411056758782 = f868411056758782
- Version: 0x000c=120=1.2
- BAT: 0x0d0f = 3343 mV = 3.343V
- Singal: 0x0c = 12
- Mod: 0x01 = 1
- TemDS18B20: 0x0000= 0 = 0
- Interrupt: 0x00= 0
- adc: 0x0030= 48
- SHTTEM: 0x0114= 276 = 27.6
- SHTHUM:0x0231 =561=56.1%
- Time stamp : 0x6315537b =1662342011 (Unix Epoch Time)
- SHTTEM,SHTHUM,Time stamp : 0113023163199d12
- 8 sets of recorded data: SHTTEM,SHTHUM,Time stamp : 0113023163199c5e,.......
2.3.2 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.
NOTE: When the firmware version is v1.2 and later firmware:
By default, the Device ID equal to the last 15 bits of IMEI.
User can use AT+DEUI to set Device ID
Example:
AT+DEUI=868411056754138
2.3.3 Version Info
These bytes include the hardware and software version.
Higher byte: Specify hardware version: always 0x00 for N95S31B
Lower byte: Specify the software version: 0x6E=110, means firmware version 110
For example: 0x00 6E: this device is N95S31B with firmware version 110.
2.3.4 Battery Info
Ex1: 0x0B45 = 2885mV
Ex2: 0x0B49 = 2889mV
2.3.5 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.3.6 Temperature & Humidity
The device will be able to get the SHT31 temperature and humidity data now and upload to IoT Server.
Convert the read byte to decimal and divide it by ten.
Example:
Temperature: Read:00ec (H) = 236(D) Value: 236 /10=23.6℃
Humidity: Read:0295(H)=661(D) Value: 661 / 10=66.1, So 66.1%
2.4 Downlink Payload
By default, N95S31B prints the downlink payload to console port.
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 N95S31B
- INTMOD
Downlink Payload: 06000003, Set AT+INTMOD=3
2.5 Humidity and Temperature alarm function
➢ AT Command:
AT+ SHHUM=min,max
² When min=0, and max≠0, Alarm higher than max
² When min≠0, and max=0, Alarm lower than min
² When min≠0 and max≠0, Alarm higher than max or lower than min
Example:
AT+ SHHUM=50,80 // Alarm when humidity lower than 50.
AT+ SHTEMP=min,max
² When min=0, and max≠0, Alarm higher than max
² When min≠0, and max=0, Alarm lower than min
² When min≠0 and max≠0, Alarm higher than max or lower than min
Example:
AT+ SHTEMP=20,30 // Alarm when temperature lower than 20.
2.6 Set the number of data to be uploaded and the recording time
➢ AT Command:
- AT+TR=900 // The unit is seconds, and the default is to record data once every 900 seconds.( The minimum can be set to 180 seconds)
- AT+NOUD=8 // The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
This link explains the relationship between TR, NOUD and TDC more clearly : https://www.processon.com/view/link/6340e606e401fd390891af87
2.7 Read or Clear cached data
➢ AT Command:
- AT+CDP // Read cached data
- AT+CDP=0 // Clear cached data
2.8 Battery Analysis
2.8.1 Battery Type
The N95S31B 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:
2.8.2 Power consumption Analyze
The file DRAGINO_N95S31B-Power-Analyzer.pdf from https://www.dropbox.com/sh/mlpd6l05bogvaf6/AABwAJLMttqG7i--AyZcQkoua?dl=0 describes a detail measurement to analyze the power consumption in different case. User can use it for design guideline for their project.
2.8.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 uplink data, then the battery life may be decreased.
2.8.4 Replace the battery
You can change the battery in the N95S31B.The type of battery is not limited as long as the output is between 3v to 3.6v. On the main board, there is a diode (D1) between the battery and the main circuit. If you need to use a battery with less than 3.3v, please remove the D1 and shortcut the two pads of it so there won't be voltage drop between battery and main board.
The default battery pack of N95S31B 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/
4. Using the AT Commands
4.1 Access AT Commands
See NBSN95 AT Command in this link for detail: https://www.dropbox.com/sh/jao1xt9kw5r3yq4/AAAMpJkZzExF2JLbRWxGoQ9Na?dl=0
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
AT+TR : Get or Set record time
AT+APN : Get or set the APN
AT+FBAND : Get or Set whether to automatically modify the frequency band
AT+DNSCFG : Get or Set DNS Server
AT+GETSENSORVALUE : Returns the current sensor measurement
AT+NOUD : Get or Set the number of data to be uploaded
AT+CDP : Read or Clear cached data
AT+SHTEMP: Get or Set alarm of temp
AT+SHHUM: Get or Set alarm of moisture
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.
Please see this link for how to upgrade: http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList
Notice, N95S31B and LSN50v2 share the same mother board. They use the same connection and method to update.
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: N95S31B-YY
8. Packing Info
Package Includes:
- N95S31B NB-IoT Temperature and Humidity Sensor
- External antenna x 1
Dimension and weight:
- Device Size: 13.0 x 5 x 4.5 cm
- Device Weight: 150g
- Package Size / pcs : 14.0 x 8x 5 cm
- Weight / pcs : 180g
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