Changes for page LG01v2 -- LoRa Gateway User Manual
Last modified by Kilight Cao on 2024/10/12 08:58
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 67 added, 0 removed)
- 1667456058832-484.png
- LoRa_Shield_Sketch_For_MQTT.ino
- LoRa_send_trial.ino
- Log-Temperature-Sensor-and-send-data-to-Node-red.ino
- Log-Temperature-Sensor-and-send-data-to-Node-red.json
- Log-Temperature-Sensor-and-send-data-to-node-red.json
- arduino-LoRa-master.zip
- image-20221031091550-1.png
- image-20221031091652-2.png
- image-20221031091807-3.png
- image-20221031092053-4.png
- image-20221101160705-1.png
- image-20221101161318-2.png
- image-20221101161951-3.png
- image-20221101162527-4.png
- image-20221102105419-1.png
- image-20221102110604-2.png
- image-20221102114002-3.png
- image-20221102140053-4.png
- image-20221103140645-1.png
- image-20221103142228-2.png
- image-20221103142416-3.png
- image-20221103143528-4.png
- image-20221103143618-5.png
- image-20221103144405-6.png
- image-20221103152033-7.png
- image-20221103152238-8.png
- image-20221104100344-1.png
- image-20221104100520-2.png
- image-20221104102736-3.png
- image-20221104155612-1.png
- image-20221104155654-2.png
- image-20221104155724-3.png
- image-20221104155907-4.png
- image-20221104155928-5.png
- image-20221104155949-6.png
- image-20221108164337-1.png
- image-20221108164413-2.png
- image-20221108170314-3.png
- image-20221108170621-4.jpeg
- image-20221108170731-5.png
- image-20221108172149-6.png
- image-20221108172432-7.png
- image-20221108174840-8.png
- image-20221108175113-9.png
- image-20221108180334-10.png
- image-20221108180458-11.png
- image-20221112161031-1.png
- image-20221112161111-2.png
- image-20221112162733-3.png
- image-20221112163119-4.png
- image-20230504095457-1.png
- image-20230504095502-2.png
- image-20230504100722-3.png
- image-20230506110646-1.png
- image-20230506113332-2.png
- image-20230506113432-3.png
- image-20230506113531-4.png
- image-20230506113602-5.png
- image-20230506113623-6.png
- image-20230506113705-7.png
- image-20230506113722-8.png
- image-20230506113737-9.png
- image-20230506113813-10.png
- image-20230506113831-11.png
- image-20230506114127-12.png
- serial USB.json
Details
- Page properties
-
- Content
-
... ... @@ -11,9 +11,13 @@ 11 11 12 12 {{toc/}} 13 13 14 -= **1. Introduction** = 15 15 16 16 16 + 17 + 18 + 19 += **1. Introduction** = 20 + 17 17 == **1.1 What is LG01v2** == 18 18 19 19 ... ... @@ -20,14 +20,17 @@ 20 20 ((( 21 21 ((( 22 22 The LG01v2 is an (% style="color:green" %)**open-source single channel LoRa Gateway**(%%). It lets you bridge LoRa wireless network to an IP network via (% style="color:green" %)**WiFi , Ethernet or Cellular Network**(%%) (via Optional 4G module). The LoRa wireless allows users to send data and reach extremely long ranges at low data rates. 27 + 28 +LG01v2 is specially design for (% style="color:green" %)**peer to peer LoRa**(%%) protocol instead of LoRaWAN protocol. The LG01v2 use single channel LoRa module to minimize the deployment cost for a private p2p LoRa wireless network. 23 23 ))) 24 24 25 25 ((( 32 +LG01v2 uses Open Source Linux system. User can modify the Linux part and develop customize software base on it. It has (% style="color:green" %)**1.2Ghz Quad-Core CPU**(%%) , (% style="color:green" %)**4GB eMMC storage**(%%) and (% style="color:green" %)**512MB RAM**(%%) for most application. 33 + 26 26 LG01v2 supports (% style="color:green" %)**remote management**(%%). System Integrator can easy to remote monitor the gateway and maintain it. 27 27 ))) 28 28 29 29 30 - 31 31 == **1.2 Specifications** == 32 32 33 33 ... ... @@ -56,7 +56,6 @@ 56 56 * Remote Management 57 57 * Auto-provisioning for batch deployment and management 58 58 * LoRa Gateway 59 -* Built-in (% style="color:#037691" %)//**The Things Network**//(%%) local LoRaWAN server 60 60 * Built-in (% style="color:#037691" %)//**Node-Red**// (%%)local Application server 61 61 62 62 == **1.4 Block Diagram** == ... ... @@ -84,7 +84,6 @@ 84 84 (% style="color:blue" %)//**➢ WIFI LED**//(%%)//: This LED shows the WIFI interface connection status.// 85 85 86 86 87 - 88 88 == **1.6 Button Intruction** == 89 89 90 90 ... ... @@ -101,69 +101,216 @@ 101 101 //**LED status: ** ETH LED will SOLID BULE Until the restore is finished.// 102 102 103 103 109 += **2. Quick Start** = 104 104 105 -= ** 2. Quick Start** = 106 106 112 +The LG01-V2 supports network access via Ethernet or Wi-Fi connection and runs without a network. 107 107 108 - TheLPS8-V2 supportsnetworkaccessvia Ethernetor Wi-Ficonnectionandrunswithouta network.114 +In most cases, the first thing you need to do is make the LG01-v2 accessible to the network. 109 109 110 -In most cases, the first thing you need to do is make the lps8-v2 accessible to the network. 111 111 112 - 113 113 == **2.1 Connects to the network and accesses the gateway Web UI** == 114 114 119 +=== **2.1.1 connect the network.** === 115 115 116 -== **2.1.1 connect the network.** == 117 117 122 +==== (% style="color:blue" %)**Method 1**(%%): Connect via Ethernet with DHCP IP from the router ==== 118 118 119 -=== (% style="color:blue" %)**Method 1**(%%): Connect via Ethernet with DHCP IP from the router === 120 120 125 +Connect the LG01-V2 Ethernet port to your router and LG01-V2 can obtain an IP address from your router. In the router's management portal, you should be able to find what IP address the router has assigned to the LG01-V2. 121 121 122 -Connect the LPS8-V2 Ethernet port to your router and LPS8 can obtain an IP address from your router. In the router's management portal, you should be able to find what IP address the router has assigned to the LPS8-V2. 123 - 124 124 You can also use this IP to connect. 125 125 129 + 126 126 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220622100129-1.png?width=1263&height=332&rev=1.1||alt="image-20220622100129-1.png"]] 127 127 128 -=== **Method 2**: Connect via WiFiwith DHCPIPfrom the router===132 +==== (% style="color:blue" %)**Method 2**(%%): Connect via LG01v2 Fallback IP ==== 129 129 130 -[[image:i mage-20220622100542-2.png||height="369" width="1256"]]134 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20230107084650-2.png?width=839&height=310&rev=1.1||alt="image-20230107084650-2.png" height="284" width="769"]] 131 131 132 -The LPS8-V2 has a fall-back IP address on its WAN port. you have to access the gateway Web-UI to configure the WiFi connection via the fallback IP address. 133 133 134 134 **Steps to connect via fallback IP:** 135 135 136 -~1. Connect PC's Ethernet port to L PS8-V2's WAN port139 +~1. Connect the PC's Ethernet port to LG01v2's WAN port 137 137 138 -2. Configure PC's Ethernet port has 141 +2. Configure PC's Ethernet port has IP: 172.31.255.253 and Netmask: 255.255.255.252 139 139 140 - [[image:image-20220622101433-4.png]]143 +Settings ~-~-> Network & Internet ~-~-> Ethernet ~-~-> Change advanced sharing options ~-~-> Double-click"Ethernet" ~-~-> Internet Protocol Version 4 (TCP/IPv4) 141 141 142 -and then On the PC, use the IP address **http:~/~/172.31.255.254** to access the LPS8-V2 via Web or Console. 143 143 144 - [[image:image-20220622102210-5.png||height="504"width="919"]]146 +As in the below photo: 145 145 146 - Fillinthe WiFimationby checkingboxand clicking**Save&Apply**148 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20230413172038-1.png?width=1243&height=732&rev=1.1||alt="image-20230413172038-1.png" height="624" width="1059"]] 147 147 148 -[[image:image-20220622102702-6.png]] 149 149 151 +Configure computer Ethernet port steps video: **[[fallback ip.mp4>>url:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/fallback%20ip.mp4?rev=1.1]]** 152 + 153 +If you still can't access the LG01v2 fallback ip, follow this connection to debug :**[[Trouble Shooting>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20All%20Gateway%20models/LG01v2/#H10.1A0FallbackIPdoesnotwork2Chowcanuserscheck]]** 154 + 155 +3. In the PC, use IP address 172.31.255.254 to access the LG01v2 via Web or Console. 156 + 157 + 158 +[[image:image-20230506110646-1.png||height="568" width="1051"]] 159 + 160 + 161 +==== (% style="color:blue" %)**Method 3**(%%): Connect via WiFi with DHCP IP from the router ==== 162 + 163 + 164 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220622100542-2.png?width=1256&height=369&rev=1.1||alt="image-20220622100542-2.png"]] 165 + 166 + 167 +Fill in the WiFi information by checking the box and clicking (% style="color:red" %)**Save&Apply** 168 + 169 + 170 +[[image:image-20230506113332-2.png]] 171 + 172 + 150 150 **Wi-Fi configuration successful** 151 151 152 -[[image:image-20220622102847-7.png]] 153 153 154 -[[image:image-202 20622102901-8.png||height="476" width="938"]]176 +[[image:image-20230506113432-3.png||height="397" width="855"]] 155 155 156 156 179 +=== 2.1.2 Access Configure Web UI === 157 157 181 +**Web Interface** 158 158 159 - =**3.Howtoconfigure the LA66module**=183 +Open a browser on the PC and type the LPS8-V2 ip address (depends on your connect method) 160 160 161 161 162 - ==**3.1 AccesstheLA66module**==186 +[[(% style="background-color:yellow" %)**//http:~~/~~/IP_ADDRESS //**>>http://IP_ADDRESS]](%%) or (% style="background-color:yellow" %)//**[[http:~~/~~/172.31.255.254>>http://172.31.255.254(]]**//(Fallback IP) 163 163 188 +You will see the login interface of LPS8-V2 as shown below. 164 164 165 - Userscan accesstheLA66 moduleby runningthefollowingcommand, thenselect theoption**''serial port setup"**:190 +The account details for Web Login are: 166 166 192 +(% style="color:#4f81bd" %)**User Name: root** 193 + 194 +(% style="color:#4f81bd" %)**Password: dragino** 195 + 196 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20230106153501-1.png?width=894&height=367&rev=1.1||alt="image-20230106153501-1.png"]] 197 + 198 + 199 += **3. Web Configure Pages** = 200 + 201 +== **3.1 Home** == 202 + 203 + 204 +//Shows the system running status~:// 205 + 206 +[[image:image-20230506113531-4.png||height="430" width="818"]] 207 + 208 + 209 +== **3.2 Network Settings** == 210 + 211 +=== **3.2.1 Network ~-~-> WiFi** === 212 + 213 + 214 +[[image:image-20230506113602-5.png]] 215 + 216 + 217 +=== **3.4.2 Network ~-~-> System Status** === 218 + 219 + 220 +[[image:image-20230506113623-6.png||height="511" width="672"]] 221 + 222 + 223 + 224 +== **3.5 System** == 225 + 226 +=== **3.5.1 System ~-~-> System Overview** === 227 + 228 + 229 +Shows the system info: 230 + 231 +[[image:image-20230506113705-7.png]] 232 + 233 + 234 +=== **3.5.2 System ~-~-> Backup/Restore** === 235 + 236 + 237 +[[image:image-20230506113722-8.png||height="254" width="797"]] 238 + 239 + 240 +=== **3.5.3 System ~-~-> System General** === 241 + 242 + 243 +In the System-> System General interface, Users can customize the configuration System Password and set Timezone. 244 + 245 +In addition, Users can customize the FallBack IP address. 246 + 247 +[[image:image-20230506113813-10.png||height="659" width="749"]] 248 + 249 + 250 +=== **3.5.4 System ~-~-> Remoteit** === 251 + 252 + 253 +In the System-> Remoteit interface, users can configure the gateway to be accessed remotely via Remote.it. 254 + 255 +the users can refer to this link to configure them: **[[Monitor & Remote Access Gateway>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Monitor%20%26%20Remote%20Access%20Gateway/?Remote%20Access#H2.1A0RemoteAccessviaRemote.it.]]** 256 + 257 +[[image:image-20230506113831-11.png||height="567" width="748"]] 258 + 259 + 260 +=== **3.5.5 System ~-~-> Package Management** === 261 + 262 + 263 +In the System ~-~-> Package Management interface, Users can check the current version of Core Packages. 264 + 265 +[[image:image-20230506114127-12.png||height="803" width="762"]] 266 + 267 += (% id="cke_bm_1978S" style="display:none" %)** **(%%)**4. Build in Server** = 268 + 269 + 270 +The default factory version of LG01-V2 is installed with the built-in Applicant server: (% style="color:blue" %)**Node-Red** 271 + 272 + 273 +[[image:image-20230506113737-9.png]] 274 + 275 + 276 +(% style="color:red" %)**Note:** 277 + 278 + **Path**: System ~-~-> Built-in Server 279 + 280 + 281 +(% style="color:blue" %)**Troubleshooting:** 282 + 283 +**~ 1. URL does not jump properly** 284 + 285 + For the Node-Red, you can use the local IP address and the port is 1880 to access it. 286 + 287 + 288 +== **4.1 Application Server ~-~- Node-Red** == 289 + 290 + 291 +You can access the gateway's built-in AS server of (% style="color:blue" %)**Node-Red **(%%)via the URL((% style="background-color:yellow" %)__**//http:~/~/<hostname>:1880 or http:~/~/<local-IPV4-address>//**__(%%)) in your browser. 292 + 293 + 294 +Such as (% style="background-color:yellow" %)__**//http:~/~/dragino-54ff12:1880 or http:~/~/<Local-IPV4-Address>//**__ 295 + 296 + 297 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220725172124-3.png?width=843&height=610&rev=1.1||alt="image-20220725172124-3.png"]] 298 + 299 + 300 += **5. How to configure the Lora Gateway** = 301 + 302 +== **5.1 Configure and Debug LoRa wireless of LG01v2** == 303 + 304 + 305 +First, the user needs to access the Linux console of LG01v2 via ssh 306 + 307 +IP address: IP address of LG01v2 308 + 309 +Port: 22 310 + 311 +User Name: (% style="color:#4f81bd" %)**root** 312 + 313 +Password: (% style="color:#4f81bd" %)**dragino**(%%) (default) 314 + 315 +[[image:image-20230504100722-3.png||height="228" width="908"]] 316 + 317 +Users can access the Lora configuration page by running the following command, then select the option **''serial port setup"**: 318 + 167 167 (% class="box infomessage" %) 168 168 ((( 169 169 **root@dragino-2406ef:~~# minicom -s** ... ... @@ -182,48 +182,349 @@ 182 182 ))) 183 183 184 184 185 -(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C**(%%) 337 +(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C** 338 + 339 + 186 186 (% style="color:red" %)[[image:image-20221029174703-3.png]] 187 187 188 188 189 189 Enter **AT+CFG **in the interface to get the configuration, 190 190 191 -[[image:image-20221029172156-1.png||height="315" width="358"]] 192 192 346 +(% class="box infomessage" %) 347 +((( 348 +**AT+FRE=868.100,868.100 ~-~--> TX and RX frequency 349 +AT+GROUPMOD=0,0 ~-~--> TX and RX group 350 +AT+BW=0,0 ~-~--> TX and RX Bandwidth 351 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor 352 +AT+POWER=14 ~-~--> TX Power Range 353 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 354 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 355 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 356 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 357 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length 358 +AT+SYNCWORD=0 ~-~--> Syncword(0: private,1: public) 359 +AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode 360 +AT+RXDAFORM=1** 361 +))) 193 193 194 -LG01v2 Peer to Peer example: 195 195 196 - (%style="color:red"%)**LG01v2as Receiver: (configured as AT+RXMOD=65535,2)**364 +== **5.2 Example: LG01v2** == 197 197 366 +=== **5.2.1 Introduce for the example:** === 198 198 199 - 368 + 369 +[[image:image-20221104102736-3.png||height="282" width="723"]] 370 + 371 + 372 +In this example, there are two devices: 373 + 374 +* **LA66 Shield + UNO + DHT11**: The UNO will get the temperature and humidity and broadcast the value via LoRa protocol. 375 +* **LG01v2** : LG01v2 is set to listening the LoRa Channel which LA66 is broadcasting. When LG01v2 get the data from LA66, LG01v2 will plot the data in built-in IoT server. 376 + 377 +=== **5.2.2 Set Up LA66 Shield + UNO** === 378 + 379 + 380 +==== **Set up LA66 Module** ==== 381 + 382 + 383 +LA66 Module is loaded with the firmware **[[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/]] **and user can use AT Command to set up LA66 with below parameters: 384 + 385 +((( 386 +(% style="color:red" %)**LA66 Shield as Sender: ** 387 + 388 +(% class="box infomessage" %) 389 +((( 390 +**LA66 Shield configuration:** 391 + 392 +AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 393 +AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 394 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 395 +AT+POWER=14 ~-~--> TX Power Range set: 14dBm 396 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 397 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 398 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 399 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 400 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 401 +AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public)** 402 +AT+RXMOD=6,0 ~-~--> Rx Timeout and Reply mode 200 200 ))) 404 +))) 201 201 202 -= **7. Trouble Shooting** = 203 203 204 204 205 -== 7.1 I can'tlog in to the built-inServer TTN Stack which shows'**Loginfailed**'.==408 +==== **Set up Arduino UNO** ==== 206 206 410 +(% id="cke_bm_1033249S" style="display:none" %)** ** 207 207 412 +**Hardware Connection** 208 208 414 +(% class="box infomessage" %) 415 +((( 416 +**The DHT11 sensor connects to the LA66 Shield:** 209 209 210 -This is caused by the inconsistency between the built-in TTN-Stack domain configuration and your login URL. 418 +**VCC <~-~--> 3.3V (Red line)** 419 +**DATA <~-~--> PIN8 (Purple line)** 420 +**GND <~-~--> GND (White line)** 421 +))) 211 211 212 - By default, ttn-stack uses thegateway's domainnamefor URL resolution, but in some networks, they prefer to resolve IP-v4addresses.423 +[[image:image-20221108170731-5.png||height="588" width="441"]] 213 213 214 214 215 -So you can change the domain name of the TTN-Stack configuration to the IPv4 address. 216 216 217 -** Clickthe updateURL buttonto configure the URL with the current eth portaddress.**427 +===== **1. Open Arduino IDE** ===== 218 218 219 219 430 +[[image:image-20221108172149-6.png||height="650" width="542"]] 220 220 221 221 222 222 223 -= (% style="color:inherit;font-family:inherit; font-size:29px" %)**8.Supports**(%%)=434 +===== **2. Open project** ===== 224 224 225 225 437 +Users can download Arduino files from this link: [[attach:Log-Temperature-Sensor-and-send-data-to-Node-red.ino||target="_blank"]] 438 + 439 +Then click Compile and Upload to LA66 Shield, 440 + 441 +[[image:image-20221108172432-7.png]] 442 + 443 + 444 + 445 +===== **3. Open the Serial Monitor to check the LA66 Shield data** ===== 446 + 447 + 448 +The UNO will now reads the temperature and humidity data from the sensor and broadcast it via LoRa wireless, 449 + 450 +[[image:image-20221108174840-8.png||height="731" width="671"]] 451 + 452 + 453 + 454 +Sending out data as below. 455 + 456 +[[image:image-20221108175113-9.png||height="556" width="998"]] 457 + 458 + 459 +=== **5.2.3 Set Up LG01v2** === 460 + 461 + 462 +Configure LG01v2 LoRa channel parameters so it can get data from LA66 Shield 463 + 464 +(% style="color:red; font-weight:bold" %)**LG01v**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)** 465 + 466 +(% class="box infomessage" %) 226 226 ((( 468 +**LG01-V2 configuration:** 469 + 470 +AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 471 +AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 472 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 473 +AT+POWER=14 ~-~--> TX Power Range set: 14dBm 474 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 475 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 476 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 477 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 478 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 479 +AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public)** 480 +AT+RXMOD=65535,2 ~-~--> Rx Timeout and Reply mode, RX window always open**(0:No ACK, 1:Reply mode, 2:Send an ACK once got a message from another device. ACK Content is 0x00 FF )** 481 +))) 482 + 483 + 484 +=== **5.2.4 Test result** === 485 + 486 + 487 +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).** 488 +))) 489 + 490 +When LG01v2 replies with ACK when it receives a packet sent by LA66 sheild. 491 + 492 +[[image:image-20221108164413-2.png]] 493 + 494 + 495 + 496 +In the real-time log of LG01v2: 497 + 498 +[[image:image-20221108170314-3.png]] 499 + 500 + 501 +=== **5.2.5 Plot data chart in LG01v2** === 502 + 503 + 504 +User can plot the temperature and humidity chat via LG01v2 built-in IoT server. 505 + 506 +User can import this example in Node-Red: [[attach:Log-Temperature-Sensor-and-send-data-to-Node-red.json||target="_blank"]] 507 + 508 +[[image:image-20221108180334-10.png||height="651" width="1141"]] 509 + 510 + 511 +The temperature and humidity chart is displayed in the built-in node-red UI 512 + 513 +**Browser input: (% style="background-color:yellow" %)__//http:~/~/<local-IPV4-address>//__(%%)** 514 + 515 +[[image:image-20221108180458-11.png||height="402" width="1137"]] 516 + 517 + 518 += (% 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(%%)** = 519 + 520 + 521 +(% style="color:blue" %)**USB TTL to LG01v2 Connection:** 522 + 523 + 524 +Port 1 of the UART on the LG01v2 is GND 525 + 526 +(% class="box infomessage" %) 527 +((( 528 +**TXD <~-~--> UART RXD (Gray line)** 529 + 530 +**RXD <~-~--> UART TXD (White line)** 531 + 532 +**GND <~-~--> GND (Black line)** 533 +))) 534 + 535 + 536 +**LG01v2 UART connection photo** 537 + 538 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220804163015-1.png?width=466&height=621&rev=1.1||alt="image-20220804163015-1.png"]] 539 + 540 + 541 + 542 +In the PC, you can use the serial port tool(such as [[putty>>url:http://www.chiark.greenend.org.uk/~~sgtatham/putty/download.html]] in Windows), you need to set the serial baud rate to (% style="color:blue" %)**115200**(%%) to access the serial console for LG01v2. LG01v2 will output system info once power on as below: 543 + 544 + 545 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220804164928-3.png?width=332&height=320&rev=1.1||alt="image-20220804164928-3.png"]] 546 + 547 + 548 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220804164747-2.png?width=594&height=622&rev=1.1||alt="image-20220804164747-2.png"]] 549 + 550 + 551 += **7. OTA System Update** = 552 + 553 + 554 +LG01v2 supports system auto update via OTA, please see **[[this URL>>url:http://wiki.dragino.com/xwiki/bin/view/OTA%20Update/]]** for the detail of this feature. 555 + 556 + 557 += **8. FAQ** = 558 + 559 +== **8.1 How does LG01v2 communicate with Lora shield (LoRa.h)** == 560 + 561 + 562 +This example describes how to use LG01v2, LoRa Shield to set up a LoRa network, 563 + 564 +[[image:image-20221103152238-8.png||height="251" width="654"]] 565 + 566 + 567 +(% style="color:red" %)**Prerequisites: The configurations of LG01v2 and Lora shield must match** 568 + 569 +**LG01v2 configuration:** 570 + 571 +(% class="box infomessage" %) 572 +((( 573 +AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 574 +AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 575 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 576 +AT+POWER=14 ~-~--> TX Power Range 577 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 578 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 579 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 580 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 581 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 582 +AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public), **the corresponding Lora shield syncword is 0x12 583 +AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode,RX window always open 584 +AT+RXDAFORM=1 585 +))) 586 + 587 + 588 + 589 +**Lora shield configuration:** 590 + 591 +Lora Shield example: [[attach:LoRa_Shield_Sketch_For_MQTT.ino||target="_blank"]] , [[attach:arduino-LoRa-master.zip||target="_blank"]] 592 + 593 +[[image:image-20221101161318-2.png]] 594 + 595 + 596 + 597 +**Test LG01v2 to receive Lora Shield data:** 598 + 599 +[[image:image-20221101161951-3.png]] 600 + 601 + 602 + 603 +**Test the LG01v2 to send data:** 604 + 605 +[[image:image-20221101162527-4.png]] 606 + 607 + 608 +== **8.2 How does LG01v2 communicate with Heltec LoRa Node** == 609 + 610 + 611 +This example describes how to use LG01v2 and Heltec LoRa Node to set up a LoRa network, 612 + 613 +[[image:image-20221112161111-2.png||height="258" width="692"]] 614 + 615 +(% style="color:red" %)**Prerequisites: The configurations of LG01v2 and Lora shield must match** 616 + 617 + 618 +**LG01v2 configuration:** 619 + 620 +(% class="box infomessage" %) 621 +((( 622 +AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 623 +AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 624 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 625 +AT+POWER=14 ~-~--> TX Power Range 626 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 627 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 628 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 629 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 630 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 631 +AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public), **the corresponding Lora shield syncword is 0x12 632 +AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode,RX window always open 633 +AT+RXDAFORM=1 ~-~--> RX data format**(0: Hex ,1: String)** 634 +))) 635 + 636 + 637 +After we upload the sketch to Heltec LoRa Node, we can see below output from Arduino. 638 + 639 +Lora Shield example: [[attach:LoRa_send_trial.ino||target="_blank"]] 640 + 641 +[[image:image-20221112162733-3.png||height="524" width="927"]] 642 + 643 + 644 +And we can see the logread of gateway as below, means the packet arrive gateway: 645 + 646 +[[image:image-20221112163119-4.png||height="808" width="560"]] 647 + 648 + 649 += **9. OTA System Update** = 650 + 651 +LG01v2 supports system auto update via OTA, please see **[[this URL>>url:http://wiki.dragino.com/xwiki/bin/view/OTA%20Update/]]** for the detail of this feature. 652 + 653 + 654 += **10. Trouble Shooting** = 655 + 656 +== 10.1 Fallback IP does not work, how can users check == 657 + 658 +When the computer has completed the above fallback IP configuration,the LG01v2 Web UI is still not accessible via fallback IP. 659 + 660 + 661 +**1.Check whether the configuration is correct** 662 + 663 +Run the CMD command to ipconfig and ping 172.31.255.254. 664 + 665 +If this fails, the user needs to reconfigure. 666 + 667 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20230413170224-3.png?width=707&height=433&rev=1.1||alt="image-20230413170224-3.png"]] 668 + 669 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20230413170246-4.png?rev=1.1||alt="image-20230413170246-4.png"]] 670 + 671 +**2. Check whether the firewall is disabled** 672 + 673 +If the firewall is not down, this will affect access to the gateway. 674 + 675 + 676 += (% style="color:inherit; font-family:inherit; font-size:29px" %)**11. Supports**(%%) = 677 + 678 + 679 +((( 227 227 **//If you are experiencing issues and can't solve them, you can send mail to [[support@dragino.com>>mailto:support@dragino.com]].//** 228 228 ))) 229 229 ... ... @@ -231,29 +231,24 @@ 231 231 **//With your question as detailed as possible. We will reply and help you in the shortest.//** 232 232 233 233 687 += **12. Reference** = 234 234 235 -= **9. Reference** = 236 236 690 +* Install Tago Core: Refer **Install Tago Core in LG01v2** in[[ Instruction>>doc:Main.Tago\.IO.WebHome]]. 691 +* [[Advance OS Reference Guide for L>>doc:Main.Armbian OS instruction.WebHome]]G01v2. 237 237 238 -* Install Tago Core: Refer **Install Tago Core in LPS8v2** in[[ Instruction>>doc:Main.Tago\.IO.WebHome]]. 239 -* [[Advance OS Reference Guide for LPS8v2>>doc:Main.Armbian OS instruction.WebHome]]. 240 - 241 241 242 242 ))) 243 243 244 -= **1 0. Order Info** =696 += **13. Order Info** = 245 245 246 246 247 -(% style="color:#0000ff" %)**L PS8v2-XXX-YYY**699 +(% style="color:#0000ff" %)**LG01v2-XXX-YYY** 248 248 249 249 (% style="color:#0000ff" %)**XXX**(% style="color:black" %): Frequency Band 250 250 251 -* (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band 252 -* (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band 253 -* (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band 254 -* (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band 255 -* (% style="color:red" %)**US915**(%%): LoRaWAN US915 band 256 -* (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band 703 +* (% style="color:red" %)**868**(%%): For frequency : 863 ~~ 870Mhz 704 +* (% style="color:red" %)**915**(%%): For frequency : 902 ~~ 928Mhz 257 257 258 258 (% style="color:#0000ff" %)**YYY**(% style="color:black" %): 4G Cellular Option 259 259 ... ... @@ -265,10 +265,9 @@ 265 265 More info about valid bands, please see [[EC25-E product page>>url:https://www.quectel.com/product/ec25.htm]]. 266 266 267 267 716 += **14. Manufacturer Info** = 268 268 269 -= **10. Manufacturer Info** = 270 270 271 - 272 272 **Shenzhen Dragino Technology Development co. LTD** 273 273 274 274 Room 202, Block B, BCT Incubation Bases (BaoChengTai), No.8 CaiYunRoad ... ... @@ -276,10 +276,9 @@ 276 276 LongCheng Street, LongGang District ; Shenzhen 518116,China 277 277 278 278 726 += **15. FCC Warning** = 279 279 280 -= **11. FCC Warning** = 281 281 282 - 283 283 ((( 284 284 This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures: 285 285 ))) ... ... @@ -309,7 +309,6 @@ 309 309 ((( 310 310 The antenna(s) used for this transmitter must be installed to provide a separation distance of at least 20 cm from all persons and must not be co-located or operating in conjunction with any other antenna or transmitter. 311 311 758 + 312 312 313 313 ))) 314 - 315 -~)~)~)
- 1667456058832-484.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +21.0 KB - Content
- LoRa_Shield_Sketch_For_MQTT.ino
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +2.9 KB - Content
-
... ... @@ -1,0 +1,118 @@ 1 +#include <SPI.h> 2 +#include <LoRa.h> 3 + 4 +// This is the LoRa Node side sketch for the MQTT example: http://wiki.dragino.com/index.php?title=MQTT_Forward_Instruction#Example_to_communicate_to_a_simple_MQTT_server 5 + 6 +float tem,hum; 7 +char tem_1[8]={"\0"},hum_1[8]={"\0"}; 8 +char *node_id = "<4567>"; //From LG01 via web Local Channel settings on MQTT.Please refer <> dataformat in here. 9 +uint8_t datasend[36]; 10 +unsigned int count = 1; 11 +unsigned long new_time,old_time=0; 12 + 13 +void setup() 14 +{ 15 + Serial.begin(9600); 16 + while (!Serial); 17 + Serial.println(F("Start MQTT Example")); 18 + if (!LoRa.begin(868100000)) //868000000 is frequency 19 + { 20 + Serial.println("Starting LoRa failed!"); 21 + while (1); 22 + } 23 + // Setup Spreading Factor (6 ~ 12) 24 + LoRa.setSpreadingFactor(12); 25 + 26 + // Setup BandWidth, option: 7800,10400,15600,20800,31250,41700,62500,125000,250000,500000 27 + //Lower BandWidth for longer distance. 28 + LoRa.setSignalBandwidth(125000); 29 + 30 + // Setup Coding Rate:5(4/5),6(4/6),7(4/7),8(4/8) 31 + LoRa.setCodingRate4(5); 32 + LoRa.setSyncWord(0x12); 33 + void disableCrc(); 34 + LoRa.disableInvertIQ(); 35 + LoRa.explicitHeaderMode(); 36 + Serial.println("LoRa init succeeded."); 37 + LoRa.onReceive(onReceive); 38 + LoRa.receive(); 39 +} 40 + 41 +void dhtTem() 42 +{ 43 + tem = random(15,40); 44 + hum = random(40,80); 45 + Serial.println(F("The temperature and humidity:")); 46 + Serial.print("["); 47 + Serial.print(tem); 48 + Serial.print("℃"); 49 + Serial.print(","); 50 + Serial.print(hum); 51 + Serial.print("%"); 52 + Serial.print("]"); 53 + Serial.println(""); 54 +} 55 +void dhtWrite() 56 +{ 57 + char data[50] = "\0"; 58 + //for(int i = 0; i < 50; i++) 59 + //{ 60 + // data[i] = node_id[i]; 61 + //} 62 + 63 + dtostrf(tem,0,1,tem_1); 64 + dtostrf(hum,0,1,hum_1); 65 + 66 + // Serial.println(tem_1); 67 + strcat(data,"tem="); 68 + strcat(data,tem_1); 69 + strcat(data,"&hum="); 70 + strcat(data,hum_1); 71 + strcpy((char *)datasend,data); 72 + 73 + //Serial.println((char *)datasend); 74 + //Serial.println(sizeof datasend); 75 + 76 +} 77 + 78 + 79 +void SendData() 80 +{ 81 + LoRa.beginPacket(); 82 + LoRa.print((char *)datasend); 83 + LoRa.endPacket(); 84 + Serial.println("Packet Sent"); 85 +} 86 + 87 + 88 + 89 +void loop() 90 +{ 91 + new_time=millis(); 92 + if (new_time - old_time >= 30000 || old_time == 0) 93 + { 94 + old_time = new_time; 95 + Serial.print("########### "); 96 + Serial.print("COUNT="); 97 + Serial.print(count); 98 + Serial.println(" ###########"); 99 + count++; 100 + dhtTem(); 101 + dhtWrite(); 102 + SendData(); 103 + LoRa.receive(); 104 + } 105 +} 106 + 107 +void onReceive(int packetSize) { 108 + 109 + // received a packet 110 + Serial.print("Received packet : "); 111 + 112 + // read packet 113 + for (int i = 0; i < packetSize; i++) { 114 + Serial.print((char)LoRa.read()); 115 + } 116 + Serial.print("\n\r"); 117 +} 118 +
- LoRa_send_trial.ino
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +3.4 KB - Content
-
... ... @@ -1,0 +1,124 @@ 1 +#include "LoRaWan_APP.h" 2 +#include "Arduino.h" 3 + 4 + 5 +#define RF_FREQUENCY 868100000 // Hz 6 + 7 +#define TX_OUTPUT_POWER 5 // dBm 8 + 9 +#define LORA_BANDWIDTH 0 // [0: 125 kHz, 10 + // 1: 250 kHz, 11 + // 2: 500 kHz, 12 + // 3: Reserved] 13 +#define LORA_SPREADING_FACTOR 12 // [SF7..SF12] 14 +#define LORA_CODINGRATE 1 // [1: 4/5, 15 + // 2: 4/6, 16 + // 3: 4/7, 17 + // 4: 4/8] 18 +#define LORA_PREAMBLE_LENGTH 8 // Same for Tx and Rx 19 +#define LORA_SYMBOL_TIMEOUT 0 // Symbols 20 +#define LORA_FIX_LENGTH_PAYLOAD_ON false 21 +#define LORA_IQ_INVERSION_ON false 22 + 23 + 24 +#define RX_TIMEOUT_VALUE 1000 25 +#define BUFFER_SIZE 30 // Define the payload size here 26 + 27 +float tem,hum; 28 +char tem_1[8]={"\0"},hum_1[8]={"\0"}; 29 +char *node_id = "<GW01>"; //From LG01 via web Local Channel settings on MQTT.Please refer <> dataformat in here. 30 + 31 +char txpacket[BUFFER_SIZE]; 32 +char rxpacket[BUFFER_SIZE]; 33 + 34 +double txNumber; 35 + 36 +bool lora_idle=true; 37 + 38 +static RadioEvents_t RadioEvents; 39 +void OnTxDone( void ); 40 +void OnTxTimeout( void ); 41 + 42 +void dhtTem() 43 +{ 44 + tem = random(15,40); 45 + hum = random(40,80); 46 + Serial.println(F("The temperature and humidity:")); 47 + Serial.print("["); 48 + Serial.print(tem); 49 + Serial.print("℃"); 50 + Serial.print(","); 51 + Serial.print(hum); 52 + Serial.print("%"); 53 + Serial.print("]"); 54 + Serial.println(""); 55 +} 56 + 57 +void dhtWrite() 58 +{ 59 + char data[50] = "\0"; 60 + for(int i = 0; i < 50; i++) 61 + { 62 + data[i] = node_id[i]; 63 + } 64 + 65 + dtostrf(tem,0,1,tem_1); 66 + dtostrf(hum,0,1,hum_1); 67 + 68 + strcat(data,"tem_a="); 69 + strcat(data,tem_1); 70 + strcat(data,"&hum_a="); 71 + strcat(data,hum_1); 72 + strcpy((char *)txpacket,data); 73 + 74 + Serial.println((char *)txpacket); 75 +} 76 + 77 +void setup() { 78 + Serial.begin(115200); 79 + Mcu.begin(); 80 + 81 + txNumber=0; 82 + 83 + RadioEvents.TxDone = OnTxDone; 84 + RadioEvents.TxTimeout = OnTxTimeout; 85 + 86 + Radio.Init( &RadioEvents ); 87 + Radio.SetChannel( RF_FREQUENCY ); 88 + Radio.SetTxConfig( MODEM_LORA, TX_OUTPUT_POWER, 0, LORA_BANDWIDTH, 89 + LORA_SPREADING_FACTOR, LORA_CODINGRATE, 90 + LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON, 91 + true, 0, 0, LORA_IQ_INVERSION_ON, 3000 ); 92 + } 93 + 94 + 95 + 96 +void loop() 97 +{ 98 + if(lora_idle == true) 99 + { 100 + delay(5000); 101 + txNumber += 0.01; 102 + Serial.println(txNumber); 103 + 104 + dhtTem(); 105 + dhtWrite(); 106 + Radio.Send( (uint8_t *)txpacket, strlen(txpacket) ); //send the package out 107 + lora_idle = false; 108 + } 109 + Radio.IrqProcess( ); 110 +} 111 + 112 +void OnTxDone( void ) 113 +{ 114 + Serial.println("TX done......"); 115 + lora_idle = true; 116 +} 117 + 118 +void OnTxTimeout( void ) 119 +{ 120 + Radio.Sleep( ); 121 + Serial.println("TX Timeout......"); 122 + lora_idle = true; 123 +} 124 +
- 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 +10.3 KB - Content
-
... ... @@ -1,0 +1,443 @@ 1 +[ 2 + { 3 + "id": "0a211e08511c4bdd", 4 + "type": "tab", 5 + "label": "serial USB", 6 + "disabled": false, 7 + "info": "", 8 + "env": [] 9 + }, 10 + { 11 + "id": "4a97eeb54bf57a6d", 12 + "type": "serial in", 13 + "z": "0a211e08511c4bdd", 14 + "name": "", 15 + "serial": "bb1c0e81fd51fa9e", 16 + "x": 210, 17 + "y": 60, 18 + "wires": [ 19 + [ 20 + "d2493fb9752dbcab", 21 + "d183c255973c979e" 22 + ] 23 + ] 24 + }, 25 + { 26 + "id": "12f1eeb8049675c1", 27 + "type": "inject", 28 + "z": "0a211e08511c4bdd", 29 + "name": "AT+SEND=1,hello world,0,3", 30 + "props": [ 31 + { 32 + "p": "payload" 33 + } 34 + ], 35 + "repeat": "", 36 + "crontab": "", 37 + "once": false, 38 + "onceDelay": 0.1, 39 + "topic": "", 40 + "payload": "AT+SEND=1,hello world,0,3", 41 + "payloadType": "str", 42 + "x": 220, 43 + "y": 260, 44 + "wires": [ 45 + [ 46 + "a5d2f5df63a2148e" 47 + ] 48 + ] 49 + }, 50 + { 51 + "id": "a5d2f5df63a2148e", 52 + "type": "serial out", 53 + "z": "0a211e08511c4bdd", 54 + "name": "", 55 + "serial": "bb1c0e81fd51fa9e", 56 + "x": 540, 57 + "y": 260, 58 + "wires": [] 59 + }, 60 + { 61 + "id": "dc04c04a0bc0e5db", 62 + "type": "inject", 63 + "z": "0a211e08511c4bdd", 64 + "name": "", 65 + "props": [ 66 + { 67 + "p": "payload" 68 + } 69 + ], 70 + "repeat": "", 71 + "crontab": "", 72 + "once": false, 73 + "onceDelay": 0.1, 74 + "topic": "", 75 + "payload": "ATZ", 76 + "payloadType": "str", 77 + "x": 290, 78 + "y": 320, 79 + "wires": [ 80 + [ 81 + "a5d2f5df63a2148e" 82 + ] 83 + ] 84 + }, 85 + { 86 + "id": "3de96a220e28e8f0", 87 + "type": "inject", 88 + "z": "0a211e08511c4bdd", 89 + "name": "AT+FRE", 90 + "props": [ 91 + { 92 + "p": "payload" 93 + } 94 + ], 95 + "repeat": "", 96 + "crontab": "", 97 + "once": false, 98 + "onceDelay": 0.1, 99 + "topic": "", 100 + "payload": "AT+FRE=868.100,868.100", 101 + "payloadType": "str", 102 + "x": 280, 103 + "y": 380, 104 + "wires": [ 105 + [ 106 + "a5d2f5df63a2148e" 107 + ] 108 + ] 109 + }, 110 + { 111 + "id": "638725a47a1e4365", 112 + "type": "inject", 113 + "z": "0a211e08511c4bdd", 114 + "name": "AT+BW", 115 + "props": [ 116 + { 117 + "p": "payload" 118 + } 119 + ], 120 + "repeat": "", 121 + "crontab": "", 122 + "once": false, 123 + "onceDelay": 0.1, 124 + "topic": "", 125 + "payload": "AT+BW=0,0", 126 + "payloadType": "str", 127 + "x": 290, 128 + "y": 440, 129 + "wires": [ 130 + [ 131 + "a5d2f5df63a2148e" 132 + ] 133 + ] 134 + }, 135 + { 136 + "id": "85ba9868d1f3e82c", 137 + "type": "inject", 138 + "z": "0a211e08511c4bdd", 139 + "name": "AT+SF", 140 + "props": [ 141 + { 142 + "p": "payload" 143 + } 144 + ], 145 + "repeat": "", 146 + "crontab": "", 147 + "once": false, 148 + "onceDelay": 0.1, 149 + "topic": "", 150 + "payload": "AT+SF=12,12", 151 + "payloadType": "str", 152 + "x": 290, 153 + "y": 500, 154 + "wires": [ 155 + [ 156 + "a5d2f5df63a2148e" 157 + ] 158 + ] 159 + }, 160 + { 161 + "id": "144b2749013ffe57", 162 + "type": "inject", 163 + "z": "0a211e08511c4bdd", 164 + "name": "AT+RXMOD", 165 + "props": [ 166 + { 167 + "p": "payload" 168 + } 169 + ], 170 + "repeat": "", 171 + "crontab": "", 172 + "once": false, 173 + "onceDelay": 0.1, 174 + "topic": "", 175 + "payload": "AT+RXMOD=65535,2", 176 + "payloadType": "str", 177 + "x": 270, 178 + "y": 560, 179 + "wires": [ 180 + [ 181 + "a5d2f5df63a2148e" 182 + ] 183 + ] 184 + }, 185 + { 186 + "id": "bfb2e9df89dc5e2f", 187 + "type": "inject", 188 + "z": "0a211e08511c4bdd", 189 + "name": "AT+SYNCWORD", 190 + "props": [ 191 + { 192 + "p": "payload" 193 + } 194 + ], 195 + "repeat": "", 196 + "crontab": "", 197 + "once": false, 198 + "onceDelay": 0.1, 199 + "topic": "", 200 + "payload": "AT+SYNCWORD=0", 201 + "payloadType": "str", 202 + "x": 260, 203 + "y": 620, 204 + "wires": [ 205 + [ 206 + "a5d2f5df63a2148e" 207 + ] 208 + ] 209 + }, 210 + { 211 + "id": "d2493fb9752dbcab", 212 + "type": "function", 213 + "z": "0a211e08511c4bdd", 214 + "name": "function 1", 215 + "func": "var data = msg.payload\nif (data.substring(0, 4) == \"Data\") {\n if (data.substring(6, 12) == \"(HEX:)\") {\n var temp = data.substring(13, 15) + data.substring(16, 18)\n var hum = data.substring(19, 21) + data.substring(22, 24)\n var temp1 = parseInt(temp, 16) / 100\n var hum1 = parseInt(hum, 16) / 10\n var a1 = { payload: temp1 }, a2 = { payload: hum1 }\n }\n if (data.substring(6, 15) == \"(String:)\") {\n var temp = data.substring(20, 24)\n var hum = data.substring(29, 34)\n a1 = { payload: temp }, a2 = { payload: hum }\n }\n}\nif (data.substring(0, 4) == \"Rssi\") {\n var rssi = data.substring(6)\n var a3 = { payload: rssi }\n}\nreturn [a1, a2, a3];", 216 + "outputs": 3, 217 + "noerr": 0, 218 + "initialize": "", 219 + "finalize": "", 220 + "libs": [], 221 + "x": 420, 222 + "y": 60, 223 + "wires": [ 224 + [ 225 + "c17d94be4317ae6c" 226 + ], 227 + [ 228 + "20c5b1c7f42fa6bb" 229 + ], 230 + [ 231 + "39a8462f3d748eef" 232 + ] 233 + ] 234 + }, 235 + { 236 + "id": "39a8462f3d748eef", 237 + "type": "ui_chart", 238 + "z": "0a211e08511c4bdd", 239 + "name": "", 240 + "group": "ef41b39771110fa5", 241 + "order": 1, 242 + "width": 0, 243 + "height": 0, 244 + "label": "RSSI", 245 + "chartType": "line", 246 + "legend": "false", 247 + "xformat": "dd HH:mm", 248 + "interpolate": "linear", 249 + "nodata": "", 250 + "dot": true, 251 + "ymin": "", 252 + "ymax": "", 253 + "removeOlder": 1, 254 + "removeOlderPoints": "", 255 + "removeOlderUnit": "3600", 256 + "cutout": 0, 257 + "useOneColor": false, 258 + "useUTC": false, 259 + "colors": [ 260 + "#1f77b4", 261 + "#aec7e8", 262 + "#ff7f0e", 263 + "#2ca02c", 264 + "#98df8a", 265 + "#d62728", 266 + "#ff9896", 267 + "#9467bd", 268 + "#c5b0d5" 269 + ], 270 + "outputs": 1, 271 + "useDifferentColor": false, 272 + "className": "", 273 + "x": 670, 274 + "y": 180, 275 + "wires": [ 276 + [] 277 + ] 278 + }, 279 + { 280 + "id": "c17d94be4317ae6c", 281 + "type": "ui_chart", 282 + "z": "0a211e08511c4bdd", 283 + "name": "", 284 + "group": "7e1d1c102cf74e6b", 285 + "order": 1, 286 + "width": 0, 287 + "height": 0, 288 + "label": "Temperature", 289 + "chartType": "line", 290 + "legend": "false", 291 + "xformat": "HH:mm:ss", 292 + "interpolate": "linear", 293 + "nodata": "", 294 + "dot": true, 295 + "ymin": "", 296 + "ymax": "", 297 + "removeOlder": 1, 298 + "removeOlderPoints": "", 299 + "removeOlderUnit": "3600", 300 + "cutout": 0, 301 + "useOneColor": false, 302 + "useUTC": false, 303 + "colors": [ 304 + "#1f77b4", 305 + "#aec7e8", 306 + "#ff7f0e", 307 + "#2ca02c", 308 + "#98df8a", 309 + "#d62728", 310 + "#ff9896", 311 + "#9467bd", 312 + "#c5b0d5" 313 + ], 314 + "outputs": 1, 315 + "useDifferentColor": false, 316 + "className": "", 317 + "x": 690, 318 + "y": 100, 319 + "wires": [ 320 + [] 321 + ] 322 + }, 323 + { 324 + "id": "20c5b1c7f42fa6bb", 325 + "type": "ui_chart", 326 + "z": "0a211e08511c4bdd", 327 + "name": "", 328 + "group": "3f5d139f158d7c1c", 329 + "order": 2, 330 + "width": 0, 331 + "height": 0, 332 + "label": "Humidity", 333 + "chartType": "line", 334 + "legend": "false", 335 + "xformat": "HH:mm:ss", 336 + "interpolate": "linear", 337 + "nodata": "", 338 + "dot": true, 339 + "ymin": "", 340 + "ymax": "", 341 + "removeOlder": 1, 342 + "removeOlderPoints": "", 343 + "removeOlderUnit": "3600", 344 + "cutout": 0, 345 + "useOneColor": false, 346 + "useUTC": false, 347 + "colors": [ 348 + "#1f77b4", 349 + "#aec7e8", 350 + "#ff7f0e", 351 + "#2ca02c", 352 + "#98df8a", 353 + "#d62728", 354 + "#ff9896", 355 + "#9467bd", 356 + "#c5b0d5" 357 + ], 358 + "outputs": 1, 359 + "useDifferentColor": false, 360 + "className": "", 361 + "x": 680, 362 + "y": 140, 363 + "wires": [ 364 + [] 365 + ] 366 + }, 367 + { 368 + "id": "d183c255973c979e", 369 + "type": "debug", 370 + "z": "0a211e08511c4bdd", 371 + "name": "debug 1", 372 + "active": true, 373 + "tosidebar": true, 374 + "console": false, 375 + "tostatus": false, 376 + "complete": "false", 377 + "statusVal": "", 378 + "statusType": "auto", 379 + "x": 420, 380 + "y": 180, 381 + "wires": [] 382 + }, 383 + { 384 + "id": "bb1c0e81fd51fa9e", 385 + "type": "serial-port", 386 + "serialport": "/dev/ttyUSB0", 387 + "serialbaud": "9600", 388 + "databits": "8", 389 + "parity": "none", 390 + "stopbits": "1", 391 + "waitfor": "", 392 + "dtr": "none", 393 + "rts": "none", 394 + "cts": "none", 395 + "dsr": "none", 396 + "newline": "\\n", 397 + "bin": "false", 398 + "out": "char", 399 + "addchar": "\\r\\n", 400 + "responsetimeout": "10000" 401 + }, 402 + { 403 + "id": "ef41b39771110fa5", 404 + "type": "ui_group", 405 + "name": "rssi", 406 + "tab": "abb98f80600a5448", 407 + "order": 3, 408 + "disp": true, 409 + "width": "6", 410 + "collapse": false, 411 + "className": "" 412 + }, 413 + { 414 + "id": "7e1d1c102cf74e6b", 415 + "type": "ui_group", 416 + "name": "TEM", 417 + "tab": "abb98f80600a5448", 418 + "order": 4, 419 + "disp": true, 420 + "width": "6", 421 + "collapse": false, 422 + "className": "" 423 + }, 424 + { 425 + "id": "3f5d139f158d7c1c", 426 + "type": "ui_group", 427 + "name": "HUM", 428 + "tab": "abb98f80600a5448", 429 + "order": 2, 430 + "disp": true, 431 + "width": "6", 432 + "collapse": false, 433 + "className": "" 434 + }, 435 + { 436 + "id": "abb98f80600a5448", 437 + "type": "ui_tab", 438 + "name": "LG01v2", 439 + "icon": "LG01v2", 440 + "disabled": false, 441 + "hidden": false 442 + } 443 +]
- Log-Temperature-Sensor-and-send-data-to-node-red.json
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +10.1 KB - Content
-
... ... @@ -1,0 +1,443 @@ 1 +[ 2 + { 3 + "id": "5f10779accc05655", 4 + "type": "tab", 5 + "label": "serial USB", 6 + "disabled": false, 7 + "info": "", 8 + "env": [] 9 + }, 10 + { 11 + "id": "4ea60ce4df40717c", 12 + "type": "serial in", 13 + "z": "5f10779accc05655", 14 + "name": "", 15 + "serial": "bb1c0e81fd51fa9e", 16 + "x": 210, 17 + "y": 60, 18 + "wires": [ 19 + [ 20 + "40eac96a52733f7a", 21 + "79722a224bb22c96" 22 + ] 23 + ] 24 + }, 25 + { 26 + "id": "fe5a93a52b6adcf1", 27 + "type": "inject", 28 + "z": "5f10779accc05655", 29 + "name": "AT+SEND=1,hello world,0,3", 30 + "props": [ 31 + { 32 + "p": "payload" 33 + } 34 + ], 35 + "repeat": "", 36 + "crontab": "", 37 + "once": false, 38 + "onceDelay": 0.1, 39 + "topic": "", 40 + "payload": "AT+SEND=1,hello world,0,3", 41 + "payloadType": "str", 42 + "x": 220, 43 + "y": 260, 44 + "wires": [ 45 + [ 46 + "3f8add7e2e1d1d17" 47 + ] 48 + ] 49 + }, 50 + { 51 + "id": "3f8add7e2e1d1d17", 52 + "type": "serial out", 53 + "z": "5f10779accc05655", 54 + "name": "", 55 + "serial": "bb1c0e81fd51fa9e", 56 + "x": 540, 57 + "y": 260, 58 + "wires": [] 59 + }, 60 + { 61 + "id": "16e7d3d83d9e9415", 62 + "type": "inject", 63 + "z": "5f10779accc05655", 64 + "name": "", 65 + "props": [ 66 + { 67 + "p": "payload" 68 + } 69 + ], 70 + "repeat": "", 71 + "crontab": "", 72 + "once": false, 73 + "onceDelay": 0.1, 74 + "topic": "", 75 + "payload": "ATZ", 76 + "payloadType": "str", 77 + "x": 290, 78 + "y": 320, 79 + "wires": [ 80 + [ 81 + "3f8add7e2e1d1d17" 82 + ] 83 + ] 84 + }, 85 + { 86 + "id": "09ea381519629dae", 87 + "type": "inject", 88 + "z": "5f10779accc05655", 89 + "name": "AT+FRE", 90 + "props": [ 91 + { 92 + "p": "payload" 93 + } 94 + ], 95 + "repeat": "", 96 + "crontab": "", 97 + "once": false, 98 + "onceDelay": 0.1, 99 + "topic": "", 100 + "payload": "AT+FRE=868.100,868.100", 101 + "payloadType": "str", 102 + "x": 280, 103 + "y": 380, 104 + "wires": [ 105 + [ 106 + "3f8add7e2e1d1d17" 107 + ] 108 + ] 109 + }, 110 + { 111 + "id": "5167a7f904013ffd", 112 + "type": "inject", 113 + "z": "5f10779accc05655", 114 + "name": "AT+BW", 115 + "props": [ 116 + { 117 + "p": "payload" 118 + } 119 + ], 120 + "repeat": "", 121 + "crontab": "", 122 + "once": false, 123 + "onceDelay": 0.1, 124 + "topic": "", 125 + "payload": "AT+BW=0,0", 126 + "payloadType": "str", 127 + "x": 290, 128 + "y": 440, 129 + "wires": [ 130 + [ 131 + "3f8add7e2e1d1d17" 132 + ] 133 + ] 134 + }, 135 + { 136 + "id": "dbe4abbc730c76e6", 137 + "type": "inject", 138 + "z": "5f10779accc05655", 139 + "name": "AT+SF", 140 + "props": [ 141 + { 142 + "p": "payload" 143 + } 144 + ], 145 + "repeat": "", 146 + "crontab": "", 147 + "once": false, 148 + "onceDelay": 0.1, 149 + "topic": "", 150 + "payload": "AT+SF=12,12", 151 + "payloadType": "str", 152 + "x": 290, 153 + "y": 500, 154 + "wires": [ 155 + [ 156 + "3f8add7e2e1d1d17" 157 + ] 158 + ] 159 + }, 160 + { 161 + "id": "3be3ab296a75d512", 162 + "type": "inject", 163 + "z": "5f10779accc05655", 164 + "name": "AT+RXMOD", 165 + "props": [ 166 + { 167 + "p": "payload" 168 + } 169 + ], 170 + "repeat": "", 171 + "crontab": "", 172 + "once": false, 173 + "onceDelay": 0.1, 174 + "topic": "", 175 + "payload": "AT+RXMOD=65535,2", 176 + "payloadType": "str", 177 + "x": 270, 178 + "y": 560, 179 + "wires": [ 180 + [ 181 + "3f8add7e2e1d1d17" 182 + ] 183 + ] 184 + }, 185 + { 186 + "id": "7a03d1413c60ea1c", 187 + "type": "inject", 188 + "z": "5f10779accc05655", 189 + "name": "AT+SYNCWORD", 190 + "props": [ 191 + { 192 + "p": "payload" 193 + } 194 + ], 195 + "repeat": "", 196 + "crontab": "", 197 + "once": false, 198 + "onceDelay": 0.1, 199 + "topic": "", 200 + "payload": "AT+SYNCWORD=0", 201 + "payloadType": "str", 202 + "x": 260, 203 + "y": 620, 204 + "wires": [ 205 + [ 206 + "3f8add7e2e1d1d17" 207 + ] 208 + ] 209 + }, 210 + { 211 + "id": "40eac96a52733f7a", 212 + "type": "function", 213 + "z": "5f10779accc05655", 214 + "name": "function 1", 215 + "func": "var data = msg.payload\nif (data.substring(0, 4) == \"Data\")\n{\n if (data.substring(6, 12) == \"(HEX:)\")\n {\n var temp = data.substring(13, 15) + data.substring(16, 18)\n var hum = data.substring(19, 21) + data.substring(22, 24)\n var temp1 = parseInt(temp, 16)/100\n var hum1 = parseInt(hum, 16)/10\n var a1 = { payload: temp1 }, a2 = { payload: hum1 }\n }\n}\nif (data.substring(0, 4) == \"Rssi\")\n{\n var rssi = data.substring(6)\n var a3 = { payload: rssi }\n}\nreturn [a1,a2,a3];\n \n\n", 216 + "outputs": 3, 217 + "noerr": 0, 218 + "initialize": "", 219 + "finalize": "", 220 + "libs": [], 221 + "x": 420, 222 + "y": 60, 223 + "wires": [ 224 + [ 225 + "81edb003937f1a92" 226 + ], 227 + [ 228 + "c63593404a60d9dc" 229 + ], 230 + [ 231 + "61ca71032888887b" 232 + ] 233 + ] 234 + }, 235 + { 236 + "id": "61ca71032888887b", 237 + "type": "ui_chart", 238 + "z": "5f10779accc05655", 239 + "name": "", 240 + "group": "ef41b39771110fa5", 241 + "order": 1, 242 + "width": 0, 243 + "height": 0, 244 + "label": "RSSI", 245 + "chartType": "line", 246 + "legend": "false", 247 + "xformat": "dd HH:mm", 248 + "interpolate": "linear", 249 + "nodata": "", 250 + "dot": true, 251 + "ymin": "", 252 + "ymax": "", 253 + "removeOlder": 1, 254 + "removeOlderPoints": "", 255 + "removeOlderUnit": "3600", 256 + "cutout": 0, 257 + "useOneColor": false, 258 + "useUTC": false, 259 + "colors": [ 260 + "#1f77b4", 261 + "#aec7e8", 262 + "#ff7f0e", 263 + "#2ca02c", 264 + "#98df8a", 265 + "#d62728", 266 + "#ff9896", 267 + "#9467bd", 268 + "#c5b0d5" 269 + ], 270 + "outputs": 1, 271 + "useDifferentColor": false, 272 + "className": "", 273 + "x": 670, 274 + "y": 180, 275 + "wires": [ 276 + [] 277 + ] 278 + }, 279 + { 280 + "id": "81edb003937f1a92", 281 + "type": "ui_chart", 282 + "z": "5f10779accc05655", 283 + "name": "", 284 + "group": "7e1d1c102cf74e6b", 285 + "order": 1, 286 + "width": 0, 287 + "height": 0, 288 + "label": "Temperature", 289 + "chartType": "line", 290 + "legend": "false", 291 + "xformat": "HH:mm:ss", 292 + "interpolate": "linear", 293 + "nodata": "", 294 + "dot": true, 295 + "ymin": "", 296 + "ymax": "", 297 + "removeOlder": 1, 298 + "removeOlderPoints": "", 299 + "removeOlderUnit": "3600", 300 + "cutout": 0, 301 + "useOneColor": false, 302 + "useUTC": false, 303 + "colors": [ 304 + "#1f77b4", 305 + "#aec7e8", 306 + "#ff7f0e", 307 + "#2ca02c", 308 + "#98df8a", 309 + "#d62728", 310 + "#ff9896", 311 + "#9467bd", 312 + "#c5b0d5" 313 + ], 314 + "outputs": 1, 315 + "useDifferentColor": false, 316 + "className": "", 317 + "x": 690, 318 + "y": 100, 319 + "wires": [ 320 + [] 321 + ] 322 + }, 323 + { 324 + "id": "c63593404a60d9dc", 325 + "type": "ui_chart", 326 + "z": "5f10779accc05655", 327 + "name": "", 328 + "group": "3f5d139f158d7c1c", 329 + "order": 2, 330 + "width": 0, 331 + "height": 0, 332 + "label": "Humidity", 333 + "chartType": "line", 334 + "legend": "false", 335 + "xformat": "HH:mm:ss", 336 + "interpolate": "linear", 337 + "nodata": "", 338 + "dot": true, 339 + "ymin": "", 340 + "ymax": "", 341 + "removeOlder": 1, 342 + "removeOlderPoints": "", 343 + "removeOlderUnit": "3600", 344 + "cutout": 0, 345 + "useOneColor": false, 346 + "useUTC": false, 347 + "colors": [ 348 + "#1f77b4", 349 + "#aec7e8", 350 + "#ff7f0e", 351 + "#2ca02c", 352 + "#98df8a", 353 + "#d62728", 354 + "#ff9896", 355 + "#9467bd", 356 + "#c5b0d5" 357 + ], 358 + "outputs": 1, 359 + "useDifferentColor": false, 360 + "className": "", 361 + "x": 680, 362 + "y": 140, 363 + "wires": [ 364 + [] 365 + ] 366 + }, 367 + { 368 + "id": "79722a224bb22c96", 369 + "type": "debug", 370 + "z": "5f10779accc05655", 371 + "name": "debug 1", 372 + "active": true, 373 + "tosidebar": true, 374 + "console": false, 375 + "tostatus": false, 376 + "complete": "false", 377 + "statusVal": "", 378 + "statusType": "auto", 379 + "x": 420, 380 + "y": 180, 381 + "wires": [] 382 + }, 383 + { 384 + "id": "bb1c0e81fd51fa9e", 385 + "type": "serial-port", 386 + "serialport": "/dev/ttyUSB0", 387 + "serialbaud": "9600", 388 + "databits": "8", 389 + "parity": "none", 390 + "stopbits": "1", 391 + "waitfor": "", 392 + "dtr": "none", 393 + "rts": "none", 394 + "cts": "none", 395 + "dsr": "none", 396 + "newline": "\\n", 397 + "bin": "false", 398 + "out": "char", 399 + "addchar": "\\r\\n", 400 + "responsetimeout": "10000" 401 + }, 402 + { 403 + "id": "ef41b39771110fa5", 404 + "type": "ui_group", 405 + "name": "rssi", 406 + "tab": "abb98f80600a5448", 407 + "order": 3, 408 + "disp": true, 409 + "width": "6", 410 + "collapse": false, 411 + "className": "" 412 + }, 413 + { 414 + "id": "7e1d1c102cf74e6b", 415 + "type": "ui_group", 416 + "name": "TEM", 417 + "tab": "abb98f80600a5448", 418 + "order": 4, 419 + "disp": true, 420 + "width": "6", 421 + "collapse": false, 422 + "className": "" 423 + }, 424 + { 425 + "id": "3f5d139f158d7c1c", 426 + "type": "ui_group", 427 + "name": "HUM", 428 + "tab": "abb98f80600a5448", 429 + "order": 2, 430 + "disp": true, 431 + "width": "6", 432 + "collapse": false, 433 + "className": "" 434 + }, 435 + { 436 + "id": "abb98f80600a5448", 437 + "type": "ui_tab", 438 + "name": "LG01v2", 439 + "icon": "LG01v2", 440 + "disabled": false, 441 + "hidden": false 442 + } 443 +]
- arduino-LoRa-master.zip
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +28.6 KB - Content
- image-20221031091550-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +20.1 KB - Content
- image-20221031091652-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +21.1 KB - Content
- image-20221031091807-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +12.6 KB - Content
- image-20221031092053-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +8.6 KB - Content
- image-20221101160705-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +6.1 KB - Content
- image-20221101161318-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.3 KB - Content
- image-20221101161951-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +131.0 KB - Content
- image-20221101162527-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +290.1 KB - Content
- image-20221102105419-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +37.3 KB - Content
- image-20221102110604-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +35.9 KB - Content
- image-20221102114002-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +50.1 KB - Content
- image-20221102140053-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +45.6 KB - Content
- image-20221103140645-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +39.1 KB - Content
- image-20221103142228-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +37.7 KB - Content
- image-20221103142416-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +325.9 KB - Content
- image-20221103143528-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +25.2 KB - Content
- image-20221103143618-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +25.1 KB - Content
- image-20221103144405-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +32.8 KB - Content
- image-20221103152033-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +25.3 KB - Content
- image-20221103152238-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +32.8 KB - Content
- image-20221104100344-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +137.0 KB - Content
- image-20221104100520-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +140.7 KB - Content
- image-20221104102736-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +325.9 KB - Content
- image-20221104155612-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +384.2 KB - Content
- image-20221104155654-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +35.5 KB - Content
- image-20221104155724-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +42.4 KB - Content
- image-20221104155907-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +66.7 KB - Content
- image-20221104155928-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +49.5 KB - Content
- image-20221104155949-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.0 KB - Content
- image-20221108164337-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +17.5 KB - Content
- image-20221108164413-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +27.1 KB - Content
- image-20221108170314-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +34.6 KB - Content
- image-20221108170621-4.jpeg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +544.6 KB - Content
- image-20221108170731-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +2.5 MB - Content
- image-20221108172149-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +17.5 KB - Content
- 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
- image-20221108180334-10.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +159.3 KB - Content
- image-20221108180458-11.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +52.4 KB - Content
- image-20221112161031-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +35.1 KB - Content
- image-20221112161111-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +34.8 KB - Content
- image-20221112162733-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +78.7 KB - Content
- image-20221112163119-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +32.6 KB - Content
- image-20230504095457-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +412.6 KB - Content
- image-20230504095502-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +412.6 KB - Content
- image-20230504100722-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +21.5 KB - Content
- image-20230506110646-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +383.1 KB - Content
- image-20230506113332-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +28.6 KB - Content
- image-20230506113432-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +36.5 KB - Content
- image-20230506113531-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +403.2 KB - Content
- image-20230506113602-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +26.7 KB - Content
- image-20230506113623-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +35.4 KB - Content
- image-20230506113705-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +40.9 KB - Content
- image-20230506113722-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +33.2 KB - Content
- image-20230506113737-9.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +25.2 KB - Content
- image-20230506113813-10.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +39.5 KB - Content
- image-20230506113831-11.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +32.2 KB - Content
- image-20230506114127-12.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +56.1 KB - Content
- serial USB.json
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +5.1 KB - Content
-
... ... @@ -1,0 +1,244 @@ 1 +[ 2 + { 3 + "id": "5f10779accc05655", 4 + "type": "tab", 5 + "label": "serial USB", 6 + "disabled": false, 7 + "info": "", 8 + "env": [] 9 + }, 10 + { 11 + "id": "4ea60ce4df40717c", 12 + "type": "serial in", 13 + "z": "5f10779accc05655", 14 + "name": "", 15 + "serial": "bb1c0e81fd51fa9e", 16 + "x": 230, 17 + "y": 60, 18 + "wires": [ 19 + [ 20 + "a8a0db18429e7d84" 21 + ] 22 + ] 23 + }, 24 + { 25 + "id": "a8a0db18429e7d84", 26 + "type": "debug", 27 + "z": "5f10779accc05655", 28 + "name": "debug 1", 29 + "active": true, 30 + "tosidebar": true, 31 + "console": false, 32 + "tostatus": false, 33 + "complete": "false", 34 + "statusVal": "", 35 + "statusType": "auto", 36 + "x": 440, 37 + "y": 60, 38 + "wires": [] 39 + }, 40 + { 41 + "id": "fe5a93a52b6adcf1", 42 + "type": "inject", 43 + "z": "5f10779accc05655", 44 + "name": "AT+SEND=1,hello world,0,3", 45 + "props": [ 46 + { 47 + "p": "payload" 48 + } 49 + ], 50 + "repeat": "", 51 + "crontab": "", 52 + "once": false, 53 + "onceDelay": 0.1, 54 + "topic": "", 55 + "payload": "AT+SEND=1,hello world,0,3", 56 + "payloadType": "str", 57 + "x": 200, 58 + "y": 140, 59 + "wires": [ 60 + [ 61 + "3f8add7e2e1d1d17" 62 + ] 63 + ] 64 + }, 65 + { 66 + "id": "3f8add7e2e1d1d17", 67 + "type": "serial out", 68 + "z": "5f10779accc05655", 69 + "name": "", 70 + "serial": "bb1c0e81fd51fa9e", 71 + "x": 530, 72 + "y": 140, 73 + "wires": [] 74 + }, 75 + { 76 + "id": "16e7d3d83d9e9415", 77 + "type": "inject", 78 + "z": "5f10779accc05655", 79 + "name": "", 80 + "props": [ 81 + { 82 + "p": "payload" 83 + } 84 + ], 85 + "repeat": "", 86 + "crontab": "", 87 + "once": false, 88 + "onceDelay": 0.1, 89 + "topic": "", 90 + "payload": "ATZ", 91 + "payloadType": "str", 92 + "x": 270, 93 + "y": 200, 94 + "wires": [ 95 + [ 96 + "3f8add7e2e1d1d17" 97 + ] 98 + ] 99 + }, 100 + { 101 + "id": "09ea381519629dae", 102 + "type": "inject", 103 + "z": "5f10779accc05655", 104 + "name": "AT+FRE", 105 + "props": [ 106 + { 107 + "p": "payload" 108 + } 109 + ], 110 + "repeat": "", 111 + "crontab": "", 112 + "once": false, 113 + "onceDelay": 0.1, 114 + "topic": "", 115 + "payload": "AT+FRE=868.100,868.100", 116 + "payloadType": "str", 117 + "x": 260, 118 + "y": 260, 119 + "wires": [ 120 + [ 121 + "3f8add7e2e1d1d17" 122 + ] 123 + ] 124 + }, 125 + { 126 + "id": "5167a7f904013ffd", 127 + "type": "inject", 128 + "z": "5f10779accc05655", 129 + "name": "AT+BW", 130 + "props": [ 131 + { 132 + "p": "payload" 133 + } 134 + ], 135 + "repeat": "", 136 + "crontab": "", 137 + "once": false, 138 + "onceDelay": 0.1, 139 + "topic": "", 140 + "payload": "AT+BW=0,0", 141 + "payloadType": "str", 142 + "x": 270, 143 + "y": 320, 144 + "wires": [ 145 + [ 146 + "3f8add7e2e1d1d17" 147 + ] 148 + ] 149 + }, 150 + { 151 + "id": "dbe4abbc730c76e6", 152 + "type": "inject", 153 + "z": "5f10779accc05655", 154 + "name": "AT+SF", 155 + "props": [ 156 + { 157 + "p": "payload" 158 + } 159 + ], 160 + "repeat": "", 161 + "crontab": "", 162 + "once": false, 163 + "onceDelay": 0.1, 164 + "topic": "", 165 + "payload": "AT+SF=12,12", 166 + "payloadType": "str", 167 + "x": 270, 168 + "y": 380, 169 + "wires": [ 170 + [ 171 + "3f8add7e2e1d1d17" 172 + ] 173 + ] 174 + }, 175 + { 176 + "id": "3be3ab296a75d512", 177 + "type": "inject", 178 + "z": "5f10779accc05655", 179 + "name": "AT+RXMOD", 180 + "props": [ 181 + { 182 + "p": "payload" 183 + } 184 + ], 185 + "repeat": "", 186 + "crontab": "", 187 + "once": false, 188 + "onceDelay": 0.1, 189 + "topic": "", 190 + "payload": "AT+RXMOD=65535,0", 191 + "payloadType": "str", 192 + "x": 250, 193 + "y": 440, 194 + "wires": [ 195 + [ 196 + "3f8add7e2e1d1d17" 197 + ] 198 + ] 199 + }, 200 + { 201 + "id": "7a03d1413c60ea1c", 202 + "type": "inject", 203 + "z": "5f10779accc05655", 204 + "name": "AT+SYNCWORD", 205 + "props": [ 206 + { 207 + "p": "payload" 208 + } 209 + ], 210 + "repeat": "", 211 + "crontab": "", 212 + "once": false, 213 + "onceDelay": 0.1, 214 + "topic": "", 215 + "payload": "AT+SYNCWORD=0", 216 + "payloadType": "str", 217 + "x": 240, 218 + "y": 500, 219 + "wires": [ 220 + [ 221 + "3f8add7e2e1d1d17" 222 + ] 223 + ] 224 + }, 225 + { 226 + "id": "bb1c0e81fd51fa9e", 227 + "type": "serial-port", 228 + "serialport": "/dev/ttyUSB0", 229 + "serialbaud": "9600", 230 + "databits": "8", 231 + "parity": "none", 232 + "stopbits": "1", 233 + "waitfor": "", 234 + "dtr": "none", 235 + "rts": "none", 236 + "cts": "none", 237 + "dsr": "none", 238 + "newline": "\\n", 239 + "bin": "false", 240 + "out": "char", 241 + "addchar": "\\n", 242 + "responsetimeout": "10000" 243 + } 244 +]