Changes for page Mapwize

Last modified by Xiaoling on 2023/04/23 15:31

From version 28.3
edited by Xiaoling
on 2022/07/25 11:32
Change comment: There is no comment for this version
To version 1.3
edited by Xiaoling
on 2022/05/17 10:15
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,28 +1,20 @@
1 -**~ Table of Contents:**
1 +**Contents:**
2 2  
3 3  {{toc/}}
4 4  
5 5  
6 += 1. Introduction =
6 6  
7 -
8 -= 1.  Introduction =
9 -
10 -
11 11  This article shows how to use [[LBT1>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/165-lbt1.html]] to build an Indoor Positioning Solution.
12 12  
10 +[[image:https://wiki.dragino.com/images/thumb/1/1a/LBT1_Mapwize_1.png/600px-LBT1_Mapwize_1.png||height="511" width="600"]]
13 13  
14 -[[image:image-20220526150521-2.png]]
15 -
16 16  LBT1 Indoor Positioning Network Structure
17 17  
14 += 2. Prepare Map =
18 18  
16 +== 2.1 Prepare iBeacons ==
19 19  
20 -= 2.  Prepare Map =
21 -
22 -
23 -== 2.1  Prepare iBeacons ==
24 -
25 -
26 26  (((
27 27  (((
28 28  Any BLE iBeacons should work in this solution, each iBeacon stands for a fix position in the map. Here is an iBeacon for example.
... ... @@ -38,17 +38,13 @@
38 38  (((
39 39  (((
40 40  BCN01 iBeacon from Dragino: [[http:~~/~~/www.dragino.com/products/accessories/item/166-bcn01.html>>url:http://www.dragino.com/products/accessories/item/166-bcn01.html]]
41 -
42 -
43 43  )))
44 44  )))
45 45  
46 -[[image:image-20220526150651-4.png]]
36 +[[image:https://wiki.dragino.com/images/thumb/8/88/Ibeacon1.png/300px-Ibeacon1.png||height="169" width="300"]]
47 47  
48 48  BCN01 iBeacon
49 49  
50 -
51 -
52 52  (((
53 53  (((
54 54  We need to get the UUID, MAJOR, MINOR, TXPOWER where each iBeacon is placed. We can get it with the iBeacon software, such as "EW-beacon".
... ... @@ -55,99 +55,71 @@
55 55  )))
56 56  )))
57 57  
58 -[[image:image-20220526150743-5.png]]
46 +[[image:https://wiki.dragino.com/images/thumb/f/fa/Ibeacon2.jpg/400px-Ibeacon2.jpg||height="867" width="400"]]
59 59  
60 60  beacon software
61 61  
62 62  
51 +[[image:https://wiki.dragino.com/images/thumb/f/f2/Ibeacon3.jpg/400px-Ibeacon3.jpg||height="867" width="400"]]
63 63  
64 -[[image:image-20220526150824-6.png]]
65 -
66 66  beacon software
67 67  
55 +== 2.2 Create Map ==
68 68  
69 -
70 -== 2.2  Create Map ==
71 -
72 -
73 73  (((
74 74  (((
75 75  Here we use the indoor map at [[https:~~/~~/studio.mapwize.io/>>url:https://studio.mapwize.io/]]. Below shows the steps for create a map and put the iBeacon on a fix position.
76 -
77 -
78 78  )))
79 79  )))
80 80  
81 81  (((
82 82  (((
83 -**~1. Register an account at [[https:~~/~~/studio.mapwize.io/>>url:https://studio.mapwize.io/]] to create an indoor map.**
65 +~1. Register an account at [[https:~~/~~/studio.mapwize.io/>>url:https://studio.mapwize.io/]] to create an indoor map.
84 84  )))
85 85  )))
86 86  
87 87  (((
88 88  (((
89 -**2. Create Place Types.**
90 -
91 -
71 +2. Create Place Types.
92 92  )))
93 93  )))
94 94  
95 -[[image:image-20220526150915-7.png]]
75 +[[image:https://wiki.dragino.com/images/thumb/4/4d/Beacon10.png/600px-Beacon10.png||height="274" width="600"]]
96 96  
97 97  Create place types
98 98  
79 +3. Search Venues. (Indoor map area identification)
99 99  
81 +[[image:https://wiki.dragino.com/images/thumb/e/e8/Beacon11.jpg/600px-Beacon11.jpg||alt="Beacon11.jpg" height="324" width="600"]]
100 100  
101 -**3. Search Venues. (Indoor map area identification)**
102 -
103 -
104 -[[image:image-20220526151046-8.png]]
105 -
106 -
107 107  (((
108 -(((
109 109  The map accurately places the beacon of ibeacon, which is the reference for positioning. At this time, UUID, MAJOR and MINOR must be filled in correctly.
110 -
111 -
112 -
113 113  )))
114 -)))
115 115  
116 -**4. Upload Floor plan.**
87 +4. Upload Floor plan.
117 117  
89 +[[image:https://wiki.dragino.com/images/thumb/d/d1/Beacon12.png/600px-Beacon12.png||height="197" width="600"]]
118 118  
119 -[[image:image-20220526151223-9.png]]
120 -
121 121  add images
122 122  
93 +5. Create Layer
123 123  
95 +[[image:https://wiki.dragino.com/images/thumb/0/0e/Beacon13.png/600px-Beacon13.png||height="208" width="600"]]
124 124  
125 -**5. Create Layer**
126 -
127 -
128 -[[image:image-20220526151305-10.png]]
129 -
130 130  create layer
131 131  
99 +6. Add iBeacon position info. Drag the iBeacon to match position and input the UUID, MAJOR and MINOR of this iBeacon.
132 132  
133 -(((
134 -**6. Add iBeacon position info. Drag the iBeacon to match position and input the UUID, MAJOR and MINOR of this iBeacon.**
101 +[[image:https://wiki.dragino.com/images/thumb/1/1d/Beacon14.png/600px-Beacon14.png||height="261" width="600"]]
135 135  
136 -
137 -)))
138 -
139 -[[image:image-20220526151519-11.png]]
140 -
141 141  create iBeacon
142 142  
143 -
144 144  = 3. Configure TTN =
145 145  
146 146  == 3.1 Configure LBT1 to Upload data to TTN ==
147 147  
148 -Please refer the instruction in the [[User Manual>>url:http://www.dragino.com/downloads/index.php?dir=accessories/Bluetooth/BCN01]]. Note the (% style="color:#4f81bd" %)**LBT1 need to set to MOD=3**(%%) here.
109 +Please refer the instruction in the [[User Manual>>url:http://www.dragino.com/downloads/index.php?dir=accessories/Bluetooth/BCN01]]. Note the LBT1 need to set to MOD=3 here.
149 149  
150 -
151 151  == 3.2 Decoder in TTN ==
152 152  
153 153  (% class="box" %)
... ... @@ -230,198 +230,151 @@
230 230  
231 231  )))
232 232  
233 -
234 234  = 4. Set Up Converter Server =
235 235  
236 -* (((
237 -How to install and run this service on Linux?
238 -)))
195 +* How to install and run this service on Linux?
239 239  
240 -(((
241 241  Step1.Rent a Linux on Amazon cloud or alicloud to the host, and pre install the Linux system (Debian, Ubuntu, CentOS are available for distribution).
242 -)))
243 243  
244 -(((
245 245  Step2.Run the code on the server after compiling. Compilation requires the support of libcurl. First, compile libmqtt in the code, and then compile location.
246 -)))
247 247  
248 -(((
201 +
249 249  System: Debian / Ubuntu
250 -)))
251 251  
252 -(% class="box" %)
253 -(((
254 -step:
255 -\\1. sudo apt install libcurl4-dev 
256 -\\2. sudo apt install  gcc automake autoconf libtool make cmake
257 -\\3. git clone -b master https:~/~/github.com/mikayong/location.git
258 -\\4. cd location/libmqtt
259 -\\5. mkdir build
260 -\\6. cd build && cmake ../
261 -\\7. make && sudo make install 
262 -\\8. cd ../
263 -\\9. make 
264 -\\10. sudo cp location_conf.json  /etc/
265 -\\11. Edit the configuration file, and run the location service in the background: ./location &
266 -)))
204 +{{{step:
205
206 +1. sudo apt install libcurl4-dev 
207
208 +2. sudo apt install  gcc automake autoconf libtool make cmake
209
210 +3. git clone -b master https://github.com/mikayong/location.git
211
212 +4. cd location/libmqtt
213
214 +5. mkdir build
215
216 +6. cd build && cmake ../
217
218 +7. make && sudo make install 
219
220 +8. cd ../
221
222 +9. make 
223
224 +10. sudo cp location_conf.json  /etc/
225
226 +11. Edit the configuration file, and run the location service in the background: ./location &}}}
267 267  
268 -(((
269 269  Step3.The location service subscribes to the lora information stream on TTN through the mqtt protocol, parses the information to generate a geographic location, and finally creates a geographic location on the mapwize map. The following is the configuration of the location service, the configuration file is in json format, the file is /etc/location_conf.json
270 270  
271 -
272 -)))
273 -
274 274  = 5. Configuration file: location_conf.json =
275 275  
276 -* (((
277 -We use the 120.78.138.177 server as an example. The location service is currently installed on the 120.78.138.177 server, the code is in /root/location, and the configuration file for running location pre-read directly is /etc/location_conf.json.
278 -)))
232 +* We use the 120.78.138.177 server as an example. The location service is currently installed on the 120.78.138.177 server, the code is in /root/location, and the configuration file for running location pre-read directly is /etc/location_conf.json.
279 279  
280 -(((
281 281  { "location_conf": {
282 -)))
283 283  
284 -(% class="box" %)
285 -(((
286 -(((
287 - "loctype": "indoor",       ~/~/ indoor/outdoor
288 - "locmap": "mapwize"    ~/~/   Map interface: mapwize, traccar
289 -)))
290 -)))
236 +{{{ "loctype": "indoor", // indoor/outdoor
237 + "locmap": "mapwize" // Map interface: mapwize, traccar
238 +}}}
291 291  
292 -(((
293 293  }, "mqtt_conf": {
294 -)))
295 295  
296 -(% class="box" %)
297 -(((
298 -(((
299 - "servaddr": "[str]",    ~/~/     Lorawan server address: Refer to TTN app handler:eu.thethings.network
300 - "servport": [int],       ~/~/   Lorawan server port: 1883
301 - "clientid": "[str]",       ~/~/   MQTT client identity: Custom
302 - "qos":[int],                 ~/~/  (Optional) MQTT service quality: 0
303 - "username":"[str]",     ~/~/   Agent name of mqtt: application ID of TTN
304 - "password":"[str]",      ~/~/  The proxy password of mqtt: application access key of TTN
305 - "topic":"[str]",              ~/~/ The topic of mqtt subscription: TTN is + / devices / + / up
306 - "connection":"[str]" },   ~/~/(Optional) mqtt is a string used for direct connection, composed of serveraddr and port
307 - "mapwize_conf":{          ~/~/Map settings
308 - "apikey": "[str]",        ~/~/ The apikey of the map user can be found on the Api keys page of wapwize, and read and write permissions need to be set
309 - "venueid":"[str]",        ~/~/ (Optional)Indoor map area identification
310 - "orgid":"[str]",           ~/~/  The identity of the user organizer
311 - "universesid":"[str]",   ~/~/The range indicator of the indoor map, find it on the universes page
312 - "placetype": "[str]"     ~/~/The type of place used to identify the creation must be created on the placetypes page in the map, where the placetype name is filled in
242 +{{{ "servaddr": "[str]", // Lorawan server address: Refer to TTN app handler:eu.thethings.network
243 + "servport": [int], // Lorawan server port: 1883
244 + "clientid": "[str]", // MQTT client identity: Custom
245 + "qos":[int], // (Optional) MQTT service quality: 0
246 + "username":"[str]", // Agent name of mqtt: application ID of TTN
247 + "password":"[str]", // The proxy password of mqtt: application access key of TTN
248 + "topic":"[str]", // The topic of mqtt subscription: TTN is + / devices / + / up
249 + "connection":"[str]" }, //(Optional) mqtt is a string used for direct connection, composed of serveraddr and port
250 +"mapwize_conf":{ //Map settings
251 + "apikey": "[str]", // The apikey of the map user can be found on the Api keys page of wapwize, and read and write permissions need to be set
252 + "venueid":"[str]", // (Optional)Indoor map area identification
253 + "orgid":"[str]", // The identity of the user organizer
254 + "universesid":"[str]", //The range indicator of the indoor map, find it on the universes page
255 + "placetype": "[str]" //The type of place used to identify the creation must be created on the placetypes page in the map, where the placetype name is filled in
313 313   },
314 314  "loracloud":{
315 - "token":  "[str]"          ~/~/The password string of loracloud location service, the outdoor map must fill in the account token of loracloud
316 -)))
317 -)))
258 + "token": "[str]" //The password string of loracloud location service, the outdoor map must fill in the account token of loracloud
259 +}}}
318 318  
319 -(((
320 320  }
321 -)))
322 322  
323 -(% class="box" %)
324 -(((
325 -(((
326 -"rssi_conf": {
327 - "rssirate": [int],          ~/~/ (Optional) A basis for rssi calculation distance, the rssi value (absolute value) when the beacon is 1 meter apart 
328 - "rssidiv": [float] }        ~/~/ (Optional) rssi measures an attenuation value of distance. As the distance to the beacon is farther, the value changes speed
329 -)))
330 -)))
263 +{{{"rssi_conf": {
264 + "rssirate": [int], // (Optional) A basis for rssi calculation distance, the rssi value (absolute value) when the beacon is 1 meter apart
265 + "rssidiv": [float] } // (Optional) rssi measures an attenuation value of distance. As the distance to the beacon is farther, the value changes speed
266 +}}}
331 331  
332 -(((
333 333  }
334 -)))
335 335  
336 336  * Parameter acquisition method of configuration file:
337 337  
338 -(% class="box" %)
339 -(((
340 -"username":"[str]"
341 -)))
272 +{{{"username":"[str]"
273 +}}}
342 342  
343 -[[image:image-20220526151707-12.png]]
275 +[[image:https://wiki.dragino.com/images/thumb/d/da/Beacon50.png/600px-Beacon50.png||height="185" width="600"]]
344 344  
345 345  username
346 346  
279 +{{{"password":"[str]"
280 +}}}
347 347  
348 -(% class="box" %)
349 -(((
350 -"password":"[str]"     
351 -)))
282 +[[image:https://wiki.dragino.com/images/thumb/b/bd/Beacon51.png/600px-Beacon51.png||height="260" width="600"]]
352 352  
353 -[[image:image-20220526151736-13.png]]
354 -
355 355  password
356 356  
286 +{{{"apikey": "[str]"
287 +}}}
357 357  
358 -(% class="box" %)
359 -(((
360 -"apikey": "[str]"
361 -)))
289 +[[image:https://wiki.dragino.com/images/thumb/5/53/Qwe3.png/600px-Qwe3.png||height="321" width="600"]]
362 362  
363 -[[image:image-20220526151819-14.png||height="588" width="1203"]]
364 -
365 365  apikey
366 366  
367 -(% class="box" %)
368 -(((
369 -"orgid":"[str]"
370 -)))
293 +{{{"orgid":"[str]"
294 +}}}
371 371  
372 -[[image:image-20220526152014-15.png]]
296 +[[image:https://wiki.dragino.com/images/thumb/f/f4/Qwe4.png/600px-Qwe4.png||height="293" width="600"]]
373 373  
374 374  orgid
375 375  
300 +{{{"universesid":"[str]"
301 +}}}
376 376  
377 -(% class="box" %)
378 -(((
379 -"universesid":"[str]"
380 -)))
303 +[[image:https://wiki.dragino.com/images/thumb/9/9a/Qwe5.jpg/600px-Qwe5.jpg||height="424" width="600"]]
381 381  
382 -[[image:image-20220526152115-16.png]]
383 -
384 384  universesid
385 385  
307 +{{{"placetype": "[str]"
308 +}}}
386 386  
387 -(% class="box" %)
388 -(((
389 -"placetype": "[str]"
390 -)))
310 +[[image:https://wiki.dragino.com/images/thumb/9/93/Qwe6.png/600px-Qwe6.png||height="318" width="600"]]
391 391  
392 -[[image:image-20220526152150-17.png]]
393 -
394 394  placetype
395 395  
396 396  
397 -**Here are two ways to enter the server:**
315 +* Here are two ways to enter the server
316 +* WinSCP
398 398  
399 -**~1. WinSCP**
318 +[[image:https://wiki.dragino.com/images/thumb/6/6b/Ibeacon4.jpg/600px-Ibeacon4.jpg||height="385" width="600"]]
400 400  
401 -[[image:image-20220526152303-18.png]]
320 +[[image:https://wiki.dragino.com/images/thumb/7/78/Ibeacon5.jpg/600px-Ibeacon5.jpg||height="385" width="600"]]
402 402  
322 +[[image:https://wiki.dragino.com/images/thumb/c/cd/Ibeacon6.jpg/600px-Ibeacon6.jpg||height="363" width="600"]]
403 403  
404 -[[image:image-20220526152355-19.png]]
405 -
406 -
407 -[[image:image-20220526152912-20.png]]
408 -
409 409  way1
410 410  
326 +* secureCRT
411 411  
412 -**2. secureCRT**
328 +[[image:https://wiki.dragino.com/images/thumb/7/7b/Ibeacon7.jpg/600px-Ibeacon7.jpg||height="326" width="600"]]
413 413  
414 -[[image:image-20220526153145-22.png]]
330 +[[image:https://wiki.dragino.com/images/thumb/6/64/Ibeacon8.jpg/600px-Ibeacon8.jpg||height="326" width="600"]]
415 415  
416 -[[image:image-20220526153236-23.png]]
332 +[[image:https://wiki.dragino.com/images/thumb/d/de/Ibeacon9.jpg/600px-Ibeacon9.jpg||height="326" width="600"]]
417 417  
418 -[[image:image-20220526153304-24.png]]
419 -
420 420  way2
421 421  
422 -
423 423  = 6. Test Result =
424 424  
425 425  The real-time position on the map is obtained according to the moving change of LBT1.
426 426  
427 -[[image:image-20220526153424-25.png||height="693" width="1414"]]
340 +[[image:https://wiki.dragino.com/images/thumb/7/70/Beacon15.png/600px-Beacon15.png||alt="Beacon15.png" height="294" width="600"]]
image-20220526150442-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -299.8 KB
Content
image-20220526150521-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -213.8 KB
Content
image-20220526150629-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -22.9 KB
Content
image-20220526150651-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -36.9 KB
Content
image-20220526150743-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -121.1 KB
Content
image-20220526150824-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -114.2 KB
Content
image-20220526150915-7.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -62.1 KB
Content
image-20220526151046-8.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -187.2 KB
Content
image-20220526151223-9.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -43.4 KB
Content
image-20220526151305-10.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -56.8 KB
Content
image-20220526151519-11.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -220.3 KB
Content
image-20220526151707-12.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -16.3 KB
Content
image-20220526151736-13.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -45.8 KB
Content
image-20220526151819-14.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -53.9 KB
Content
image-20220526152014-15.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -258.0 KB
Content
image-20220526152115-16.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -88.0 KB
Content
image-20220526152150-17.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -57.2 KB
Content
image-20220526152303-18.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -361.6 KB
Content
image-20220526152355-19.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -662.7 KB
Content
image-20220526152912-20.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -299.3 KB
Content
image-20220526153123-21.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -209.6 KB
Content
image-20220526153145-22.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -146.1 KB
Content
image-20220526153236-23.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -106.9 KB
Content
image-20220526153304-24.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -267.9 KB
Content
image-20220526153424-25.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -370.0 KB
Content