image-20230819102136-3.png

Table of Contents:

1. Introduction

1.1 What is S31x-NB NB-IoT Temperature & Humidity Sensor

The Dragino S31-NB and S31B-NB are 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 S31-NB 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.

S31-NB supports different uplink methods include TCP, MQTT, UDP for different application requirement. and Support Uplinks to various IoT Servers.

S31-NB is powered by 8500mAh 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 and uplink method. Please check related Power Analyze report).

*make sure you have NB-IoT coverage locally.

1692411831805-116.png

1.2 ​Features

  • NB-IoT Bands: B1/B2/B3/B4/B5/B8/B12/B13/B17/B18/B19/B20/B25/B28/B66/B70/B85 @H-FDD
  • Ultra-low power consumption
  • External 3 meters SHT31 probe (For S31-NB)
  • Measure range -40°C ~ 85°C
  • Temperature & Humidity alarm
  • Multiply Sampling and one uplink
  • Support Bluetooth v5.1 remote configure and update firmware
  • Uplink on periodically
  • Downlink to change configure
  • 8500mAh Battery for long term use
  • Nano SIM card slot for NB-IoT SIM

1.3 Specification

Common DC Characteristics:

  • Supply Voltage: 2.1v ~ 3.6v
  • Operating Temperature: -40 ~ 85°C

Temperature Sensor:

  • Range: -40 to + 80°C
  • Accuracy: ±0.2 @ 0-90 °C
  • Resolution: 0.1°C
  • Long Term Shift: <0.03 °C/yr

Humidity Sensor: 

  • Range: 0 ~ 99.9% RH
  • Accuracy: ± 2%RH ( 0 ~ 100%RH)
  • Resolution: 0.01% RH
  • Long Term Shift: <0.25 %RH/yr

NB-IoT Spec:

NB-IoT Module: BC660K-GL

Support Bands:

  • B1 @H-FDD: 2100MHz
  • B2 @H-FDD: 1900MHz
  • B3 @H-FDD: 1800MHz
  • B4 @H-FDD: 2100MHz
  • B5 @H-FDD: 860MHz
  • B8 @H-FDD: 900MHz
  • B12 @H-FDD: 720MHz
  • B13 @H-FDD: 740MHz
  • B17 @H-FDD: 730MHz
  • B18 @H-FDD: 870MHz
  • B19 @H-FDD: 870MHz
  • B20 @H-FDD: 790MHz
  • B25 @H-FDD: 1900MHz
  • B28 @H-FDD: 750MHz
  • B66 @H-FDD: 2000MHz
  • B70 @H-FDD: 2000MHz
  • B85 @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 Sleep mode and working mode

Deep Sleep Mode: Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.

Working Mode: In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.

1.6 Button & LEDs

1675071855856-879.png

Behavior on ACTFunctionAction
Pressing ACT between 1s < time < 3sSend an uplink

If sensor has already attached to NB-IoT network, sensor will send an uplink packet, blue led will blink once.
Meanwhile, BLE module will be active and user can connect via BLE to configure device.

Pressing ACT for more than 3sActive Device

Green led will fast blink 5 times, device will enter OTA mode for 3 seconds. And then start to  attach NB-IoT network.
Green led will solidly turn on for 5 seconds after joined in network.
Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device attach NB-IoT network or not.

Fast press ACT 5 times.Deactivate DeviceRed led will solid on for 5 seconds. Means device is in Deep Sleep Mode.

1.7 BLE connection

S31x-NB support BLE remote configure and firmware update.

BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:

  • Press button to send an uplink
  • Press button to active device.
  • Device Power on or reset.

If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.

1.8 Pin Definitions & Switch

S31x-NB use the mother board from S31-NB which as below.

image-20230819104805-5.png

1.8.1 Jumper JP2

Power on Device when put this jumper.

1.8.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.8.3 Reset Button

Press to reboot the device.

