Last modified by Xiaoling on 2022/09/02 18:11

From version 23.1
edited by Xiaoling
on 2022/05/31 14:09
Change comment: Uploaded new attachment "image-20220531140955-22.png", version {1}
To version 43.3
edited by Xiaoling
on 2022/05/31 14:29
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -23,7 +23,9 @@
23 23  
24 24  = 3. What does this example shows? How it works? =
25 25  
26 +(((
26 26  The server we use here is ThingSpeak which has an intuitive chart to show the test result for our test.The ThingSpeak IoT service now supports MQTT subscriptions to receive instant updates when [[ThingSpeak>>url:https://thingspeak.com/]] channel gets updated. The method here is general and can be used with other IoT servers for MQTT connection as well.
28 +)))
27 27  
28 28  [[image:image-20220531135402-1.png]]
29 29  
... ... @@ -37,17 +37,25 @@
37 37  
38 38  [[image:image-20220531135521-3.png]]
39 39  
42 +(((
40 40  Schematic diagram: uplink.In this section, we will try to program LG01 to uplink data to ThingSpeak. The data flow in this example.We have already tried ① and ② in the above simple LoRa example. Now we will try the step ③ first, after it work as expect, we will integrate these three steps together for a complete uplink example.
44 +)))
41 41  
42 42  
43 43  
44 44  [[image:image-20220531135607-4.png]]
45 45  
50 +(((
46 46  Schematic diagram:downlink.In this section, we will try to program LG01 to fetch download data from ThingSpeak, then broadcast this data to local LoRa network. The end node will get this message and check if they need to do something. Similar with Uplink Example, we will first try to do it in PC, then do it in Linux side, and finally integrate it with LoRa.
52 +)))
47 47  
54 +(((
48 48  MQTT agreement to achieve the need: client and server There are three identities in the MQTT protocol: Publish, Broker (server), Subscribe. Among them, the publisher and the subscriber of the message are all clients, the broker is the server, and the publisher can be both the subscriber and the subscriber. MQTT transmission of information is divided into: Topic and payload in two parts Topic, can be understood as the type of message subscribers Subscribe, you will receive the theme of the message content (payload) The payload, which can be understood as the content of the message, refers to the specific content to be used by the subscribers.
56 +)))
49 49  
58 +(((
50 50  To use the server, we need to register an account on [[ThingSpeak>>url:https://thingspeak.com/]] . Then create a channel and type the channel info. As shown below, the Channel ID is the unique ID to store our data in [[ThingSpeak>>url:https://thingspeak.com/]] .
60 +)))
51 51  
52 52  
53 53  = 4. Preparation =
... ... @@ -156,39 +156,62 @@
156 156  
157 157  
158 158  )))
159 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/6/63/3_3.png/400px-3_3.png~|~|height="213" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:3_3.png]](((
169 +1. [[image:image-20220531140955-22.png]](((
160 160  LG01 has built-in Linux tool mosquitto. It is a very powerful tool for http communication. We can use this tool to handle MQTT API call in LG01. Input this command and replace your keys.
171 +
172 +
173 +
161 161  )))
162 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/3/35/3_4.png/500px-3_4.png~|~|height="180" width="500"~]~]>>url:https://wiki.dragino.com/index.php/File:3_4.png]](((
175 +1. [[image:image-20220531141026-23.png]](((
163 163  Go to Server check out result.We success to use LG01 to uplink data to ThingSpeak,the mosquitto_pub command is executed in the Linux side, finally, we will have to call mosquitto_pub command with sensor data variable in Arduino side. This is through the process class in Arduino and we will show it in the final sketch.
164 164  )))
165 165  
166 166  * This command:
167 167  
168 -{{{mosquitto_pub -h mqtt.thingspeak.com -p 1883 -u dragino -P UZ4NGHKJMKS9WR5E -i dragino_Client -t channels/399171/publish/A4NNF6G8G63JOIUV -m "field1=23.5&field2=57.5&status=MQTTPUBLISH"
169 -}}}
181 +(% class="box infomessage" %)
182 +(((
183 +**mosquitto_pub -h mqtt.thingspeak.com -p 1883 -u dragino -P UZ4NGHKJMKS9WR5E  -i dragino_Client -t channels/399171/publish/A4NNF6G8G63JOIUV -m "field1=23.5&field2=57.5&status=MQTTPUBLISH"**
184 +)))
170 170  
171 171  * Need replace:
172 172  
173 -{{{UZ4NGHKJMKS9WR5E //MQTT API
174 -399171 //Channel ID
175 -A4NNF6G8G63JOIUV //Write API Key
176 -}}}
188 +(% class="box infomessage" %)
189 +(((
190 +**UZ4NGHKJMKS9WR5E  ~/~/MQTT API
191 +399171            ~/~/Channel ID
192 +A4NNF6G8G63JOIUV  ~/~/Write API Key**
193 +)))
177 177  
178 178  
179 179  === 4.6.2 Input the command at the console(LG01 new version:4.3.4) ===
180 180  
181 -1. [[~[~[image:https://wiki.dragino.com/images/8/84/3_1.png~|~|height="99" width="93"~]~]>>url:https://wiki.dragino.com/index.php/File:3_1.png]](((
198 +1. [[image:image-20220531141150-24.png]](((
182 182  Open this Application.
200 +
201 +
202 +
183 183  )))
184 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/6/6e/MQTT_Command_2.png/400px-MQTT_Command_2.png~|~|height="76" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Command_2.png]](((
204 +1. (((
205 +[[image:image-20220531141400-27.png]]
206 +
185 185  Check the settings.
208 +
209 +
210 +
186 186  )))
187 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/8/8d/MQTT_Command_1.png/400px-MQTT_Command_1.png~|~|height="343" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Command_1.png]](((
212 +1. (((
213 +[[image:image-20220531141601-30.png]]
214 +
188 188  input this command.
216 +
217 +
218 +
189 189  )))
190 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/d/de/MQTT_Command_3.png/400px-MQTT_Command_3.png~|~|height="207" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Command_3.png]](((
220 +1. [[image:image-20220531141515-29.png]](((
191 191  Check the result.
222 +
223 +
224 +
192 192  )))
193 193  
194 194  == 4.7 Updata data to Server(Through MQTT) ==
... ... @@ -201,24 +201,42 @@
201 201  1. Sketch will write active content to /tmp/iot/status periodically (every 5 minutes).(Watchdog feature)
202 202  
203 203  
204 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/8/82/MQTT_Sketch_2.png/400px-MQTT_Sketch_2.png~|~|height="233" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Sketch_2.png]](((
237 +1. [[image:image-20220531141656-31.png]](((
205 205  Open the sketch [[MQTT_Simple_Server>>url:https://github.com/dragino/Arduino-Profile-Examples/tree/master/libraries/Dragino/examples/LoRa/MQTT_Simple_Server]].(Board:Dragino Yun + UNO or LG01/OLG01,Port:Network ports.)and upload.
239 +
240 +
241 +
206 206  )))
207 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/7/73/MQTT_Sketch2.png/400px-MQTT_Sketch2.png~|~|height="540" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Sketch2.png]](((
243 +1. [[image:image-20220531141800-32.png]](((
208 208  Open Serial monitor.
245 +
246 +
247 +
209 209  )))
210 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/9/98/MQTT_Sketch_1.png/400px-MQTT_Sketch_1.png~|~|height="261" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Sketch_1.png]](((
249 +1. [[image:image-20220531141842-33.png]](((
211 211  Open the Sketch [[MQTT_Client>>url:https://github.com/dragino/Arduino-Profile-Examples/tree/master/libraries/Dragino/examples/IoTServer/ThingSpeak/MQTT_Client]]. (Board:Arduino/Genuino Uno.Port:Serial ports.)and upload.
251 +
252 +
253 +
212 212  )))
213 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/3/3d/MQTT_Sketch3.png/400px-MQTT_Sketch3.png~|~|height="371" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Sketch3.png]](((
255 +1. [[image:image-20220531141927-34.png]](((
214 214  Open Serial monitor.
257 +
258 +
259 +
215 215  )))
216 216  1. Go to IoT Server to check the result.
217 217  1. (((
218 -[[~[~[image:https://wiki.dragino.com/images/thumb/4/43/MQTT_result_1.png/400px-MQTT_result_1.png~|~|alt="MQTT result 1.png" height="181" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_result_1.png]]
263 +[[image:image-20220531142023-35.png]]
264 +
265 +
266 +
219 219  )))
220 220  1. (((
221 -[[~[~[image:https://wiki.dragino.com/images/thumb/7/70/MQTT_result_2.png/400px-MQTT_result_2.png~|~|alt="MQTT result 2.png" height="190" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_result_2.png]]
269 +[[image:image-20220531142155-36.png]]
270 +
271 +
272 +
222 222  )))
223 223  
224 224  = 5. FAQ =
... ... @@ -229,18 +229,25 @@
229 229  
230 230  For example: for ThingSpeak, a MQTT publish command is:
231 231  
232 -{{{mosquitto_pub -h mqtt.thingspeak.com -p 1883 -u dragino -P QZXTAKE88V3S7O2J -i dragino_Client -t channels/200893/publish/B9Z0R25QNVEBKIFY -m "field1=34&field2=89&status=MQTTPUBLISH"
233 -}}}
283 +(% class="box infomessage" %)
284 +(((
285 +**mosquitto_pub -h mqtt.thingspeak.com -p 1883 -u dragino -P QZXTAKE88V3S7O2J  -i dragino_Client -t channels/200893/publish/B9Z0R25QNVEBKIFY -m "field1=34&field2=89&status=MQTTPUBLISH"**
286 +)))
234 234  
235 235  What now we need to put in the LG01 is how to combine this command.
236 236  
237 237  1. LG01 web console -> Sensor -> MQTT
238 238  1. Choose general Server
239 -1. [[~[~[image:https://wiki.dragino.com/images/thumb/e/ea/MQTT_Configure1.png/600px-MQTT_Configure1.png~|~|height="367" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Configure1.png]](((
292 +1. [[image:image-20220531142342-37.png]](((
240 240  Refer to your server to fill in.
294 +
295 +
296 +
241 241  )))
242 -1. [[~[~[image:https://wiki.dragino.com/images/0/07/MQTT_Configure2.png~|~|height="93" width="538"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Configure2.png]](((
298 +1. [[image:image-20220531142447-38.png]](((
243 243  Ex:ThingSpeak Server
300 +
301 +
244 244  )))
245 245  
246 246  According to MQTT commands: mosquitto_pub, we need to put
... ... @@ -259,7 +259,7 @@
259 259  
260 260  User can also enable MQTT debug in the LG01 ~-~-> IoT Server settings and run logread in Linux console to see how the mqtt command is compose. below is an example:
261 261  
262 -[[~[~[image:https://wiki.dragino.com/images/thumb/8/81/MQTT_Configure3.png/600px-MQTT_Configure3.png~|~|height="114" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Configure3.png]]
320 +[[image:image-20220531142525-39.png]]
263 263  
264 264  MQTT Logread example
265 265  
... ... @@ -268,19 +268,31 @@
268 268  
269 269  LG01 for 4.3.3 version,we have added watchdog feature. In order to avoid the gateway running process will get stuck. So add writing action on every times.
270 270  
271 -* [[~[~[image:https://wiki.dragino.com/images/thumb/f/f2/Wathcdog.png/400px-Wathcdog.png~|~|height="184" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:Wathcdog.png]](((
329 +* [[image:image-20220531142558-40.png]](((
272 272  Enable Sensor->Micro-Controller settings
331 +
332 +
333 +
273 273  )))
274 -* [[~[~[image:https://wiki.dragino.com/images/thumb/8/82/MQTT_Sketch_2.png/400px-MQTT_Sketch_2.png~|~|height="233" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Sketch_2.png]](((
335 +* [[image:image-20220531142629-41.png]](((
275 275  Open the sketch [[MQTT_Simple_Server>>url:https://github.com/dragino/Arduino-Profile-Examples/tree/master/libraries/Dragino/examples/LoRa/MQTT_Simple_Server]].(Board:Dragino Yun + UNO or LG01/OLG01,Port:Network ports.)and upload.
337 +
338 +
339 +
276 276  )))
277 -* [[~[~[image:https://wiki.dragino.com/images/2/21/Loop.png~|~|height="181" width="388"~]~]>>url:https://wiki.dragino.com/index.php/File:Loop.png]](((
341 +* [[image:image-20220531142659-42.png]](((
278 278  Each time the function loops, it uses the watchdog function once.
343 +
344 +
345 +
279 279  )))
280 -* [[~[~[image:https://wiki.dragino.com/images/thumb/3/35/Dog.png/400px-Dog.png~|~|height="161" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:Dog.png]](((
347 +* [[image:image-20220531142720-43.png]](((
281 281  Open SSH and check watchdog result.If the result change constantly,the feature enable successfully.
349 +
350 +
351 +
282 282  )))
283 -* [[~[~[image:https://wiki.dragino.com/images/thumb/a/ac/Checkdog.png/400px-Checkdog.png~|~|height="222" width="400"~]~]>>url:https://wiki.dragino.com/index.php/File:Checkdog.png]](((
353 +* [[image:image-20220531142748-44.png]](((
284 284  If the time doesnt's change,you can refer it to calculate for checking status.
285 285  )))
286 286  
image-20220531141026-23.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +22.8 KB
Content
image-20220531141150-24.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +14.6 KB
Content
image-20220531141303-26.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +35.4 KB
Content
image-20220531141400-27.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +17.0 KB
Content
image-20220531141515-29.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +36.1 KB
Content
image-20220531141601-30.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +34.5 KB
Content
image-20220531141656-31.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +38.8 KB
Content
image-20220531141800-32.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +32.9 KB
Content
image-20220531141842-33.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +39.2 KB
Content
image-20220531141927-34.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +26.8 KB
Content
image-20220531142023-35.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +34.5 KB
Content
image-20220531142155-36.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +42.9 KB
Content
image-20220531142342-37.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +27.4 KB
Content
image-20220531142447-38.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +4.7 KB
Content
image-20220531142525-39.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +69.1 KB
Content
image-20220531142558-40.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +43.9 KB
Content
image-20220531142629-41.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +38.2 KB
Content
image-20220531142659-42.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +5.1 KB
Content
image-20220531142720-43.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +13.3 KB
Content
image-20220531142748-44.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +11.5 KB
Content