Smart Parking Technical Guide
Smart Parking Technical Guide
Smart Parking Technical Guide
INDEX
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Network architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1. Smart Parking node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. LoRaWAN base station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. LoRaWAN Network Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4. Libelium Cloud and Customer Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
-2- v7.0
INDEX
4.2.2. Signing in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3. Smart Parking nodes registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4. Editing Smart Parking nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.5. Export CSV file with nodes credentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7. Customer Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.1. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.1.1. Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.1.2. Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2. Deploying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2.1. Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2.2. Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.3. Configuring the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.3.1. How to configure Loriot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.3.2. How to configure Actility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.4. Making the server accessible from anywhere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.4.1. Mandatory for Loriot and Actility platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.5. Remote Configuration Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
-3- v7.0
INDEX
10. Certifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.1. CE (European Union) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.2. FCC (United States) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
-4- v7.0
Introduction
1. Introduction
The Smart Parking v2 solution developed by Libelium allows citizens to detect available parking slots.
The node applies intelligent algorithms to detect changes in the state of the parking slot. Then data is transmitted
with the LoRaWAN radio to the final server.
The nodes provisioning has been enormously improved. The nodes are delivered with default time settings and
also unique LoRaWAN identifiers and keys. So it is easy to use the default settings to register all nodes in the
LoRaWAN network server at a time.
The Smart Parking node improves the detection and stability performance thanks to a radar sensor which permits
to certainly know when objects are placed over the device. The next table shows a comparative analysis of the
current sensor technologies in the Smart Parking market:
-5- v7.0
Introduction
The node provides OTA-S (Over-The-Air Setup). This allows the user to remotely configure the node parameters
(sleep time, keep-alive, night-mode, etc) via the Remote Configuration Form. That makes it possible to directly
install the nodes with factory default settings and then update them from the server side.
-5- v7.0
Network architecture
2. Network architecture
The network architecture of Smart Parking is based on the next elements:
‚ Smart Parking node
‚ LoRaWAN base station
‚ LoRaWAN Network Server
‚ Libelium Cloud or Customer Server
-6- v7.0
Network architecture
Libelium distributes base stations for LoRaWAN networks. All of them have LoRaWAN connection; some feature
Ethernet, WiFi or 4G connectivity too. Some base stations are ready to work outdoors (IP67 grade). Some of them
come pre-configured for certain LoRaWAN network servers (see next section). Also, some of them integrate an
embedded LoRaWAN Network Server.
The LoRaWAN Network Server purpose is to translate data from the LoRaWAN wireless network to an IP network.
Therefore, when Smart Parking nodes packets are received, a callback is performed in order to send data to the
-7- v7.0
Network architecture
If the customer wants to use a new LoRaWAN Network Server, then the Data Parser block must be modified in
order to receive data properly. Keep in mind that each Network Server implements their own HTTPS callback using
a different format.
The Remote Configuration Form allows the user to update the settings of each node (sleep time, keep-alive time,
night-mode, etc). The update is done remotely via LoRaWAN downlink radio packets.
The difference between the 2 types of server differ in the the possible client needs:
‚ The Customer Server is a software system provided by Libelium which permits to receive, decode and insert
data into a standard MySQL database. It is mandatory that the user sets up her own server to host the
Customer Server. See “Customer Server” chapter for further information.
‚ The Libelium Cloud is a service provided by Libelium which permits to receive, decode and redirect the data to
the final 3rd party IoT cloud (Amazon, Azure, etc). This retransmission is done thanks to the cloud connectors
running on the Libelium Cloud Bridge.
-8- v7.0
Network architecture
-9- v7.0
Smart Parking node
- 10 - v7.0
Smart Parking node
The next table shows the basic Smart Parking node characteristics.
Power supply Built-in lithium-thionyl chloride (Li-SOCl2) batteries; expected lifetime of 4-10 years*
Configurable sleep time Min: 20 s / max: 10 min
Radio protocol LoRaWAN module
Dual detection Radar (main) and magnetic (backup)
Provisioning Ready to install (default LoRaWAN OTAA IDs and key are loaded to each node)
Node configuration Via "Remote Configuration Form" (web form)
LoRaWAN configuration Via "Smart Devices App" (Java desktop application)
Operating temperature -20 to +65 °C
If you are interested in further information about LoRaWAN country regulations, please refer to the LoRa Alliance
regional parameters document.
- 11 - v7.0
Smart Parking node
(*) LoRaWAN EU is set to the default SF12 settings (worst case). The send process may be lower power if the node is close to the base station.
- 12 - v7.0
Smart Parking node
(*) LoRaWAN US is set to the default SF10 settings (worst case). The send process may be lower power if the node is close to the base station.
When the node is powered-on (On switch), you can change from App to Boot or viceversa by changing the state
of the App/Boot switch. However, you must press the reset button to apply the operation mode change. Another
possibility to successfully change the operation mode step-by-step would be to: power down the device (Off switch),
change the App/Boot switch, press the reset button and then power on the device.
Important:
Never leave the device set to On and Boot for more time than needed. The bootloader does not provide any sleep
mode and it will waste the battery of the device. So when you finish reconfiguring the device, please set the node
in off state.
- 13 - v7.0
Smart Parking node
Important:
Libelium provides the nodes "ready to install" so the user only needs to install the nodes and follow the
“"Magnet start-up" process”.
The Smart Parking node has a power-on process in order to put the device into a "ready-to-install" state:
‚ Step 1: The switches are set to "App" and "Off" (press the reset button to make sure you discharge capacitors)
‚ Step 2: You power the device on by sliding the switch from "Off" to "On"
‚ Step 3: Both LEDs (red and green) blink rapidly for 5 times
‚ Step 4: Red LED blinks once for 1 second to indicate that the device enters sleep mode for the 1st time. Now
the node is in a "ready to install" state. The customer should install the node on the real scenario and perform
the "Magnet start-up" process.
- 14 - v7.0
Smart Parking node
You can see how the previous steps are performed in this video: Ready to install process
‚ Step 2: Ensure that the top surface of the gasket is clean and contains no foreign objects.
‚ Step 3: Place the inner casing inside the outer casing and make sure that the 2 position marks match.
- 15 - v7.0
Smart Parking node
‚ Step 5: Finally, tighten the 4 screws firmly. Do not use the maximum pressure (do not go all the way with the
screws), because the o-rings could be ejected from the screws, and then the waterproof feature would NOT
be valid. Besides, do not screw too hard and keep on screwing, because the screws could carve the female
sockets, expanding their inner diameter; this would cancel the waterproof quality too.
Libelium manufactures and provides all nodes configured after following all explained steps, so the node is "ready
to install". By factory default, all nodes are configured with their unique LoRaWAN EUI and random private keys.
On the other hand, if different LoRaWAN parameters are desired, “Smart Devices App ” must be used to change the
settings and repeat the previously explained steps.
The best way to proceed with the magnet is to go over the enclosure from left to right in a one-motion movement.
Then wait for at least one second (although you can wait more) and proceed again until you complete 3 magnet
resets.
- 16 - v7.0
Smart Parking node
In the next video-clip you can see how the "magnet start-up" is performed: Magnet start-up
After finishing the "magnet start-up", the node starts working normally for the rest of the time. No more three-time
"magnet resets" are needed in order to reset the device properly. So if a 4th magnet reset or software reset is
applied, the device will reset and continue working normally again.
Important:
The "magnet start-up" is only mandatory when the node is powered from a power-off state. In other words, when
the device is set to a "ready to install" state.
The uplink frames are 11-byte long to always comply with the LoRaWAN datarate worst case scenario. Their
structure consists on 2 parts: header and payload. The "header" format is always the same for all uplink frame
types. On the other hand, the "payload" format may be different for each frame type.
Header Payload
2 bytes 9 bytes
Regarding the downlink frames, they have variable length and its format is private to the customer. The "RTC sync
frame" is the mandatory response for both "Start Frame 1" and "RTC update request" frames. The "RTC sync frame"
provides the server time to the nodes in order to keep the RTC updated. Also, the "Configuration downlink" is an
asynchronous frame sent by the server when the Remote Configuration Form is managed by the customer.
You must keep in mind that when a downlink packet is requested there are usually some issues related to LoRaWAN
- 17 - v7.0
Smart Parking node
network latency. This implies that the 1st request attempt usually fails. In that case, a 2nd attempt is sent in order
to retrieve the lost downlink packet. For this reason, you might see that a couple of "Start Frame 1" or "RTC update
request" frames are sent sequentially during the execution of the program.
- 18 - v7.0
Smart Parking node
The RTC update request frame contents are the same as Keep-alive frame.
Important:
The Customer Server provides the needed source code to parse this data into a more comprehensive structure. The
Libelium Cloud Bridge also provides the needed tools to transmit the parsed data to a 3rd party IoT cloud. For
more information, please refer to the “Customer Server” section.
- 19 - v7.0
Smart Parking node
- 20 - v7.0
Smart Parking node
Important:
The LoRaWAN identifiers and keys must be registered in the LoRaWAN network server before starting the node in
order to receive data. For OTAA mode: DevEUI, AppEUI and Appkey. For ABP mode: DevEUI, DevAddr, NwkSKey and
AppSKey.
- 21 - v7.0
Smart Parking node
If a change is detected from ’free’ to ’occupied’ or viceversa, then an "Info" frame is sent. If no change occurred
during the last "Keep-alive" time, then a Keep-alive frame is sent. Besides, if a sensor error is detected, a Keep-alive
frame sending is forced in order to inform about this issue.
The night-mode is a secondary and optional working mode that allows the user to configure a different time basis
parameters in order to reduce the battery impact. So, it was developed to use it when the parking slot is expected
to have fewer changes (i.e. at night). Therefore, different night-mode "Sleep" and "Keep-alive" settings are used.
It is not mandatory to use the night-mode during night. This mode is thought to be used when less vehicle
movement is expected in the parking slots. Which could be during day time.
Example:
‚ Day-mode:
- Sleep: 1 minute
- Keep-alive: 1 hour
‚ Night-mode:
- 22 - v7.0
Smart Parking node
Note: The conclusion is that the Night-mode is interesting for customers who certainly know the parking slot is
expected to have fewer changes during large periods of time every day.
The "Start Frame 1" expects an answer from the server with the timestamp (hours and minutes). This frame is sent
after starting the node or a software reset.
Besides, the node’s firmware provides a mechanism which an "RTC update request" frame is sent every 24 hours
since the node was started or reset. This frame waits for a downlink frame which brings the current server
timestamp (hour and minutes).
- 23 - v7.0
Smart Parking node
Note: The RTC sync is important for Night-mode only where it mandatory to operate with a correct timestamp in
order to enter and exit from night-mode to day-mode and viceversa.
Example:
‚ Day-mode:
- Sleep: 1 minute
- Keep-alive: 0.5 hour
‚ Night-mode:
- Night-mode start hour: 22 hours (10 PM)
- Night-mode duration: 8 hours (Night-mode goes from 10 PM to 6 AM)
- Night-mode sleep time: 5 minutes
- Night-mode keep-alive: 2 hours
It is possible to distinguish the starting frames at the beginning of the execution. Then the node informs with a
new Keep-alive every 30 minutes. Any change of Parking slot status implies a new Info frame. And after 24 hours
working, you can see the RTC request performed by the node.
- 24 - v7.0
Smart Parking node
- 25 - v7.0
Smart Parking node
Regarding the time and sensor parameters, the same values are set to all nodes manufactured by Libelium. The
default values can be seen in the previous section. However, the customer can configure the time and sensor
settings using both Smart Devices App and Remote Configuration Form.
Regarding the LoRaWAN parameters, all keys are randomly generated for each node and kept secret. The DevEUI
set to the node is the LoRaWAN hardcoded EUI which is unique for each radio chipset. However, the client can
- 26 - v7.0
Smart Parking node
configure/modify all LoRaWAN parameters using the Smart Devices App only (the Remote Configuration Form does
not permit it).
Note: For further information about this matter please refer to the “Smart Devices App ” and
“Remote Configuration Form” sections.
- 27 - v7.0
Libelium Cloud management
- 28 - v7.0
Libelium Cloud management
Complete the information in the form (all the fields are mandatory):
‚ Name: Your name
‚ E-mail address: A valid e-mail address, it will be used for verification purposes
‚ Password and Confirm password: Set your password
Accepting Terms & Conditions is also mandatory to create a new account in the SCM.
- 29 - v7.0
Libelium Cloud management
4.2.2. Signing in
To sign in the SCM, go to the Libelium Cloud and click on the “Sign In” button.
Complete the information in the form. The e-mail and password used when creating the account will be required:
‚ E-mail address: E-mail address used for registration
‚ Password: Password used for registration
- 30 - v7.0
Libelium Cloud management
The Terms & Conditions accepted when creating the account apply for any time you sign in the SCM. If you do not
have an account yet, follow the steps described on the section “Create an account” to obtain valid credentials. If
you already created an account and need a password reminder, you can click on “Forgot password?”.
- 31 - v7.0
Libelium Cloud management
By clicking on these links you will be able to complete the registration process by following the wizard:
- 32 - v7.0
Libelium Cloud management
In order to export the file, you must go to https://cloud.libelium.com, log in and then access "My Devices". On the
website you will identify the "Smart Parking actions" button which permits to download the nodes credentials by
clicking on the "Download nodes keys" button.
The CSV file for ’N’ devices exported from Libelium Cloud follows the next format:
<DevEUI_1>,<AppEUI_1>,<AppKey_1>
<DevEUI_2>,<AppEUI_2>,<AppKey_2>
<DevEUI_3>,<AppEUI_3>,<AppKey_3>
...
<DevEUI_N>,<AppEUI_N>,<AppKey_N>
- 33 - v7.0
Smart Devices App
https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html .
Once installed JDK, users can download the application in the link below, selecting the appropriate operative system
and architecture:
http://www.libelium.com/development/smart-parking/software-and-applications
Then customers only have to extract the content of the SmartDeviceApp zip file downloaded in a place with the
right permissions, and finally execute the file called “SmartDeviceApp” that will initialize the application. Please,
note that the extension of this file will depend on the operating system the user is using at the moment (.sh for
Linux and OSX, and .bat for Windows).
This new Smart Devices App uses a new programmer under the hood called STM32CubeProgrammer, so it is a
good practice to before using the Smart Devices App :
https://www.st.com/en/development-tools/stm32cubeprog.html
- 34 - v7.0
Smart Devices App
Windows systems
It is important to install STM32CubeProgrammer as the software contains the drivers needed to set the USB ports
in DFU mode, if you want to know more about how to install this software and know about how to set the USB in
DFU mode, please see the official guide from STM32CubeProgrammer:
Link to ST documentation.
Make sure that your USB can switch to DFU mode, you can check it with the STM32CubeProgrammer.
MacOS systems
It is not necessary to install additional software, but you can install STM32CubeProgrammer:
https://www.st.com/en/development-tools/stm32cubeprog.html
GNU/Linux systems
It is necessary to change permissions to USB ports. If you have problems with your USB device on your GNU/Linux
(or the Smart Devices App does not recognize the SmartParking v2 device) you can compile the stlink driver discover:
If you have problems with stlink driver installation please refer this site: https://github.com/texane/stlink.
nano /etc/udev/rules.d/49-stlinkv2.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", \
MODE:="0666", \
SYMLINK+="stlinkv2_%n"
Then you will be able to use the USB ports on Linux systems. It is also recommended to install STM32CubeProgrammer
for the current OS the user is running:
https://www.st.com/en/development-tools/stm32cubeprog.html
- 35 - v7.0
Smart Devices App
sudo ./SmartDevicesApp.sh
sudo ./SmartDevicesApp.sh
Important:
It is mandatory to have an active internet connection in order to use the Smart Devices App .
To upgrade the Smart Devices App , you must follow the installation steps. This will overwrite the files from previous
versions. As a 1st step, we recommend to backup the following files:
‚ cfg/config.ini: This file stores the Smart Devices App configuration parameters. To restore those settings, every
single parameter value (username, password, etc) should be copied into the new version of the “config.ini” file.
The file should not be overwritten, new parameters must be added and merging files is mandatory.
‚ temp: This folder contains the firmware files previously used. To restore these files, copy the content of the
saved “temp” directory into the new version “temp” directory.
- 36 - v7.0
Smart Devices App
As explained in the “Smart Parking node” section, there are 2 switches to manage the node working mode. In
order to use the node with the Smart Devices App, it is mandatory to set the node in “Boot” mode and then power
it on. If you changed from “App” to “Boot” mode, then you can use the reset button to apply the change and restart
the node in the bootloader section.
Important:
Never leave the device set to “On” and “Boot” for more time than needed: the bootloader does not provide any
sleep mode and it will waste the battery of the device. So when you finish reconfiguring the device, please set the
node to “Off” state.
5.3.2. Configuration
In the last tab, called Configuration, 2 parameters are available: “Username” and “Password”. These are the same
credentials needed for the Libelium Cloud (SCM, https://cloud.libelium.com/login).
Filling these fields is mandatory before start using the Smart Devices App with the Smart Parking node. Please
remember to click the “Save” button at the bottom of the application to store the correct credentials.
There are some differences between the 1st version and the 2nd one. In Smart Parking v2 you must type your
credentials to authenticate your nodes against the Libelium Cloud.
Note: You should have an account on Libelium Cloud to get your username and password.
If you forgot your password you can always recover it by clicking on the “Forgot password?” link on the application:
https://cloud.libelium.com/password/reset
- 37 - v7.0
Smart Devices App
Users can read and write all node parameters in this section. The process is quite simple: just connect the device
to the computer where the Smart Devices App is installed using the USB cable provided and switch on the node in
“Boot” mode.
Next, refresh the “USB settings” section (bottom-left corner), clicking the “Refresh” button. Then select the port
where the device has been connected. After that it is a good practice to hit the “Load from node” button to get the
current configuration from the connected Smart Parking v2 device.
The “Load from node” button will read all parameters from the node and will display the information on the app.
On the other hand, the “Send to node” button will overwrite the configuration on the node. All available fields have
to be filled with the proper format. If any parameter does not have an acceptable format, a red cross like this is
displayed close to it, and you will not be able to write the information on the node. If the information introduced
is valid, a green tick is shown. When loading/sending information to the node, the application will warn the user
through a pop-up window about the status of the operation.
- 38 - v7.0
Smart Devices App
Figure : “Load configuration from node” & “Send configuration to node” buttons
Smart Parking v2 shares most of the configuration fields with Smart Parking v1 . However, it is important to know
the purpose for each field on the Smart Parking v2 configuration. To know more about each field and how they
work, please refer to the chapter “Smart Parking node”.
Figure : Firmware update and factory reset section for Smart Parking v2
The list with all available firmwares is loaded when the program starts, but users can manually update it by clicking
on the “Search new firmware updates” button. Before installing the firmware, it is necessary to download it. This
process is very simple, just mark the check of the version you want to install from the list and click on “Download
checked”.
1. Click the “Search new firmware updates” button to load new firmware updates
2. Check one or more firmwares to download from the firmware list on the left side
3. Click on “Download checked” to download the selected firmwares
- 39 - v7.0
Smart Devices App
Now the firmware files are downloaded. The drop-down menu will show the available firmware files to be installed
on the node.
When the file is downloaded, a disk icon is displayed close to it, indicating it is downloaded. On the “Install
Firmware” section you can select the firmware to install and then hit on “Install” to execute the installation. The app
will display a pop-up message for the status of the firmware installation.
Note: Remember that the USB port must be selected in the programmer tab
You can also delete the downloaded firmware files by selecting the check box from the list and then clicking on the
“Delete checked” button.
- 40 - v7.0
Smart Devices App
For this process it is mandatory to download a firmware, as explained on the previous section “Firmware upgrade”.
Then select a firmware from the drop-down menu and press the “Factory Reset” button.
Pressing the “Factory Reset” button will display a file explorer window to select the configuration file provided by
Libelium. Once you selected this file, a message will show up asking if you want to start the process. If the “Yes”
option is selected, the Factory Reset process starts.
When the Factory Reset finishes, another message informs about the final result:
After this process, you can configure your Smart Parking v2 node again on the “Programmer” tab.
- 41 - v7.0
LoRaWAN Network Server setup
6.1. Loriot
This section explains how to route the information via Loriot network server to the "Customer server" using the
HTTPS protocol.
6.1.1. Log in
Log in in the Loriot platform, selecting your server location.
- 42 - v7.0
LoRaWAN Network Server setup
- 43 - v7.0
LoRaWAN Network Server setup
Select "HTTP Push" from the list and fill the form displayed on the right side. In the "Target URL for POSTs"
field, write the URL where Loriot must send data to (i.e. http://my_server.com/services/actility/). Besides, users
can add an authorization header in "Custom Authorization header value" in order to increase the security in the
communications, so the final server only accepts the information from an authorized account. Finally, click on the
"Confirm change" button to save the information.
- 44 - v7.0
LoRaWAN Network Server setup
- 45 - v7.0
LoRaWAN Network Server setup
A new form will be displayed in order to create the new device associated to the application. In this form it is
possible to choose different enrolling processes based on OTAA or ABP. So, depending on the option chosen, it will
be mandatory to insert different EUIs or keys. Please refer to “LoRaWAN protocol and parameters” to understand
the all parameters involved in this form.
Please refer to “Libelium Cloud management” section for further information on how to export this CSV file which
includes all nodes OTAA credentials needed for direct batch import.
- 46 - v7.0
LoRaWAN Network Server setup
The CSV file for ’N’ devices must respect the next format:
<DevEUI_1>,<AppEUI_1>,<AppKey_1>
<DevEUI_2>,<AppEUI_2>,<AppKey_2>
<DevEUI_3>,<AppEUI_3>,<AppKey_3>
...
<DevEUI_N>,<AppEUI_N>,<AppKey_N>
- 47 - v7.0
LoRaWAN Network Server setup
6.2. Actility
This section explains how to route the information via Actility network server to the "Customer server" using the
HTTPS protocol. Firstly, you must access into the Actility’s ThingPark portal and log in. IN the main portal, you must
go to "ThingPark Application" section and access to "Device Manager":
Actility requires an "Application Server" and an "AS routing profile" in order to establish the communication with
the Customer server or Libelium Cloud. These two elements are required before starting the service the first time,
and will be the base to create new devices.
The first section allows you to create a new "Application Server". Then the second section shows a list of all
"Application servers" created. Click on the "Create" button in the first section to create a new "Application Server":
- 48 - v7.0
LoRaWAN Network Server setup
In "Name" field define your Application server name. In "Type" field, you must select "HTTP Application Server".
Finally, click on the "Create" button to continue:
A new window appears, where the name is copied from the previous pop-up. In the "Content Type" field you must
select "JSON". Then click on the "Add" button in "Add a route" section to create the link to the callback server
installed:
A "Route" section will be generated with a new form to be completed. Just click the "Add" button to proceed:
- 49 - v7.0
LoRaWAN Network Server setup
A new pop-up appears. In the "Destination" field, you must enter the URL of the server where the data is going to
be sent. Click on the "Add" button to save the information:
Navigate back to the Application server form, click on "Save" in order to create the "Application server".
Then you must click on the "Add" button in the first section. Below, in the second section, a list with all existing "AS
routing profiles" will be displayed:
- 50 - v7.0
LoRaWAN Network Server setup
In the "Name" field write the name of the AS routing profile. In the "Type" field, select LoRaWAN. Then click on the
"Create" button to continue the process:
In the new window, you can read the "AS routing profile ID" which will be needed for batch import. Besides, mark
the check "Is default" and click the "Add button":
A new pop-up will appear with two parameters to be completed. "Type" is the kind of the application for our
destination, "Local application server" must be selected. In "Destination" drop-down field, all available Application
servers will be displayed. So, the correct "Application server" previously created must be selected:
- 51 - v7.0
LoRaWAN Network Server setup
Figure : Add the created Application server as "destination" for the routing profile
Navigate back to the AS routing profile form, click on "Save" in order to create it. This process should be completed
just once. From this moment, customers can add devices to the service.
In the main ThingPark menu, click on "Devices" option . Then click on the "Create" button:
A new form will be displayed in order to define the new device’s parameters:
Administrative data
‚ Device name: Name to identify the device
‚ Marker: Icon to identify the device on the map list
‚ Administrative info: Relevant information of the device
‚ Administrative location: Location of the device
‚ Motion indicator: List with several options
Device identification
‚ Manufacturer: Select "Generic".
‚ Model: Select the corresponding region:
- LoRaWAN EU863-870: LORA/GenericA.1.0.2a_ETSI_Rx2-SF12
- LoRaWAN US902-928: LORA/GenericA.1.0.2a_FCC_Rx2-SF12
- LoRaWAN IN865-867: LORA/GenericA.1revB_IN865_Rx2-SF12
- LoRaWAN AU915-928: LORA/GenericA.1revB_AU915_Rx2-SF12
- LoRaWAN AS923: LORA/GenericA.1_AS923_Rx2-SF10
‚ Device activation: Select "Over The Air Activation (OTAA)" if default parameters are used. ABP is the other
option.
‚ DevEUI: Device EUI, globally unique IEEE EUI-64 address.
‚ AppEUI: Device Application identifier (mandatory for OTAA).
‚ Key format: Should be "Clear text" for non-encrypted key format.
- 52 - v7.0
LoRaWAN Network Server setup
Network parameters
‚ Connectivity plan: Select a Connectivity plan on the drop-down menu.
‚ DevAddr: Select "Allocated by the network server".
Finally click on the "Create" button in order to save the information of the device.
- 53 - v7.0
LoRaWAN Network Server setup
A new window is displayed in order to import a CSV file with all devices to be imported:
Regarding the CSV file format, you must start from the exported CSV file from Libelium Cloud (SCM). Please refer
to “Libelium Cloud management” section for further information on how to export this CSV file which includes all
nodes OTAA credentials needed for direct batch import. Then, you must keep in mind that Actility needs more
information to be included in that CSV file. The CSV to be imported must follow the next format (15 columns).
The CSV file for ’N’ devices must respect the next format:
CREATE_OTAA,<DevEUI_1>,,<DevProfile>,<AppEUI_1>,<AppKey_1>,,,<AS_profile_ID>,<ConnectivityPlan>,<name>,,,,,
CREATE_OTAA,<DevEUI_2>,,<DevProfile>,<AppEUI_2>,<AppKey_2>,,,<AS_profile_ID>,<ConnectivityPlan>,<name>,,,,,
CREATE_OTAA,<DevEUI_3>,,<DevProfile>,<AppEUI_3>,<AppKey_3>,,,<AS_profile_ID>,<ConnectivityPlan>,<name>,,,,,
...
CREATE_OTAA,<DevEUI_N>,,<DevProfile>,<AppEUI_N>,<AppKey_N>,,,<AS_profile_ID>,<ConnectivityPlan>,<name>,,,,,
Where:
‚ CREATE_OTAA: Should always be the same in order to import the devices using OTAA join mode.
‚ <DevEUI>: This is the Device EUI exported from Libelium SCM CSV file. Should not be changed.
‚ <DevProfile>: This field is related to the LoRaWAN region of the node. Possibilities depending on the version:
- LoRaWAN EU863-870: LORA/GenericA.1.0.2a_ETSI_Rx2-SF12
- LoRaWAN US902-928: LORA/GenericA.1.0.2a_FCC_Rx2-SF12
- LoRaWAN IN865-867: LORA/GenericA.1revB_IN865_Rx2-SF12
- LoRaWAN AU915-928: LORA/GenericA.1revB_AU915_Rx2-SF12
- LoRaWAN AS923: LORA/GenericA.1_AS923_Rx2-SF10
‚ <AppEUI>: This is the Application EUI exported from Libelium SCM CSV file. Should not be changed.
‚ <AppKey>: This is the Application Key exported from Libelium SCM CSV file. Should not be changed.
‚ <AS_profile_ID>: This is Actility’s "AS routing profile ID" which belongs to each customer’s account. It can be
read from the profile when it is first created.
‚ <ConnectivityPlan>: This must be set as "dev-cs/testing".
‚ <name>: Name of each device (optional).
Example for some Smart Parking EU nodes (LoRaWAN EU863-870). Let’s assume TWA_123 was the "AS routing
profile ID" given by Actility for our application:
- 54 - v7.0
LoRaWAN Network Server setup
CREATE_OTAA,<EUI1>,,LORA/GenericA.1.0.2a_ETSI_Rx2-SF12,<AppEUI1>,<AppKey1>,,dev-cs/testing,TWA_123,,Node1,,,,,
CREATE_OTAA,<EUI2>,,LORA/GenericA.1.0.2a_ETSI_Rx2-SF12,<AppEUI2>,<AppKey2>,,dev-cs/testing,TWA_123,,Node2,,,,,
CREATE_OTAA,<EUI3>,,LORA/GenericA.1.0.2a_ETSI_Rx2-SF12,<AppEUI3>,<AppKey3>,,dev-cs/testing,TWA_123,,Node3,,,,,
CREATE_OTAA,<EUI4>,,LORA/GenericA.1.0.2a_ETSI_Rx2-SF12,<AppEUI4>,<AppKey4>,,dev-cs/testing,TWA_123,,Node4,,,,,
CREATE_OTAA,<EUI5>,,LORA/GenericA.1.0.2a_ETSI_Rx2-SF12,<AppEUI5>,<AppKey5>,,dev-cs/testing,TWA_123,,Node5,,,,,
- 55 - v7.0
Customer Server
7. Customer Server
In order to communicate with any LoRaWAN Network Server you need a web application up and running. The web
application will receive LoRaWAN requests via POST/GET requests depending on the server. Libelium provides the
source files of a simple web application called Customer Server, created to be deployed on your server.
If the user wants to use the Remote Configuration Form, all Smart Parking nodes must be registered on the Libelium
Cloud. There is no need of additional licenses.
The Customer Server must be deployed on your own server. Besides, the LoRaWAN Network Server must be
configured with the complete URL containing your server domain name or IP. The context should point to the web
application deployment path.
Note: Customers can ask for this source code to our Sales Team ([email protected]) after buying the nodes.
- 56 - v7.0
Customer Server
7.1. Installation
There are 2 ways to install the Customer Server: installing it on your own server with Docker or installing it manually
on your own server.
Assigning a public IP and a registered domain name to the server is recommended to ease the task of configuring
LoRaWAN Network Server to send HTTP/HTTPS requests to this server. It is also a good practice to implement
existing security policies (user credentials, SSL, firewall, and tools to avoid DoS attacks) for servers with open ports
to Internet.
7.1.1. Docker
If you want to use Docker, you must install Docker and Docker Compose on your server. In order to install these
tools, you should follow the instructions from the official documentation by Docker:
‚ Docker installation instructions: https://docs.docker.com/install/
‚ Docker Compose installation instructions: https://docs.docker.com/compose/install/
You can also hire online services which offer a virtual server with Docker already installed on it.
7.1.2. Server
The minimum requirements for the server are:
‚ Apache web server >= 2.4
‚ PHP >= 7.1.3
‚ Database: MySQL or PostgreSQL
‚ ionCube Loader
An Apache webserver with PHP support and a database must be configured on your server. Those are the minimum
requirements to deploy the Customer Server web application.
Even if you are not using Docker, you can use 2 files as a reference to install all the dependencies of the project.
These files are Dockerfile and docker-compose.yml, and can be found on the source code that the Sales Team
provides (bin/ci/smart_parking).
7.2. Deploying
7.2.1. Docker
‚ Step 1: Extract on your server the zip file provided by Libelium containing the Customer Server application
source files.
‚ Step 2: Go to the folder bin/ci/smart_parking.
‚ Step 3: You should modify the files Dockerfile and docker-compose.yml that we provide in order to make sure
that the security required for your project is matched.
- 57 - v7.0
Customer Server
‚ Database: We provide a file with the structure for the database, you can change the name of the main
table and also use it to add any additional tables you may need, the file is located on:
bin/ci/smart_parking/docker-entrypoint-initdb.d/init.sql
This file will be executed one time when the database container is created and it should be added to the
docker group.
‚ File structure: The application files should be placed in the “www-data” group from the web container.
You can map a host user to www-data by UID as it is commented on the Dockerfile or you can assign the
files to the correct UID (33 by default).
‚ Step 4: Execute “docker-compose up” to launch the project (the 1st time, it may take some time to execute).
‚ Step 5: You can check if the installation is completed navigating to “http://MACHINE_IP:7000”: you should see
the Remote Configuration Form login screen.
7.2.2. Server
‚ Step 1: Extract on your server the zip file provided by Libelium containing the Customer Server application
source files.
‚ Step 2: Check the right owner/group and permissions of all the files extracted, usually using www-data group
is default in Ubuntu environment.
‚ Step 3: Check the permissions of all folders and files, usually using 0770 for directories and 0660 for files is
default in Ubuntu environment.
‚ Step 4: Configure in your server the context of the callback server application with the path where the source
files were extracted.
Copy and paste the following text as content of the file “my_server.conf” file located on
“/etc/apache2/sites-available” (replace paths to match your server deployment locations):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName my_server.com
ServerAlias my_server.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /path/zip/extracted>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
- 58 - v7.0
Customer Server
cd src/storage/app/parking
cp nodes.example.json nodes.json
CACHE_DRIVER=file
LORIOT_API_KEY=''
If you want to use either Actility or Loriot you must specify which one you want to use; you must fill all the
configuration fields.
SERVICE='Loriot'
- 59 - v7.0
Customer Server
LORIOT_URI='https://serverID.loriot.io/1/'
“serverId” is the Loriot server from which your Loriot application is served, you can find it on the URL of your Loriot
account.
LORIOT_APP_ID='appId'
“appId” is the ID of your Loriot application. You can find it on the “Network application” section of your Loriot
account:
LORIOT_TOKEN='loriotToken'
“loriotToken” is the ID of your Loriot application. You can find it on the “Application tokens” section of your Loriot
account:
LORIOT_API_KEY='loriotApiKey'
“loriotApiKey” is a key you can obtain on the “Account” section of the Loriot panel:
- 60 - v7.0
Customer Server
SERVICE='Actility'
ACTILITY_URI='actilityURI'
“actilityURI” is the downlink URL that Actility provides to send information from the server to the node. This URL is
the address of the primary Actility LRC cluster.
Finally, the URL to be configured in the LoRaWAN Network Server must be created concatenating the server name
and the paths:
Loriot: https://my_server.com/api/parking/v2/services/loriot
Actility: https://my_server.com/api/parking/v2/services/actility
- 61 - v7.0
Customer Server
Form.
For accessing the Remote Configuration Form, log in with your user and password from your Libelium Cloud
account. Enter your credentials and press “Login”.
Select one or several devices on the drop-down menu. Each device is identified by their unique LoRaWAN EUI. The
nodes displayed in the drop-down menu correspond to the nodes you have claimed for on your Libelium Cloud
account. You can also deselect previously selected nodes using the cross icon.
Once a node is selected, its current configuration is displayed and you can modify it. For further information of the
node parameters, please refer to the chapter “Smart Parking node”.
- 62 - v7.0
Customer Server
Once you have configured the node or nodes, press the “Save configuration” button. A message is shown indicating
that a downlink frame with the node’s configuration has been enqueued on the downlink queue of the LoRaWAN
Network Server. Therefore, the node will receive a downlink frame with the new configuration in response to the
next Info frame or Keep Alive frame.
So the Remote Configuration Form application allows the user to update some node parameters, just as the Smart
Devices App does. However, using the Smart Devices App requires physical access to the Smart Parking node: the
node must be plugged to a computer with a USB cable.
Note: The Remote Configuration Form does not permit to update any LoRaWAN parameter. The Smart Devices
App should be used instead.
- 63 - v7.0
Customer Server
Regarding the frame type, if a "Start Frame 1" or "RTC Update Request" frames are received, then a new downlink
frame is immediately enqueued into the LoRaWAN Network Server with the proper answer.
On the other hand, when the Remote Configuration Form is managed in order to update node parameters, a
downlink frame is sent to the LoRaWAN Network Server with the new values.
For further information about the different frame types please refer to the “Frame types” section.
7.6.1. End-point
Once you have installed and configured the Customer Server, the system will be prepared to listen to LoRaWAN
requests. The end-point will vary depending on the configured LoRaWAN service. By default, the source code is
prepared for both Loriot and Actility network servers.
- 64 - v7.0
Customer Server
7.6.3. Database
The Customer Server Core inserts data into a MySQL database upon uplink frames arrival. The uplink frames are
parsed by the Data Parser and the source code is capable of performing smart database insertions by accessing to
previously stored information. For example, a loss in the sequence number is calculated by reading the previous
sequence number insertion. Besides, the node time settings (Sleep time, Keep Alive time, etc) are stored since the
"Start frame 1" and "Start frame 2" are received so it is possible to access to the current node configuration any time.
- 65 - v7.0
Customer Server
battery Keep-alive, RTC update The battery level read by the node (mV units).
radar_threshold Start frame 1 The threshold configured to the radar sensor.
The starting range configured to the radar sensor (mm
radar_range_start Start frame 1
units).
The length of range configured to the radar sensor (mm
radar_range_length Start frame 1
units).
firmware_version Start frame 1 The number related to firmware version.
sleep_time_minutes Start frame 2 Time settings related to sleep time minutes field.
sleep_time_seconds Start frame 2 Time settings related to sleep time seconds field.
Time settings related to Keep-alive time field (hours field
keep_alive Start frame 2
except for 0.5h which is equal to zero).
Field to indicate if night-mode is active (0: disabled; 1:
nm Start frame 2
enabled).
nm_start_hour Start frame 2 Field to indicate when night-mode starts (hours field).
nm_duration Start frame 2 Field to indicate night-mode duration (hours field).
nm_sleep_time Start frame 2 Field to indicate night-mode sleep time (minutes field).
Field to indicate night-mode Keep-alive time (hours
nm_keep_alive Start frame 2
field).
(*) Fields calculated by the Data Parser by accessing to previous database insertions.
For further information about the fields please refer to the “Frame types” chapter.
The next figure shows a fragment of the table on the database where data was inserted for a specific LoRaWAN
EUI:
Once data is stored on the database, you can use any compatible tool to query the database and develop your own
data analysis and visualization. This task belongs entirely to the customer or system integrator.
- 66 - v7.0
Customer Server
src/app/Http/Controllers/api/v2/ServiceController.php
- 67 - v7.0
Customer Server
This method will receive a request object with all the data provided from the service, you can use the helper
methods from the service class you have created previously. The implementation details can vary from service
to service, so this cannot be explained in detail (you can use the Loriot and Actility ones as a reference).
‚ Enqueue the data if the parser returns something on the output key returned form the parser:
if($a_result['output']){
YourService::enqueue_message($EUI, $a_result['output']['data']);
}
event(new \App\Events\DecoderEvent($a_result));
Once all steps have been completed you have to register the service on the file:
src/app/Providers/AppServiceProvider.php
The register method should pair LwService with the service you have just created.
- 68 - v7.0
Libelium Smart Parking Cloud Service
The Smart Parking Cloud Service includes the Remote Configuration Form to manage the configuration values of
the Smart Parking nodes, and the Smart Parking Cloud Core, that deals with the LoRaWAN network server requests,
sending back a response if needed. The data sent from the Smart Parking nodes will be sent to any compatible
final IoT cloud service using the Libelium Cloud Bridge (you will need a license to use the Libelium Cloud Bridge).
Another way to access the Smart Parking Cloud Service is possible through the collapsed menu at the top right
of the page. Clicking on it and then on the “Smart Parking” option, users will arrive to the same place. As in the
previous case, users must possess a valid license. Otherwise, this option will not be displayed.
- 69 - v7.0
Libelium Smart Parking Cloud Service
Once the user has a valid license, the following features will be available accessing the Smart Parking Cloud Service:
configure nodes remotely, configure the LoRaWAN service, check the logs for the configured service and generate
the tokens and keys needed for the LoRaWAN network server.
- 70 - v7.0
Libelium Smart Parking Cloud Service
Once you have configured the node(s) and the service as explained in the section “Service Configuration”, press the
“Save configuration” button. A message indicates that a downlink frame with the node’s configuration has been
enqueued to the LoRaWAN Network Server downlink queue. The node will receive a downlink frame with the new
configuration in response to the next Info or Keep-Alive uplink frame.
The Remote Configuration Form application allows the user to update some node parameters just as the Smart
Devices App does. However, using the Smart Devices App requires physical access to the node: it must be plugged
to your computer via a USB cable.
Note: The Remote Configuration Form does not permit to update any LoRaWAN parameter. The Smart Devices
App should be used instead.
- 71 - v7.0
Libelium Smart Parking Cloud Service
If you want to use Actility as your LoRaWAN Network Server, you have to select it on the drop-down menu and
complete the required fields. To find the information on the Actility panel, you can follow the instructions described
on the “How to configure Actility” section.
- 72 - v7.0
Libelium Smart Parking Cloud Service
Regardless of the service you have configured, click on the button “Save Configuration” to save your LoRaWAN
service configuration. Then, a message will be displayed indicating that the service has been updated or saved
correctly.
8.1.3. Log
The “Logs” tab shows the information and error messages registering the result of the communication requests of
the LoRaWAN services. Different communication protocols are used to configure the service. All messages related
to the transport layer of the service are identified as INFO or ERROR. User intervention may be required to analyse
the meaning of the messages generated in the application layer and decide if some actions are required.
- 73 - v7.0
Libelium Smart Parking Cloud Service
Click the “Refresh” button to update the log view and load new messages available. The latest messages appear at
the bottom of the viewer.
8.1.4. Tools
The “Tools” tab allows users to download the Device Node Keys associated with their account, as well as generate
the necessary token to configure your Loriot network server correctly.
- 74 - v7.0
Libelium Smart Parking Cloud Service
Figure : Tools
The Node Keys is a CSV-format file. It is ready to use in the LoRaWAN Network Server to configure all the Smart
Parking nodes associated with their account in the Libelium Cloud. It can be downloaded by clicking on the
“Download Nodes Keys” button.
Finally, a token must be generated clicking on the “Create New Key” link in order to finish the Loriot service
configuration.
A pop-up window will be displayed, in which users must introduce a name to identify the new token. Then, clicking
the “Create” button shows a password in a new window, ready to be used in the Loriot service.
- 75 - v7.0
Libelium Smart Parking Cloud Service
Once the token has been generated, you can use it on the Loriot backend as described in the section “Manage Loriot output
section.
- 76 - v7.0
Deployment and installation
1. Nodes provisioning: Once the client owns a LoRaWAN Network Server license, it is mandatory to register the
nodes with the configured identifier and keys for each node. The client must decide whether they use the
factory default LoRaWAN unique identifier and random private keys provided by Libelium or they prefer to
configure their own identifier and keys. You must keep in mind that every node is provided "ready to install"
with factory default identifier and keys. If client-configured identifier and keys are desired, then each node
will have to be configured separately using the Smart Devices App. This 2nd option increases the provisioning
time. So Libelium recommends to use the default IDs and keys. If factory default keys are used, then a CSV file
exported from Libelium Cloud Services Manager (SCM) can be used to ease the bulk import into the LoRaWAN
Network Server.
Please refer to the “Smart Devices App ” chapter for further information about the Smart Devices App.
Please refer to the “Libelium Cloud management” chapter for further information about how to extract the
factory default IDs/keys.
2. Libelium Cloud or Customer Server setup: The client must have chosen the type of cloud service to be
used: The Libelium Cloud or her own Customer Server. The Libelium Cloud is used to receive and forward
data to a 3rd party cloud system and the Customer Server is used to receive and store data. So depending on
the end-point used, the LoRaWAN Network Server must be configured to properly forward all packets to the
desired server.
3. Nodes installation: Each node must be placed on the proper parking slot and then follow the "magnet
start-up" protocol explained in the “"Magnet start-up" process” section.
- 77 - v7.0
Deployment and installation
- 78 - v7.0
Deployment and installation
Important:
It is important to keep in mind that parking slots must be delimited by lines so the node is placed in the center of
the parking area. Placing the nodes with no line definitions may lead into bad behaviour.
- 79 - v7.0
Deployment and installation
Firstly, mark 4 holes in the asphalt. Select an area as flat and regular as possible, avoid irregularities on the terrain.
You should place the enclosure in the final location and use the 4 holes as a reference to drill 4 little marks on the
ground. You can also draw 4 dots with ink.
Then continue with the chemical fixing installation step by step as described above. Also, in the next video you can
see how the installation is done chemical fixing installation.
- 80 - v7.0
Deployment and installation
- 81 - v7.0
Deployment and installation
Once the anchor is correctly inserted, some adhesive might exceed from the hole. This residuary adhesive must be
removed from the installation so the are no extra adhesive and the anchor installation is clean and smooth.
- 82 - v7.0
Deployment and installation
- 83 - v7.0
Deployment and installation
- 84 - v7.0
Deployment and installation
For this special installation, Libelium provides flat enclosures. Contact your Sales agent to order flat enclosures.
- 85 - v7.0
Deployment and installation
Regarding the installation process, the next steps explain how to correctly install the device under the ground:
- 86 - v7.0
Deployment and installation
Figure : Pour Epoxy curing agent into the granular resinous material
In this installation, it is crucial that the upper side of the enclosure is not covered with Epoxy or other material. Only
the side slides can be covered, the center of the node must be clean to allow the radar signal work properly.
- 87 - v7.0
Deployment and installation
The same underground installation steps must be followed as seen in the previous section. In the node placement
step, the vaulted enclosure must exceed the horizontal pavement layer by 6-7 mm approximately. The next figure
shows how the node is placed:
Once the node has been started, it will begin to run the firmware step-by-step as explained in the “How the node
works” section.
In the next video you can see how the "magnet start-up" is performed: magnet start-up.
- 88 - v7.0
Deployment and installation
- 89 - v7.0
Deployment and installation
- 90 - v7.0
Certifications
10. Certifications
10.1. CE (European Union)
In accordance with the RED Directive, Libelium Comunicaciones Distribuidas S.L. declares that the “Smart Parking
v2 EU” device is in conformity with the European Union legislation and with the following harmonized standards
and technical specifications:
‚ EN 50581:2012
‚ EN 301 489-1 Ver. 2.1.1 (2017-02)
‚ EN 301 489-3 Ver. 2.1.1 (2017-03)
‚ EN 305 550-2 V1.2.1 (2014-10)
‚ Draft EN 305 550 V2.1.0 (2017-10)
‚ EN 300 220-1 V3.1.1 (2016-11)
‚ EN 300 220-2 V3.1.1 (2016-11)
‚ EN 62479:2011
‚ UNE-EN 62368-1:2014 + AC:2015 + AC1:2015 + AC2:2015 + AC:2017-03 + A11:2017
- 91 - v7.0