1.9 Hardware Variant

ModelPhotoProbe Info

S31-LB

image-20230819110632-6.png

1 x SHT31 Probe

Cable Length : 3 meters

 

S31B-LB

image-20230819110702-7.png

1 x SHT31 Probe

Installed in device.

 

2. Use S31-NB to communicate with IoT Server

2.1 Send data to IoT server via NB-IoT network

The S31-NB is equipped with a NB-IoT module, the pre-loaded firmware in S31-NB 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 S31-NB.

Below shows the network structure:

1692415924540-357.png

There are two version: -GE and -1D version of S31-NB.

GE Version: This version doesn’t include SIM card or point to any IoT server. User needs to use AT Commands to configure below two steps to set S31-NB send data to IoT server.

  1. Install NB-IoT SIM card and configure APN. See instruction of Attach Network.
  1. Set up sensor to point to IoT Server. See instruction of Configure to Connect Different Servers.  

Below shows result of different server as a glance.

ServersDash BoardComments
Node-Redimage-20230819113244-8.png 
DataCakeimage-20230819113244-9.png 
Tago.IO  
General UDPRaw Payload. Need Developer to design Dash Board 
General MQTTRaw Payload. Need Developer to design Dash Board 
ThingSpeakimage-20230819113244-10.png 
ThingsBoardimage-20230819113244-11.png 
   

1D Version: This version has 1NCE SIM card pre-installed and configure to send value to DataCake. User Just need to select the sensor type in DataCake and Activate S31-NB and user will be able to see data in DataCake. See here for DataCake Config Instruction.

2.2 ​Payload Types

To meet different server requirement, S31-NB supports different payload type.

Includes:

User can specify the payload type when choose the connection protocol. Example:

AT+PRO=2,0            // Use UDP Connection & hex Payload

AT+PRO=2,5            // Use UDP Connection & Json Payload

AT+PRO=3,5            // Use MQTT Connection & Json Payload

2.2.1 General Json Format (Type=5)

This is the General Json Format. As below:

{"IMEI":866207053462762,"temperature":29.2,"humidity":54.2,"battery":3.27,"signal":24,"Model":S31x-NB, "1":{28.2,48.3,2023/08/10 08:00:37},"2":{28.1,49.1,2023/08/10 07:57:37},"3":{28.1,48.5,2023/08/10 07:54:37},"4":{28.2,48.6,2023/08/10 07:51:37},"5":{28.1,48.9,2023/08/10 07:48:37},"6":{28.2,48.8,2023/08/10 07:45:37},"7":{28.2,48.8,2023/08/10 07:42:37},"8":{28.0,48.8,2023/08/10 07:39:37}}

Notice, from above payload:

  • Temperature , Humidity , Battery & Signal are the value at uplink time.
  • Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+NOUD=8  Command. Each entry includes (from left to right): Temperature, Humidity, Sampling time.

2.2.2 HEX format Payload(Type=0)

This is the HEX Format. As below:

f86620705346276200640cba16010000000011011801e864d49c2d011a01e364d49925011901eb64d49871011901e564d497bd011a01e664d49709011901e964d49655011a01e864d495a1011a01e864d494ed011801e864d49439

1692424009971-458.png

Version:

These bytes include the hardware and software version.

Higher byte: Specify Sensor Model: 0x00 for S31B-NB & S31-NB

Lower byte: Specify the software version: 0x64=100, means firmware version 100

BAT (Battery Info):

Ex1: 0x0CBA = 3258mV

Signal Strength:

NB-IoT Network signal Strength.

Ex1: 0x16 = 22

0        -113dBm or less

1        -111dBm

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

31      -51dBm or greater

99      Not known or not detectable

Temperature: 

If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree

If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.

(FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)

Humidity:   

Read:0295(H)=661(D)    Value:  661 / 10=66.1, So 66.1%

TimeStamp:   

