Rejeee Temp& Humid Sensor → TTS V.3 →Telegraf →Influxdb 2.x

  1. Specification เบื้องต้น

Rejeee LoRaWAN SL101AS-TH เป็นเซ็นเซอร์อุณหภูมิและความชื้น มากับจอ E-paper 2.9 นิ้ว เป็นอุปกรณ์ที่ผ่าน กสทช. แล้ว กำลังส่งต่ำกว่า 500mW ผู้ใช้สามารถซื้อไปใช้งานได้ ไม่ต้องมีใบอนุญาติใช้/ตั้งสถานี จาก กสทช. อุปกรณ์นี้สามารถใช้ได้กับ The Things Network, Chirpstack หรือ Helium

คุณสมบัติทางเทคนิค
- LoRaWAN 1.0.3 Class A/C
- ใช้ลิเธียมแบต 5400mAh ใช้ได้นานถึง 5 ปี (ส่งข้อมูลทุก 30 นาที) ผู้ผลิตบอกว่าใช้ได้ถึง 10 ปีหากตั้งส่งเว้นช่วงห่างมากขึ้นอีก แบตเป็นแบบไม่สามารถ Charge ได้ ไฟหมดแล้วต้องหาก้อนใหม่ใช้แทน
- มี Port USB Type C สำหรับปรับตั้งค่าหรือใช้ป้อนไฟเลี้ยงจากภายนอก
- สามารถเปลี่ยน Logo และ Weblink
- ใช้ Chip Semtech SX1262 และ Sensirion STH 30
- ช่วงวัดอุณหภูมิ -45℃~+ 85℃ (±0.3℃)
- ช่วงวัดความชื้น 0–100%RH (±3%RH)
- ความถี่ 923–925Mhz
- TX Power 25dBm (316mW)
- ขนาด 102mm*60mm*25mm

2. การดูค่า Config ที่ตั้งไว้ในตัวอุปกรณ์ Sensor

เสียบสาย USB Type C เข้ากับ Rejeee Sensor จะเห็น COM3 Port เพิ่มขึ้นใน Device Manager ตามภาพ

หากไม่เห็น COM Port อาจจะเกิดจาก ไม่ได้ติดตั้งตัว Driver CH340 หรือสาย USB Type C มีปัญหา ให้ลองหาสาย Type C เส้นใหม่ที่รองรับ Data มาใช้แทน

ถ้าเกิดจากไม่ได้ติดตั้ง Driver ให้ Download USB-to-Serial Driver มาติดตั้ง ตามลิ้งค์ http://doc.rejeee.com/web/#/29?page_id=200

ใช้โปรแกรม Sensor tool เพื่ออ่านค่าความถี่ในการส่งข้อมูล ค่า Key ต่างๆ คือ DevEUI, AppEUI, Appkey ซึ่งจะเก็บไว้ในหน่วยความจำของอุปกรณ์ ให้ใช้สาย USB Type C เสียบเข้ากับ Sensor และให้ Download Sensor tools ได้จากเวป http://doc.rejeee.com/web/#/29?page_id=200 สามารถตั้งค่าอื่นๆ อีก เช่น ค่า Uplink Period กรณีตั้งไว้ 600 วินาที หรือ คือ 10 นาที ซึ่ง Sensor นี้จะส่งข้อมูลทุก 10 นาที เป็นต้น

เรียกใช้โปรแกรมแล้วเลือก com port ที่ต่อกับ Sensor เลือกเสร็จให้คลิก Open UART แล้วคลิก ReadConfig ด้านล่าง

จะเห็น DevEUI, AppEUI, Appkey เพื่อนำไปเพิ่ม Device ตามตัวอย่าง เช่น

AppEUI CACBB80000000001 (JoinEUI)

DevEUI CACBB8010000322F

AppKey 11223344556677889900AABBCCDDEEFF

3.Add Application

เปิด TheThingsNetwork Console

คลิกที่ Go to applications คลิก Add Application

ป้อนข้อมูล Application ที่ต้องการ แล้วกด Create Appication

4.คลิก Add end device

เลือก Enter end device specifics manually และป้อนค่าอื่นๆ รวมถึงค่า AppEUI ในช่อง JoinEUI แล้วคลิก Confirm

จะมีช่องว่างให้เติมเพิ่มคือ DevEUI และ Appkey

เมื่อนำค่าต่างๆ ป้อนครบแล้วให้คลิก Register end device

5. กำหนด Uplink Payload formatters

ให้เพิ่ม Uplink Payload formatters ดังต่อไปนี้

function decodeUplink(input) {
var obj = {};
var warnings = [];
obj.battery = (input.bytes[1]&0x1F);
obj.vol = (input.bytes[2]);
obj.temperature = (((input.bytes[4] & 0x80 ? input.bytes[4] - 0x100 : input.bytes[4]) << 8)
+
input.bytes[5]) / 10;
obj.humidity = input.bytes[7];
if (obj.temperature < -10) {
warnings.push("it's cold");
}
return {
data: obj,
warnings: warnings
};
}

6.เปิดเครื่อง Sensor โดยกด switch ค้างไว้ประมาณ 7 วินาทีจนหน้าจอกระพริบ

