Wiki source code of Node-RED_Install and Use
Last modified by Mengting Qiu on 2024/11/29 10:15
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | (% class="wikigeneratedid" id="HEndDeviceFrequencyBand" %) | ||
2 | **Table of** **Contents:** | ||
3 | |||
4 | {{toc/}} | ||
5 | |||
6 | |||
7 | |||
8 | |||
9 | = 1. Installation = | ||
10 | |||
11 | |||
12 | Check installation instruction for different OS from this link: [[https:~~/~~/nodered.org/docs/getting-started/>>https://nodered.org/docs/getting-started/]] | ||
13 | |||
14 | |||
15 | == 1.1 Install Example for CENTOS == | ||
16 | |||
17 | === 1.1.1 Installation === | ||
18 | |||
19 | |||
20 | (% class="box infomessage" %) | ||
21 | ((( | ||
22 | Reference Instruction from this link: [[https:~~/~~/github.com/node-red/linux-installers>>https://github.com/node-red/linux-installers]] | ||
23 | Run below commands and wait for installation complete. | ||
24 | ))) | ||
25 | |||
26 | [[image:image-20220526161040-1.png]] | ||
27 | |||
28 | |||
29 | (% style="color:blue" %)**Verify if the installation was successful** | ||
30 | |||
31 | Type in the command line interface ** (% style="color:red" %)node-red(%%)**(% style="color:red" %) | ||
32 | |||
33 | The following information appears to prove that the installation has been successful | ||
34 | |||
35 | [[image:image-20220526161103-2.png]] | ||
36 | |||
37 | |||
38 | === 1.1.2 If you want to start Node-RED as a background process === | ||
39 | |||
40 | |||
41 | Type in the command line interface (% style="color:red" %)**nohup node-red &** | ||
42 | |||
43 | It will prompt after startup | ||
44 | |||
45 | [[image:image-20220519104601-5.png]] | ||
46 | |||
47 | After seeing the above information, press **enter.** | ||
48 | |||
49 | Type in the command line exit. | ||
50 | |||
51 | The above is the installation and startup process of nodered. If you don't understand anything, you can go to the nodered official website. There are installation instructions for various systems. The address has a link at the top. | ||
52 | |||
53 | |||
54 | == 1.2 Install in Dragino Gataway == | ||
55 | |||
56 | |||
57 | The below models from Dragino already have Node-Red installed by default. Users no need to install it by themselves. | ||
58 | |||
59 | * [[LPS8v2 Indoor LoRaWAN Gateway. >>https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] | ||
60 | |||
61 | Other gateway model doesn't support built-in Node-Red server. | ||
62 | |||
63 | |||
64 | = 2. General Use of Node-RED = | ||
65 | |||
66 | |||
67 | This section describes some basic features of Node-RED. For more info please check the [[Node-RED official document>>https://nodered.org/]]. | ||
68 | |||
69 | |||
70 | == 2.1 Login to Node-RED interface == | ||
71 | |||
72 | |||
73 | Enter your public IP address followed by the port number 1880 | ||
74 | |||
75 | example:[[http:~~/~~/xxx.xx.xx.xx:1880/>>http://119.91.62.30:1880/]] | ||
76 | |||
77 | [[image:image-20220519104115-4.png||height="280" width="768"]] | ||
78 | |||
79 | |||
80 | == 2.2 Add flow == | ||
81 | |||
82 | |||
83 | Take NBSN95 mod1 UDP protocol as an example | ||
84 | |||
85 | After logging into the interface click** (% style="color:red" %)"+" (%%)**to create a flow | ||
86 | |||
87 | [[image:image-20241119101328-1.png||height="460" width="970"]] | ||
88 | |||
89 | Rename the stream | ||
90 | |||
91 | |||
92 | |||
93 | [[image:image-20241119101551-2.png||height="465" width="979"]] | ||
94 | |||
95 | |||
96 | Drag UDP into the editing area | ||
97 | |||
98 | [[image:image-20241119101952-3.png||height="466" width="983"]] | ||
99 | |||
100 | |||
101 | The same method as above, drag and drop functions and debug into the editing area | ||
102 | |||
103 | [[image:image-20241119102218-4.png||height="468" width="986"]] | ||
104 | |||
105 | configure UDP in | ||
106 | |||
107 | [[image:image-20241119103312-7.png||height="470" width="991"]] | ||
108 | |||
109 | |||
110 | Write to the UDP port that the device node sends to the server | ||
111 | |||
112 | Example My UDP device node sends to server port 8585 | ||
113 | just write 8585 | ||
114 | |||
115 | |||
116 | (% style="color:red" %)**Note: that the port that is already in use cannot be used. If the receiving fails, you need to check whether the port of the server is occupied. The sending port of the device node should not use the default port used by the server, such as a common port such as 8080.** | ||
117 | |||
118 | |||
119 | In order to avoid data confusion, different types of nodes do not use the same UDP port, because different nodes have different data formats and different functions. | ||
120 | |||
121 | [[image:image-20241119105123-9.png||height="557" width="995"]] | ||
122 | |||
123 | |||
124 | When the node successfully sends data, the effect shown in the following figure will appear | ||
125 | |||
126 | [[image:image-20241119104939-8.png||height="473" width="996"]] | ||
127 | |||
128 | |||
129 | === 2.2.1 About function === | ||
130 | |||
131 | |||
132 | If you are familiar with JS code, you can write it yourself | ||
133 | If you are not familiar, we have the JS code for each type of node, you just need to copy and paste it into it.([[dragino-end-node-red-Flow>>https://github.com/dragino/dragino-end-node-decoder/blob/main/Node-RED/NBSN95.json]]) | ||
134 | |||
135 | [[image:image-20241119112519-14.png||height="483" width="1018"]] | ||
136 | |||
137 | |||
138 | == 2.3 Plot Chart for sensors == | ||
139 | |||
140 | |||
141 | If you need data visualization, please refer to the following | ||
142 | |||
143 | [[image:image-20241119112928-15.png||height="484" width="1020"]] | ||
144 | |||
145 | |||
146 | (% style="color:blue" %)**1. Click Install** | ||
147 | |||
148 | (% style="color:blue" %)**2. Search the dashboard** | ||
149 | |||
150 | (% style="color:blue" %)**3. Click Install** | ||
151 | |||
152 | |||
153 | [[image:image-20241119110335-11.png||height="483" width="1018"]] | ||
154 | |||
155 | |||
156 | After the installation is successful, nodered will show the following node icon | ||
157 | |||
158 | [[image:image-20241119110539-12.png||height="484" width="1020"]] | ||
159 | |||
160 | |||
161 | === 2.3.1 the line chart as an example === | ||
162 | |||
163 | |||
164 | Drag the line chart to the editing area | ||
165 | |||
166 | Just drag and drop as many as you need, or you can copy | ||
167 | |||
168 | The demo uses 3 kinds. Voltage, temperature, humidity | ||
169 | |||
170 | [[image:image-20241119114103-18.png||height="422" width="889"]] | ||
171 | |||
172 | |||
173 | double click function | ||
174 | |||
175 | [[image:image-20241119113522-16.png||height="425" width="896"]] | ||
176 | |||
177 | |||
178 | Adjusted to 3, because we need to display 3 charts | ||
179 | |||
180 | [[image:image-20241119113742-17.png||height="427" width="899"]] | ||
181 | |||
182 | |||
183 | === 2.3.2 the chart settings === | ||
184 | |||
185 | |||
186 | Double-click while setting up the node as above | ||
187 | |||
188 | |||
189 | [[image:image-20241129100546-9.png||height="507" width="1068"]] | ||
190 | |||
191 | |||
192 | [[image:image-20241129100654-10.png||height="507" width="1067"]] | ||
193 | |||
194 | |||
195 | [[image:image-20241129100821-11.png||height="511" width="1076"]] | ||
196 | |||
197 | |||
198 | |||
199 | [[image:image-20220525185746-2.png||height="509" width="873"]] | ||
200 | |||
201 | |||
202 | |||
203 | After the display interface is defined for the first time, subsequent charts can directly select the display interface | ||
204 | |||
205 | |||
206 | [[image:image-20241129101359-12.png||height="418" width="880"]] | ||
207 | |||
208 | [[image:image-20220525190106-3.png||height="575" width="724"]] | ||
209 | |||
210 | |||
211 | Connect graph nodes to functions with lines | ||
212 | |||
213 | Click to deploy | ||
214 | |||
215 | [[image:image-20241120090012-1.png||height="416" width="877"]] | ||
216 | |||
217 | Enter the server public IP + port 1880/ui | ||
218 | |||
219 | example:[[http:~~/~~/xxx.xx.xx.xx:1880/ui>>url:http://119.91.62.30:1880/ui/#!/18?socketid=WY1MCE0RFEKHey8KAADj]] | ||
220 | |||
221 | [[image:image-20241119134533-19.png||height="455" width="880"]] | ||
222 | |||
223 | |||
224 | At this point, the basic demonstration of nodered is completed. If you need to beautify the chart and various visualizations, you can go to the official documentation of nodered for further understanding. | ||
225 | |||
226 | |||
227 | == 2.4 Store Value == | ||
228 | |||
229 | |||
230 | Regarding storage, we recommend two ways. | ||
231 | |||
232 | |||
233 | === 2.4.1 (% style="display:none" %) (%%)Method 1: Generate txt document directly === | ||
234 | |||
235 | |||
236 | Sample JSON file: [[https:~~/~~/www.dropbox.com/sh/mduw85jcuwsua22/AAAvwPhg9z6dLjJhmZjqBf_ma?dl=0>>https://www.dropbox.com/sh/mduw85jcuwsua22/AAAvwPhg9z6dLjJhmZjqBf_ma?dl=0]] | ||
237 | |||
238 | [[image:image-20220713102658-1.png||height="346" width="728"]] | ||
239 | |||
240 | |||
241 | === 2.4.2 Method 2: Use sqlite database === | ||
242 | |||
243 | |||
244 | ==== (% style="color:blue" %)**1. Install SQLite**(%%) ==== | ||
245 | |||
246 | |||
247 | [[image:image-20220713111030-2.png||height="438" width="739"]] | ||
248 | |||
249 | |||
250 | |||
251 | ==== (% style="color:blue" %)**2. After the installation is successful, the nodes in the picture will appear**(%%) ==== | ||
252 | |||
253 | |||
254 | [[image:image-20220713111200-3.png]] | ||
255 | |||
256 | |||
257 | |||
258 | ==== (% style="color:blue" %)**3. Import sample flow**(%%) ==== | ||
259 | |||
260 | |||
261 | Refer to the import example below to import the sqlite example flow | ||
262 | |||
263 | Download sample JSON file link: [[https:~~/~~/www.dropbox.com/sh/mduw85jcuwsua22/AAAvwPhg9z6dLjJhmZjqBf_ma?dl=0>>https://www.dropbox.com/sh/mduw85jcuwsua22/AAAvwPhg9z6dLjJhmZjqBf_ma?dl=0]] | ||
264 | |||
265 | |||
266 | = 3. Import Input Flow for Dragino Sensors = | ||
267 | |||
268 | |||
269 | Dragino provides input flow examples for the sensors. | ||
270 | |||
271 | User can download the required JSON file through [[Dragino Node-RED input flow template>>https://github.com/dragino/dragino-end-node-decoder/tree/main/Node-RED]]. | ||
272 | |||
273 | Take LHT65N as an example (Assume this node is already registered with TTN, MQTT protocol to connect) | ||
274 | |||
275 | [[image:image-20241129094455-1.png||height="537" width="1062"]] | ||
276 | |||
277 | [[image:image-20241129094558-2.png||height="538" width="1063"]] | ||
278 | |||
279 | [[image:image-20241129094724-3.png||height="513" width="1080"]] | ||
280 | |||
281 | [[image:image-20241129094850-4.png||height="513" width="1081"]] | ||
282 | |||
283 | After the import is successful, change the MQTT in node to your TTN information | ||
284 | |||
285 | [[image:image-20241129095458-6.png||height="511" width="1076"]] | ||
286 | |||
287 | [[image:image-20241129095351-5.png||height="515" width="1085"]] | ||
288 | |||
289 | |||
290 | |||
291 | Configure information consistent with your TTN | ||
292 | |||
293 | |||
294 | [[image:image-20241129095817-7.png||height="516" width="1087"]] | ||
295 | |||
296 | [[image:image-20241129095931-8.png||height="515" width="1085"]] | ||
297 | |||
298 | |||
299 | |||
300 | API keys generated by the password for you | ||
301 | |||
302 | [[image:image-20241119135338-21.png||height="515" width="1085"]] | ||
303 | |||
304 | |||
305 | Topic modify it to the following format | ||
306 | |||
307 | v3/(% style="color:red" %)Application ID(%%)@ttn/devices/(% style="color:red" %)End device ID(%%)/up | ||
308 | |||
309 | [[image:image-20241119135151-20.png||height="515" width="1085"]] | ||
310 | |||
311 | After the modification is completed, click Deploy | ||
312 | |||
313 | |||
314 | = 4. Add Dragino node = | ||
315 | |||
316 | |||
317 | Please do not modify the code anywhere to avoid any exceptions | ||
318 | |||
319 | The prerequisite is to install the Dragino node and the sqlite node dashboard node | ||
320 | |||
321 | The echarts library is placed in the static file of node red | ||
322 | |||
323 | Reference link: [[https:~~/~~/nodered.org/docs/user-guide/runtime/configuration>>]] | ||
324 | |||
325 | Please download the general flow and echarts files from this link:[[https:~~/~~/www.dropbox.com/scl/fo/677l8f3u3evpojcdcj3j7/h?rlkey=0iqbwf27dbyi75egmrp0p0yjx&dl=0>>https://www.dropbox.com/scl/fo/677l8f3u3evpojcdcj3j7/h?rlkey=0iqbwf27dbyi75egmrp0p0yjx&dl=0]] | ||
326 | |||
327 | |||
328 | == 4.1 Installing Dragino nodes == | ||
329 | |||
330 | |||
331 | [[image:image-20240104095739-1.png||height="662" width="662"]] | ||
332 | |||
333 | [[image:image-20240104100026-2.png]] | ||
334 | |||
335 | [[image:image-20240104100109-3.png]] | ||
336 | |||
337 | |||
338 | == 4.2 Import General Flow == | ||
339 | |||
340 | |||
341 | [[image:image-20240104100340-4.png]] | ||
342 | |||
343 | [[image:image-20240104100446-5.png||height="407" width="885"]] | ||
344 | |||
345 | Please refer to the previous chapters for MQTT settings and sqlite installation settings | ||
346 | |||
347 | |||
348 | == 4.3 Using flow == | ||
349 | |||
350 | |||
351 | Just double-click on the drag ino decoder node and select it from the dropdown menu | ||
352 | |||
353 | Corresponding nodes are sufficient | ||
354 | |||
355 | [[image:image-20240104100928-6.png||height="439" width="755"]] | ||
356 | |||
357 | Setting the template node | ||
358 | |||
359 | [[image:image-20240104101446-8.png]] | ||
360 | |||
361 | When multiple nodes are needed in the same process | ||
362 | |||
363 | [[image:image-20240104103636-1.png]] | ||
364 | |||
365 | If using the NodeRed that comes with the Dragino gateway | ||
366 | |||
367 | Change to the following path | ||
368 | |||
369 | "/static/echarts.min.js" | ||
370 | |||
371 | [[image:image-20240110153029-1.png]] | ||
372 | |||
373 | |||
374 | After setting up, select deployment | ||
375 | |||
376 | [[image:image-20240104101346-7.png||height="242" width="724"]] | ||
377 | |||
378 | Enter the server public IP + port 1880/ui | ||
379 | |||
380 | example:[[http:~~/~~/xxx.xx.xx.xx:1880/ui>>url:http://119.91.62.30:1880/ui/#!/18?socketid=WY1MCE0RFEKHey8KAADj]] | ||
381 | |||
382 | You can see the UI display effect in the following picture | ||
383 | |||
384 | [[image:image-20240104104931-2.png||height="737" width="1131"]] | ||
385 | |||
386 | |||
387 | = 5. FAQ = | ||
388 | |||
389 | == 5.1 How to use Node-Red to schedule downlink to ChirpStack LoRaWAN Server? == | ||
390 | |||
391 | === 5.1.1 Install node-red-node-base64 === | ||
392 | |||
393 | |||
394 | [[image:image-20240222154204-1.png||height="456" width="983"]] | ||
395 | |||
396 | [[image:image-20240222154819-3.png||height="469" width="990"]] | ||
397 | |||
398 | |||
399 | === 5.1.2 Import Example Flow === | ||
400 | |||
401 | |||
402 | The Json file for the example flow can be downloaded at this link:[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/blob/main/Node-RED/chirpstack-MQTT-down.json.>>https://github.com/dragino/dragino-end-node-decoder/blob/main/Node-RED/chirpstack-MQTT-down.json]] | ||
403 | |||
404 | [[image:image-20240222155121-4.png||height="495" width="1017"]] | ||
405 | |||
406 | [[image:image-20240222155239-5.png||height="497" width="1020"]] | ||
407 | |||
408 | |||
409 | === 5.1.3 Establish connection === | ||
410 | |||
411 | |||
412 | Setting up the server: | ||
413 | |||
414 | [[image:image-20240222160019-7.png||height="413" width="955"]] | ||
415 | |||
416 | [[image:image-20240222160223-8.png||height="416" width="956"]] | ||
417 | |||
418 | [[image:image-20240222160347-9.png||height="426" width="963"]] | ||
419 | |||
420 | Change the theme to Application lD and DevEUl for ChirpStack: | ||
421 | |||
422 | [[image:image-20240222160712-10.png||height="429" width="988"]] | ||
423 | |||
424 | [[image:image-20240222160735-11.png||height="417" width="984"]] | ||
425 | |||
426 | [[image:image-20240222160842-12.png||height="387" width="992"]] | ||
427 | |||
428 | And then, | ||
429 | |||
430 | [[image:image-20240222161010-13.png||height="454" width="997"]] | ||
431 | |||
432 | [[image:image-20240222161147-14.png||height="478" width="1002"]] | ||
433 | |||
434 | Connection established successfully: | ||
435 | |||
436 | [[image:image-20240222161252-15.png||height="412" width="1001"]] | ||
437 | |||
438 | |||
439 | === 5.1.4 Input downlink command === | ||
440 | |||
441 | |||
442 | [[image:image-20240222161614-16.png||height="465" width="997"]] | ||
443 | |||
444 | [[image:image-20240222161937-17.png||height="472" width="997"]] | ||
445 | |||
446 | |||
447 | Example action video:[[https:~~/~~/youtu.be/Lqm-k5nQ5eU>>https://youtu.be/Lqm-k5nQ5eU]] | ||
448 | |||
449 | |||
450 | == 5.2 How to use Node-Red to schedule downlink to TTN-V3 LoRaWAN Server? == | ||
451 | |||
452 | === 5.2.1 Reference 5.1.1 Installing base64 nodes === | ||
453 | |||
454 | === 5.2.2 Import Example Flow === | ||
455 | |||
456 | |||
457 | Reference 5.1.2 | ||
458 | |||
459 | Taking LT-222222-L as an example | ||
460 | |||
461 | The Json file for the example flow can be downloaded at this link:[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/blob/main/Node-RED/TTN-V3-MQTT-down.json>>https://github.com/dragino/dragino-end-node-decoder/blob/main/Node-RED/TTN-V3-MQTT-down.json]] | ||
462 | |||
463 | Please refer to this video for specific operation steps: [[https:~~/~~/youtu.be/kms679e4m_Y>>https://youtu.be/kms679e4m_Y]] |