<
From version < 80.1 >
edited by Kilight Cao
on 2022/11/08 17:21
To version < 86.1 >
edited by Kilight Cao
on 2022/11/08 17:59
>
Change comment: Uploaded new attachment "Log-Temperature-Sensor-and-send-data-to-node-red.json", version {1}

Summary

Details

Page properties
Content
... ... @@ -289,18 +289,20 @@
289 289  [[image:image-20221104102736-3.png||height="282" width="723"]]
290 290  
291 291  
292 -The user can run the AT command to set the LG01-V2 RX window always open as a Receiver, the LA66 Shield uses **AT+SEND=1,hello world,2,3** to simulate sending data,
292 +The user can run the AT command to set the LG01-V2 RX window always open as a Receiver, The LG01-V2 can display the received data in the built-in server Node-Red, Here are the specific steps:
293 293  
294 -**Prerequisites: **The configuration of LG01-V2 and  LA66 Shield must match, users can use **AT+CFG** to check all configurations.
294 +(% style="color:red" %)**Prerequisites: **(%%)The configuration of LG01-V2 and  LA66 Shield must match and the LA66 Shield firmware is **[[LA66 Peer-to-Peer firmware>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LA66%20LoRaWAN%20Shield%20User%20Manual/Instruction%20for%20LA66%20Peer%20to%20Peer%20firmware/]]**, users can use **AT+CFG** to check all configurations.
295 295  
296 296  
297 -(% style="color:red; font-weight:bold" %)**LG01-V**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)**
297 +=== **Log Temperature Sensor(DHT11) and send data to LG01v2, show it in Node-RED.** ===
298 298  
299 299  
300 -**LG01-V2 configuration:**
300 +(% style="color:red; font-weight:bold" %)**LG01-V**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)**
301 301  
302 302  (% class="box infomessage" %)
303 303  (((
304 +**LG01-V2 configuration:**
305 +
304 304  AT+FRE=868.100,868.100  ~-~--> TX and RX frequency set: 868100000
305 305  AT+BW=0,0  ~-~--> TX and RX Bandwidth set: 125kHz
306 306  AT+SF=12,12  ~-~--> TX and RX Spreading Factor set: SF12
... ... @@ -310,31 +310,83 @@
310 310  AT+CR=1,1  ~-~--> TX and RX Coding Rate
311 311  AT+IQ=0,0  ~-~--> TX and RX InvertIQ
312 312  AT+PREAMBLE=8,8  ~-~--> TX and RX Preamble Length set: 8
313 -AT+SYNCWORD=0  ~-~-->  Syncword**(0: private,1: public), **the corresponding Lora shield syncword is 0x12
315 +AT+SYNCWORD=0  ~-~-->  Syncword**(0: private,1: public)**
314 314  AT+RXMOD=65535,0  ~-~-->  Rx Timeout and Reply mode, RX window always open
315 -AT+RXDAFORM=1    
316 316  )))
317 317  
318 -[[image:image-20221102140053-4.png]]
319 319  
320 +(% style="color:red" %)**LA66 Shield as Sender: **
320 320  
321 -(% style="color:red" %)**LA66 Shield as Sender: (AT+SEND=1,hello world,2,3)**
322 +(% class="box infomessage" %)
323 +(((
324 +**LA66 Shield configuration:**
322 322  
323 -[[image:1667456058832-484.png||height="291" width="353"]]
326 +AT+FRE=868.100,868.100  ~-~--> TX and RX frequency set: 868100000
327 +AT+BW=0,0  ~-~--> TX and RX Bandwidth set: 125kHz
328 +AT+SF=12,12  ~-~--> TX and RX Spreading Factor set: SF12
329 +AT+POWER=14  ~-~--> TX Power Range set: 14dBm
330 +AT+CRC=1,1  ~-~--> TX and RX CRC Type
331 +AT+HEADER=0,0  ~-~--> TX and RX Header Type
332 +AT+CR=1,1  ~-~--> TX and RX Coding Rate
333 +AT+IQ=0,0  ~-~--> TX and RX InvertIQ
334 +AT+PREAMBLE=8,8  ~-~--> TX and RX Preamble Length set: 8
335 +AT+SYNCWORD=0  ~-~-->  Syncword**(0: private,1: public)**
336 +AT+RXMOD=6,0  ~-~-->  Rx Timeout and Reply mode
337 +)))
338 +)))
324 324  
325 325  
326 -Instruction for Peer-to-Peer firmware:[[ **Instruction **>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LA66%20LoRaWAN%20Shield%20User%20Manual/Instruction%20for%20LA66%20Peer%20to%20Peer%20firmware/]]
341 +After the above configuration is complete, users can send test simulation data to check whether the configuration is correct, In LA66 sheild serial console send:(% style="color:red" %)**(AT+SEND=1,hello world,2,3).**
342 +
343 +When LG01-V2 replies with ACK when it receives a packet sent by LA66 sheild.
344 +
345 +[[image:image-20221108164413-2.png]]shield
346 +
347 +
348 +In the real-time log of LG01-V2:
349 +
350 +[[image:image-20221108170314-3.png]]
351 +
352 +
353 +**Hardware Connection**
354 +
355 +(% class="box infomessage" %)
356 +(((
357 +**The DHT11 sensor connects to the LA66 Shield:**
358 +
359 +**VCC  <~-~--> 3.3V (Red line)**
360 +**DATA <~-~--> PIN8 (Purple line)**
361 +**GND  <~-~--> GND (White line)**
327 327  )))
328 328  
364 +[[image:image-20221108170731-5.png||height="588" width="441"]]
329 329  
330 -Users can import this example in node-red: **[[attach:serial USB.json||target="_blank"]]**
331 331  
332 -[[image:image-20221104100520-2.png||height="605" width="1150"]]
367 +**1.  open Arduino IDE**
333 333  
369 +[[image:image-20221108172149-6.png||height="650" width="542"]]
334 334  
335 -= (% style="color:inherit; font-family:inherit; font-size:29px" %)**6. How users can access LG01**(%%)**-V​​​​​​​(% style="color:inherit; font-family:inherit; font-size:29px" %)2 using serial USB(%%)** =
336 336  
372 +**2.  Open project**
337 337  
374 +Users can download Arduino files from this link: [[attach:Log-Temperature-Sensor-and-send-data-to-Node-red.ino||target="_blank"]]
375 +
376 +Then click Compile and Upload to LA66 Shield,
377 +
378 +[[image:image-20221108172432-7.png]]
379 +
380 +
381 +3.
382 +
383 +The LA66 Shield reads the temperature and humidity data from the sensor and sends it to LG01V2,
384 +
385 +Users can import this example in node-red:
386 +
387 +
388 +
389 += (% style="color:inherit; font-family:inherit; font-size:29px" %)**6. How users can access LG01**(%%)**-V(% style="color:inherit; font-family:inherit; font-size:29px" %)2 using serial USB(%%)** =
390 +
391 +
338 338  (% style="color:blue" %)**USB TTL to LG01-V2  Connection:**
339 339  
340 340  
... ... @@ -407,7 +407,7 @@
407 407  [[image:image-20221101161951-3.png]]
408 408  
409 409  
410 -**Test the LG01-V​​​​​​​2 to send data:**
464 +**Test the LG01-V2 to send data:**
411 411  
412 412  [[image:image-20221101162527-4.png]]
413 413  
Log-Temperature-Sensor-and-send-data-to-Node-red.ino
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +3.6 KB
Content
... ... @@ -1,0 +1,150 @@
1 +#include <SoftwareSerial.h>
2 +#include <Adafruit_Sensor.h>
3 +#include <DHT.h>
4 +#include <DHT_U.h>
5 +/*
6 +
7 +*/
8 +#define DHTPIN 8 // Digital pin connected to the DHT sensor
9 +#define DHTTYPE DHT11 // DHT 11
10 +DHT_Unified dht(DHTPIN, DHTTYPE);
11 +
12 +String inputString = ""; // a String to hold incoming data
13 +bool stringComplete = false; // whether the string is complete
14 +
15 +long old_time=millis();
16 +long new_time;
17 +
18 +long uplink_interval=30000; //ms
19 +
20 +float DHT11_temp;
21 +float DHT11_hum;
22 +
23 +SoftwareSerial ss(10, 11); // Arduino RX, TX ,
24 +
25 +char rxbuff[128];
26 +uint8_t rxbuff_index=0;
27 +
28 +void setup() {
29 + // initialize serial
30 + Serial.begin(9600);
31 +
32 + ss.begin(9600);
33 + ss.listen();
34 +
35 + // reserve 200 bytes for the inputString:
36 + inputString.reserve(200);
37 +
38 + dht.begin();
39 + sensor_t sensor;
40 + dht.temperature().getSensor(&sensor);
41 + dht.humidity().getSensor(&sensor);
42 +
43 + ss.println("ATZ");//reset LA66
44 +}
45 +
46 +void loop() {
47 +
48 + while ( ss.available()) {
49 + // get the new byte:
50 + char inChar = (char) ss.read();
51 + // add it to the inputString:
52 + inputString += inChar;
53 +
54 + rxbuff[rxbuff_index++]=inChar;
55 +
56 + if(rxbuff_index>128)
57 + {
58 + rxbuff[rxbuff_index]='\0';
59 + rxbuff_index=0;
60 + break;
61 + }
62 +
63 + // if the incoming character is a newline, set a flag so the main loop can
64 + // do something about it:
65 + if (inChar == '\n' || inChar == '\r') {
66 + stringComplete = true;
67 + rxbuff[rxbuff_index]='\0';
68 + rxbuff_index=0;
69 + }
70 + }
71 +
72 + while ( Serial.available()) {
73 + // get the new byte:
74 + char inChar = (char) Serial.read();
75 + // add it to the inputString:
76 + inputString += inChar;
77 + // if the incoming character is a newline, set a flag so the main loop can
78 + // do something about it:
79 + if (inChar == '\n' || inChar == '\r') {
80 + ss.print(inputString);
81 + inputString = "\0";
82 + }
83 + }
84 +
85 + // print the string when a newline arrives:
86 + if (stringComplete) {
87 + Serial.print(inputString);
88 +
89 + // clear the string:
90 + inputString = "\0";
91 + stringComplete = false;
92 + }
93 +
94 + new_time = millis();
95 +
96 + if(new_time-old_time>=uplink_interval){
97 + old_time = new_time;
98 +
99 + Serial.print(F("\r\n"));
100 + // Get temperature event and print its value.
101 + sensors_event_t event;
102 + dht.temperature().getEvent(&event);
103 + if (isnan(event.temperature)) {
104 + Serial.println(F("Error reading temperature!"));
105 + DHT11_temp=327.67;
106 + }
107 + else {
108 + DHT11_temp=event.temperature;
109 +
110 + if(DHT11_temp>60){
111 + DHT11_temp=60;
112 + }
113 + else if(DHT11_temp<-20){
114 + DHT11_temp=-20;
115 + }
116 + }
117 + // Get humidity event and print its value.
118 + dht.humidity().getEvent(&event);
119 + if (isnan(event.relative_humidity)) {
120 + DHT11_hum=327.67;
121 + Serial.println(F("Error reading humidity!"));
122 + }
123 + else {
124 + DHT11_hum=event.relative_humidity;
125 +
126 + if(DHT11_hum>100){
127 + DHT11_hum=100;
128 + }
129 + else if(DHT11_hum<0){
130 + DHT11_hum=0;
131 + }
132 + }
133 +
134 + Serial.print(F("Temperature: "));
135 + Serial.print(DHT11_temp);
136 + Serial.println(F("°C"));
137 + Serial.print(F("Humidity: "));
138 + Serial.print(DHT11_hum);
139 + Serial.println(F("%"));
140 + Serial.print(F("\r\n"));
141 +
142 + char sensor_data_buff[128]="\0";
143 +
144 + //confirm status,Fport,payload length,payload(HEX)
145 + snprintf(sensor_data_buff,128,"AT+SEND=0,%02X%02X%02X%02X,0,0",(short)(DHT11_temp*100)>>8 & 0xFF,(short)(DHT11_temp*100) & 0xFF,(short)(DHT11_hum*10)>>8 & 0xFF,(short)(DHT11_hum*10) & 0xFF);
146 + ss.print(sensor_data_buff);
147 + ss.print('\r');
148 + }
149 +}
150 +
Log-Temperature-Sensor-and-send-data-to-node-red.json
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +806 bytes
Content
... ... @@ -1,0 +1,36 @@
1 +[
2 + {
3 + "id": "4ea60ce4df40717c",
4 + "type": "serial in",
5 + "z": "5f10779accc05655",
6 + "name": "",
7 + "serial": "bb1c0e81fd51fa9e",
8 + "x": 210,
9 + "y": 60,
10 + "wires": [
11 + [
12 + "40eac96a52733f7a",
13 + "79722a224bb22c96"
14 + ]
15 + ]
16 + },
17 + {
18 + "id": "bb1c0e81fd51fa9e",
19 + "type": "serial-port",
20 + "serialport": "/dev/ttyUSB0",
21 + "serialbaud": "9600",
22 + "databits": "8",
23 + "parity": "none",
24 + "stopbits": "1",
25 + "waitfor": "",
26 + "dtr": "none",
27 + "rts": "none",
28 + "cts": "none",
29 + "dsr": "none",
30 + "newline": "\\n",
31 + "bin": "false",
32 + "out": "char",
33 + "addchar": "\\r\\n",
34 + "responsetimeout": "10000"
35 + }
36 +]
image-20221108172432-7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +45.9 KB
Content
image-20221108174840-8.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +52.1 KB
Content
image-20221108175113-9.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +72.6 KB
Content
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0