Unit TimeStamp Example: 64d49439(H) = 1691653177(D)

Put the decimal value into this link(https://www.epochconverter.com/) to get the time.

2.2.3 ThingsBoard Payload(Type=3)

Type3 payload special design for ThingsBoard, it will also configure other default server to ThingsBoard.

{"IMEI":866207053462762,"temperature":29.2,"humidity":54.2,"battery":3.27,"signal":24}

2.2.4 ThingSpeak Payload(Type=1)

This payload meets ThingSpeak platform requirement. It includes only four fields. Form 1~4 are:

Temperature, Humidity, Battery & Signal. This payload type only valid for ThingsSpeak Platform

As below:

field1=27.9&field2=49.9&field3=3.23&field4=28

2.3 Test Uplink and Change Update Interval

By default, Sensor will send uplinks every 2 hours & AT+NOUD=8

User can use below commands to change the uplink interval.

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

User can also push the button for more than 1 seconds to activate an uplink.

To save battery life, S31-NB will sample temperature & humidity data every 15 minutes and send one uplink every 2 hours. So each uplink it will include 8 stored data + 1 real-time data. They are defined by:

  • AT+TR=900     //  The unit is seconds, and the default is to record data once every 900 seconds (15 minutes, 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.

The diagram below explains the relationship between TR, NOUD, and TDC more clearly:

IMG_256

2.5 Humidity and Temperature alarm function

On each sampling define by AT+TR ( default 900s or 15 minutes), when the value exceed the range, it will trigger an Alarm and immediately sends a uplink. 

AT Commands:

AT+ SHHUM=min,max

Example: AT+ SHHUM=50,80 // Alarm when humidity lower than 50 or higher than 80.

AT+ SHTEMP=min,max

Example: AT+ SHTEMP=20,30 // Alarm when temperature lower than 20 or higher than 30

Notice:

  • To disable Alarm, user can set min and max to same value , such as AT+SHTEMP=0,0.
  • If user only want to send only min or max, user can set the alarm to a value that device won’t reach. For example: AT+SHTEMP=-80,0.

2.6 Trggier an uplink by external interrupt

S31-NB has an external trigger interrupt function. Users can use the PB15 pin to trigger the upload of data packets.

AT command:

  • AT+INTMOD   // Set the trigger interrupt mode
  • AT+INTMOD=0    //Disable Interrupt
  • AT+INTMOD=1   //Trigger by rising and falling edge
  • AT+INTMOD=2   //Trigger by falling edge
  • AT+INTMOD=3    //Trigger by rising edge

3. Configure S31x-NB

3.1 Configure Methods

S31x-NB supports below configure method:

3.2 General Commands

These commands are to configure:

  • General system settings like: uplink interval.
  • LoRaWAN protocol & radio related command.

They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:

http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/

3.3 Commands special design for S31x-LB

These commands only valid for S31x-LB, as below:

3.3.1 Set Transmit Interval Time

Feature: Change LoRaWAN End Node Transmit Interval.

AT Command: AT+TDC

Command ExampleFunctionResponse
AT+TDC=?Show current transmit Interval

30000
OK
the interval is 30000ms = 30s

AT+TDC=60000Set Transmit Interval

OK
Set transmit interval to 60000ms = 60 seconds

Downlink Command: 0x01

Format: Command Code (0x01) followed by 3 bytes time value.

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

  • Example 1: Downlink Payload: 0100001E       //  Set Transmit Interval (TDC) = 30 seconds
  • Example 2: Downlink Payload: 0100003C       //  Set Transmit Interval (TDC) = 60 seconds

3.3.2 Get Device Status

Send a LoRaWAN downlink to ask device send Alarm settings.

Downlink Payload:  0x26 01

Sensor will upload Device Status via FPORT=5. See payload section for detail.

3.3.3 Set Temperature Alarm Threshold

  • AT Command:

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=0,30   // Alarm when temperature higher than 30.

  • Downlink Payload:

0x(0C 01 00 1E)       // Set AT+SHTEMP=0,30

(note: 3rd byte= 0x00 for low limit(not set), 4th byte = 0x1E for high limit: 30)

3.3.4 Set Humidity Alarm Threshold

  • 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=70,0      // Alarm when humidity lower than 70%.

  • Downlink Payload:

0x(0C 02 46 00)         // Set AT+SHTHUM=70,0

(note: 3rd byte= 0x46 for low limit (70%), 4th byte = 0x00 for high limit (not set))

3.3.5 Set Alarm Interval

The shortest time of two Alarm packet. (unit: min)

  • AT Command:

AT+ATDC=30       // The shortest interval of two Alarm packets is 30 minutes, Means is there is an alarm packet uplink, there won't be another one in the next 30 minutes.

  • Downlink Payload:

0x(0D 00 1E)     --->  Set AT+ATDC=0x 00 1E = 30 minutes

3.3.6 Get Alarm settings

Send a LoRaWAN downlink to ask device send Alarm settings.

  • Downlink Payload:  0x0E 01

Example:

image-20230524110211-4.png

Explain:

  • Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message.

3.3.7 Set Interrupt Mode

Feature, Set Interrupt mode for PA8 of pin.

When AT+INTMOD=0 is set, PA8 is used as a digital input port.

AT Command: AT+INTMOD

Command ExampleFunctionResponse
AT+INTMOD=?Show current interrupt mode

0
OK
the mode is 0 =Disable Interrupt

AT+INTMOD=2

Set Transmit Interval
0. (Disable Interrupt),
1. (Trigger by rising and falling edge)
2. (Trigger by falling edge)
3. (Trigger by rising edge)

OK

Downlink Command: 0x06

Format: Command Code (0x06) followed by 3 bytes.

This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.

  • Example 1: Downlink Payload: 06000000       //  Turn off interrupt mode
  • Example 2: Downlink Payload: 06000003      //   Set the interrupt mode to rising edge trigger

3.3.8 Set Power Output Duration

Control the output duration 5V . Before each sampling, device will

1. first enable the power output to external sensor,

2. keep it on as per duration, read sensor value and construct uplink payload

3. final, close the power output.

AT Command: AT+5VT

Command ExampleFunctionResponse
AT+5VT=?Show 5V open time.0 (default)
OK
AT+5VT=1000Close after a delay of 1000 milliseconds.OK

Downlink Command: 0x07

Format: Command Code (0x07) followed by 2 bytes.

The first and second bytes are the time to turn on.

  • Example 1: Downlink Payload: 070000     --->   AT+5VT=0
  • Example 2: Downlink Payload: 0701F4      --->  AT+5VT=500

4. Battery & Power Consumption

S31x-LB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.

Battery Info & Power Consumption Analyze .

5. OTA Firmware update

User can change firmware S31x-LB to:

  • Change Frequency band/ region.
  • Update with new features.
  • Fix bugs. 

Firmware and changelog can be downloaded from : Firmware download link

Methods to Update Firmware:

6. FAQ

7. Order Info

Part Number: S31-LB-XX  / S31B-LB-XX

XX: The default frequency band

  • AS923: LoRaWAN AS923 band
  • AU915: LoRaWAN AU915 band
  • EU433: LoRaWAN EU433 band
  • EU868: LoRaWAN EU868 band
  • KR920: LoRaWAN KR920 band
  • US915: LoRaWAN US915 band
  • IN865: LoRaWAN IN865 band
  • CN470: LoRaWAN CN470 band

8. ​Packing Info

Package Includes:

  • S31x-LB LoRaWAN Temperature & Humidity Sensor

Dimension and weight:

  • Device Size: cm
  • Device Weight: g
  • Package Size / pcs : cm
  • Weight / pcs : g

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.cc.

   

Tags:
    
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0