Changes for page Mapwize

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

From version 10.1
edited by Xiaoling
on 2022/05/26 15:11
Change comment: Uploaded new attachment "image-20220526151046-8.png", version {1}
To version 1.2
edited by Xiaoling
on 2022/05/17 10:13
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,4 +1,4 @@
1 -**~ Contents:**
1 +**Contents:**
2 2  
3 3  {{toc/}}
4 4  
... ... @@ -7,92 +7,72 @@
7 7  
8 8  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.
9 9  
10 -[[image:image-20220526150521-2.png]]
10 +[[image:https://wiki.dragino.com/images/thumb/1/1a/LBT1_Mapwize_1.png/600px-LBT1_Mapwize_1.png||height="511" width="600"]]
11 11  
12 12  LBT1 Indoor Positioning Network Structure
13 13  
14 -
15 15  = 2. Prepare Map =
16 16  
17 17  == 2.1 Prepare iBeacons ==
18 18  
19 19  (((
20 -(((
21 21  Any BLE iBeacons should work in this solution, each iBeacon stands for a fix position in the map. Here is an iBeacon for example.
22 22  )))
23 -)))
24 24  
25 25  (((
26 -(((
27 27  First of all, user needs to accurately place the beacon at each location, which is the reference for positioning.
28 28  )))
29 -)))
30 30  
31 31  (((
32 -(((
33 33  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]]
34 34  )))
35 -)))
36 36  
37 -[[image:image-20220526150651-4.png]]
30 +[[image:https://wiki.dragino.com/images/thumb/8/88/Ibeacon1.png/300px-Ibeacon1.png||height="169" width="300"]]
38 38  
39 39  BCN01 iBeacon
40 40  
41 -
42 42  (((
43 -(((
44 44  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".
45 45  )))
46 -)))
47 47  
48 -[[image:image-20220526150743-5.png]]
38 +[[image:https://wiki.dragino.com/images/thumb/f/fa/Ibeacon2.jpg/400px-Ibeacon2.jpg||height="867" width="400"]]
49 49  
50 50  beacon software
51 51  
52 52  
53 -[[image:image-20220526150824-6.png]]
43 +[[image:https://wiki.dragino.com/images/thumb/f/f2/Ibeacon3.jpg/400px-Ibeacon3.jpg||height="867" width="400"]]
54 54  
55 55  beacon software
56 56  
57 -
58 58  == 2.2 Create Map ==
59 59  
60 60  (((
61 -(((
62 62  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.
63 63  )))
64 -)))
65 65  
66 66  (((
67 -(((
68 68  ~1. Register an account at [[https:~~/~~/studio.mapwize.io/>>url:https://studio.mapwize.io/]] to create an indoor map.
69 69  )))
70 -)))
71 71  
72 72  (((
73 -(((
74 74  2. Create Place Types.
75 75  )))
76 -)))
77 77  
78 -[[image:image-20220526150915-7.png]]
61 +[[image:https://wiki.dragino.com/images/thumb/4/4d/Beacon10.png/600px-Beacon10.png||height="274" width="600"]]
79 79  
80 80  Create place types
81 81  
82 -
83 83  3. Search Venues. (Indoor map area identification)
84 84  
85 85  [[image:https://wiki.dragino.com/images/thumb/e/e8/Beacon11.jpg/600px-Beacon11.jpg||alt="Beacon11.jpg" height="324" width="600"]]
86 86  
87 87  (((
88 -(((
89 89  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.
90 90  )))
91 -)))
92 92  
93 93  4. Upload Floor plan.
94 94  
95 -[[image:https://wiki.dragino.com/images/thumb/d/d1/Beacon12.png/800px-Beacon12.png||alt="File:Beacon12.png" height="196" width="598"]]
75 +[[image:https://wiki.dragino.com/images/thumb/d/d1/Beacon12.png/600px-Beacon12.png||height="197" width="600"]]
96 96  
97 97  add images
98 98  
... ... @@ -102,9 +102,7 @@
102 102  
103 103  create layer
104 104  
105 -(((
106 106  6. Add iBeacon position info. Drag the iBeacon to match position and input the UUID, MAJOR and MINOR of this iBeacon.
107 -)))
108 108  
109 109  [[image:https://wiki.dragino.com/images/thumb/1/1d/Beacon14.png/600px-Beacon14.png||height="261" width="600"]]
110 110  
... ... @@ -114,7 +114,7 @@
114 114  
115 115  == 3.1 Configure LBT1 to Upload data to TTN ==
116 116  
117 -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.
95 +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.
118 118  
119 119  == 3.2 Decoder in TTN ==
120 120  
... ... @@ -200,155 +200,120 @@
200 200  
201 201  = 4. Set Up Converter Server =
202 202  
203 -* (((
204 -How to install and run this service on Linux?
205 -)))
181 +* How to install and run this service on Linux?
206 206  
207 -(((
208 208  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).
209 -)))
210 210  
211 -(((
212 212  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.
213 -)))
214 214  
215 -(((
187 +
216 216  System: Debian / Ubuntu
217 -)))
218 218  
219 -(% class="box" %)
220 -(((
221 -step:
222 -\\1. sudo apt install libcurl4-dev 
223 -\\2. sudo apt install  gcc automake autoconf libtool make cmake
224 -\\3. git clone -b master https:~/~/github.com/mikayong/location.git
225 -\\4. cd location/libmqtt
226 -\\5. mkdir build
227 -\\6. cd build && cmake ../
228 -\\7. make && sudo make install 
229 -\\8. cd ../
230 -\\9. make 
231 -\\10. sudo cp location_conf.json  /etc/
232 -\\11. Edit the configuration file, and run the location service in the background: ./location &
233 -)))
190 +{{{step:
191
192 +1. sudo apt install libcurl4-dev 
193
194 +2. sudo apt install  gcc automake autoconf libtool make cmake
195
196 +3. git clone -b master https://github.com/mikayong/location.git
197
198 +4. cd location/libmqtt
199
200 +5. mkdir build
201
202 +6. cd build && cmake ../
203
204 +7. make && sudo make install 
205
206 +8. cd ../
207
208 +9. make 
209
210 +10. sudo cp location_conf.json  /etc/
211
212 +11. Edit the configuration file, and run the location service in the background: ./location &}}}
234 234  
235 -(((
236 236  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
237 -)))
238 238  
239 239  = 5. Configuration file: location_conf.json =
240 240  
241 -* (((
242 -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.
243 -)))
218 +* 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.
244 244  
245 -(((
246 246  { "location_conf": {
247 -)))
248 248  
249 -(% class="box" %)
250 -(((
251 -(((
252 - "loctype": "indoor",       ~/~/ indoor/outdoor
253 - "locmap": "mapwize"    ~/~/   Map interface: mapwize, traccar
254 -)))
255 -)))
222 +{{{ "loctype": "indoor", // indoor/outdoor
223 + "locmap": "mapwize" // Map interface: mapwize, traccar
224 +}}}
256 256  
257 -(((
258 258  }, "mqtt_conf": {
259 -)))
260 260  
261 -(% class="box" %)
262 -(((
263 -(((
264 - "servaddr": "[str]",    ~/~/     Lorawan server address: Refer to TTN app handler:eu.thethings.network
265 - "servport": [int],       ~/~/   Lorawan server port: 1883
266 - "clientid": "[str]",       ~/~/   MQTT client identity: Custom
267 - "qos":[int],                 ~/~/  (Optional) MQTT service quality: 0
268 - "username":"[str]",     ~/~/   Agent name of mqtt: application ID of TTN
269 - "password":"[str]",      ~/~/  The proxy password of mqtt: application access key of TTN
270 - "topic":"[str]",              ~/~/ The topic of mqtt subscription: TTN is + / devices / + / up
271 - "connection":"[str]" },   ~/~/(Optional) mqtt is a string used for direct connection, composed of serveraddr and port
272 - "mapwize_conf":{          ~/~/Map settings
273 - "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
274 - "venueid":"[str]",        ~/~/ (Optional)Indoor map area identification
275 - "orgid":"[str]",           ~/~/  The identity of the user organizer
276 - "universesid":"[str]",   ~/~/The range indicator of the indoor map, find it on the universes page
277 - "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
228 +{{{ "servaddr": "[str]", // Lorawan server address: Refer to TTN app handler:eu.thethings.network
229 + "servport": [int], // Lorawan server port: 1883
230 + "clientid": "[str]", // MQTT client identity: Custom
231 + "qos":[int], // (Optional) MQTT service quality: 0
232 + "username":"[str]", // Agent name of mqtt: application ID of TTN
233 + "password":"[str]", // The proxy password of mqtt: application access key of TTN
234 + "topic":"[str]", // The topic of mqtt subscription: TTN is + / devices / + / up
235 + "connection":"[str]" }, //(Optional) mqtt is a string used for direct connection, composed of serveraddr and port
236 +"mapwize_conf":{ //Map settings
237 + "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
238 + "venueid":"[str]", // (Optional)Indoor map area identification
239 + "orgid":"[str]", // The identity of the user organizer
240 + "universesid":"[str]", //The range indicator of the indoor map, find it on the universes page
241 + "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
278 278   },
279 279  "loracloud":{
280 - "token":  "[str]"          ~/~/The password string of loracloud location service, the outdoor map must fill in the account token of loracloud
281 -)))
282 -)))
244 + "token": "[str]" //The password string of loracloud location service, the outdoor map must fill in the account token of loracloud
245 +}}}
283 283  
284 -(((
285 285  }
286 -)))
287 287  
288 -(% class="box" %)
289 -(((
290 -(((
291 -"rssi_conf": {
292 - "rssirate": [int],          ~/~/ (Optional) A basis for rssi calculation distance, the rssi value (absolute value) when the beacon is 1 meter apart 
293 - "rssidiv": [float] }        ~/~/ (Optional) rssi measures an attenuation value of distance. As the distance to the beacon is farther, the value changes speed
294 -)))
295 -)))
249 +{{{"rssi_conf": {
250 + "rssirate": [int], // (Optional) A basis for rssi calculation distance, the rssi value (absolute value) when the beacon is 1 meter apart
251 + "rssidiv": [float] } // (Optional) rssi measures an attenuation value of distance. As the distance to the beacon is farther, the value changes speed
252 +}}}
296 296  
297 -(((
298 298  }
299 -)))
300 300  
301 301  * Parameter acquisition method of configuration file:
302 302  
303 -(% class="box" %)
304 -(((
305 -"username":"[str]"
306 -)))
258 +{{{"username":"[str]"
259 +}}}
307 307  
308 308  [[image:https://wiki.dragino.com/images/thumb/d/da/Beacon50.png/600px-Beacon50.png||height="185" width="600"]]
309 309  
310 310  username
311 311  
312 -(% class="box" %)
313 -(((
314 -"password":"[str]"     
315 -)))
265 +{{{"password":"[str]"
266 +}}}
316 316  
317 -[[image:https://wiki.dragino.com/images/thumb/b/bd/Beacon51.png/800px-Beacon51.png||alt="File:Beacon51.png" height="259" width="598"]]
268 +[[image:https://wiki.dragino.com/images/thumb/b/bd/Beacon51.png/600px-Beacon51.png||height="260" width="600"]]
318 318  
319 319  password
320 320  
321 -(% class="box" %)
322 -(((
323 -"apikey": "[str]"
324 -)))
272 +{{{"apikey": "[str]"
273 +}}}
325 325  
326 -[[image:https://wiki.dragino.com/images/thumb/5/53/Qwe3.png/800px-Qwe3.png||alt="File:Qwe3.png" height="325" width="606"]]
275 +[[image:https://wiki.dragino.com/images/thumb/5/53/Qwe3.png/600px-Qwe3.png||height="321" width="600"]]
327 327  
328 328  apikey
329 329  
330 -(% class="box" %)
331 -(((
332 -"orgid":"[str]"
333 -)))
279 +{{{"orgid":"[str]"
280 +}}}
334 334  
335 -[[image:https://wiki.dragino.com/images/thumb/f/f4/Qwe4.png/800px-Qwe4.png||alt="File:Qwe4.png" height="304" width="622"]]
282 +[[image:https://wiki.dragino.com/images/thumb/f/f4/Qwe4.png/600px-Qwe4.png||height="293" width="600"]]
336 336  
337 337  orgid
338 338  
339 -(% class="box" %)
340 -(((
341 -"universesid":"[str]"
342 -)))
286 +{{{"universesid":"[str]"
287 +}}}
343 343  
344 344  [[image:https://wiki.dragino.com/images/thumb/9/9a/Qwe5.jpg/600px-Qwe5.jpg||height="424" width="600"]]
345 345  
346 346  universesid
347 347  
348 -(% class="box" %)
349 -(((
350 -"placetype": "[str]"
351 -)))
293 +{{{"placetype": "[str]"
294 +}}}
352 352  
353 353  [[image:https://wiki.dragino.com/images/thumb/9/93/Qwe6.png/600px-Qwe6.png||height="318" width="600"]]
354 354  
... ... @@ -355,25 +355,24 @@
355 355  placetype
356 356  
357 357  
358 -**Here are two ways to enter the server:**
301 +* Here are two ways to enter the server
302 +* WinSCP
359 359  
360 -**~1. WinSCP**
361 -
362 362  [[image:https://wiki.dragino.com/images/thumb/6/6b/Ibeacon4.jpg/600px-Ibeacon4.jpg||height="385" width="600"]]
363 363  
364 364  [[image:https://wiki.dragino.com/images/thumb/7/78/Ibeacon5.jpg/600px-Ibeacon5.jpg||height="385" width="600"]]
365 365  
366 -[[image:https://wiki.dragino.com/images/thumb/c/cd/Ibeacon6.jpg/800px-Ibeacon6.jpg||alt="File:Ibeacon6.jpg" height="362" width="599"]]
308 +[[image:https://wiki.dragino.com/images/thumb/c/cd/Ibeacon6.jpg/600px-Ibeacon6.jpg||height="363" width="600"]]
367 367  
368 368  way1
369 369  
370 -**2. secureCRT**
312 +* secureCRT
371 371  
372 372  [[image:https://wiki.dragino.com/images/thumb/7/7b/Ibeacon7.jpg/600px-Ibeacon7.jpg||height="326" width="600"]]
373 373  
374 374  [[image:https://wiki.dragino.com/images/thumb/6/64/Ibeacon8.jpg/600px-Ibeacon8.jpg||height="326" width="600"]]
375 375  
376 -[[image:https://wiki.dragino.com/images/thumb/d/de/Ibeacon9.jpg/800px-Ibeacon9.jpg||alt="File:Ibeacon9.jpg" height="327" width="602"]]
318 +[[image:https://wiki.dragino.com/images/thumb/d/de/Ibeacon9.jpg/600px-Ibeacon9.jpg||height="326" width="600"]]
377 377  
378 378  way2
379 379  
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