เมื่อ Join สำเร็จตรง Live Data ของ End Device จะมีข้อมูลเข้า หากต้องการส่งทันทีไม่ต้องรอครบเวลาที่ตั้งไว้ให้ กด switch 1 ครั้ง

จะเห็นค่า Voltage ของ แบตเตอรี่ , ความชื้นและอุณหภูมิ

ด้านล่างจอด้านซ้ายบรรทัดแรกจะแสดง 4 Digit หลังของ DevEUI

ด้านล่างจอด้านซ้ายบรรทัดที่สองจะแสดง DevAddr

วิธีดึงค่าจาก TTN มาเก็บไว้บน Privated Influxdb

สร้าง File telegraf.conf ดังต่อไปนี้

[global_tags]
[agent]
interval = "5s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "5s"
flush_interval = "10s"
flush_jitter = "5s"
precision = ""
hostname = ""
omit_hostname = false
debug = true
quiet = false
[[outputs.influxdb_v2]]
urls = ["http://192.168.1.100:8086"]
token = vuJ2lLosCTfdtIX5nBrpLv1YID3HPg=="
organization = "influxdata"
bucket = "tablerejeee"
[[inputs.mqtt_consumer]]
name_override = "TTN"
servers = ["tcp://eu1.cloud.thethings.network:1883"]
qos = 0
connection_timeout = "30s"
topics = [ "v3/myrejeee@ttn/devices/+/up" ]
client_id = "ttn"
username = "myrejeee@ttn"
password = "NNSXS.KNP5SWKDYFEQMYBW4SWH3IUHLBOUCNZP3ADELRXIGOQ"
data_format = "json"

คำสั่งทดสอบ telegraf.conf คือ

$ sudo docker exec -it telegraf telegraf — debug -test

ไฟล์ telegraf.conf จะมีสามส่วนหลักๆ คือ
1.กำหนดค่าทั่วไป
2.กำหนดค่าสำหรับดึงข้อมูล (Input)
3.กำหนดค่าสำหรับเขียนข้อมูล(Output)

Input Parameters

จะได้มาจาก TTS V.3 ในส่วน MQTT Integrations ของ Device

ค่าที่ต้องใช้คือ username และ password

User Name จะนำไปแทรกใน topics ด้วย เช่น

topics = [ “v3/myrejeee@ttn/devices/+/up” ]

Output Parameters

จะได้มาจาก Influxdb

ค่าที่ใช้คือ token, organization, bucket

เมื่อสร้างและแก้ไขไฟล์ telegraf.conf เสร็จให้สร้าง Container Docker ด้วยคำสั่ง

docker run -d \
--name=telegraf \
--hostname=telegraf \
--user telegraf:$(stat -c '%g' /var/run/docker.sock) \
-p 8125:8125/udp \
-p 8092:8092/udp \
-p 8094:8094 \
-v $PWD/telegraf.conf:/etc/telegraf/telegraf.conf:ro \
-v /var/run/docker.sock:/var/run/docker.sock \
-e TZ=Etc/GMT+7 \
--restart unless-stopped \
telegraf

เรียก ดู Log ของ Telegraf

docker logs telegraf

ถ้าทำงานปรกติ จะมีบรรทัด Wrote batch แสดง

2022–07–19T05:17:38Z D! [outputs.influxdb_v2] Buffer fullness: 0 / 10000 metrics
2022–07–19T05:17:50Z D! [outputs.influxdb_v2] Wrote batch of 2 metrics in 15.606133ms
2022–07–19T05:17:50Z D! [outputs.influxdb_v2] Buffer fullness: 0 / 10000 metrics
2022–07–19T05:18:02Z D! [outputs.influxdb_v2] Buffer fullness: 0 /
2022–07–19T05:19:25Z D! [outputs.influxdb_v2] Wrote batch of 1 metrics in 16.974467ms
2022–07–19T05:19:25Z D! [outputs.influxdb_v2] Buffer fullness: 0 / 10000 metrics
10000 metrics
2022–07–19T05:21:07Z D! [outputs.influxdb_v2] Wrote batch of 1 metrics in 18.866991ms
2022–07–19T05:21:07Z D! [outputs.influxdb_v2] Buffer fullness: 0 / 10000 metrics
2022–07–19T05:21:20Z D! [outputs.influxdb_v2] Buffer fullness: 0 / 10000 metrics

วิธีดูข้อมูลใน Influxdb

ข้อมูลจะไปอยู่ในชื่อ Bucket ที่เราเลือก และ Measurement อยู่ ใน client_id เช่น ttn ที่เรากำหนด

โดยจะมี Field จาก Sensor Rejeee ดังนี้

uplink_message_decoded_payload_battery
uplink_message_decoded_payload_humidity
uplink_message_decoded_payload_temperature
uplink_message_decoded_payload_vol

นอกจากนั้นยังมี Field อื่นๆ อีกหลาย Filed ซึ่งมาจาก Metadata ของ Gateway

เราสามารถสร้าง Dashboard ใน Influxdb ได้ตามรูป

--

--

Somsak Lima
Somsak Lima

Written by Somsak Lima

สนับสนุนและส่งเสริมให้ผู้สนใจสามารถใช้งานเทคโนโลยี LoRa และ LoRaWAN ได้ โดยนำความรู้ที่ได้ไปต่อยอดเพื่อใช้งาน

No responses yet