Difference between revisions of "LoRa research"
Line 7: | Line 7: | ||
1. Get the RadioHead library from [http://www.airspayce.com/mikem/arduino/RadioHead/](http://www.airspayce.com/mikem/arduino/RadioHead/). There is a link with the ending _.zip_ that you can click to download. | 1. Get the RadioHead library from [http://www.airspayce.com/mikem/arduino/RadioHead/](http://www.airspayce.com/mikem/arduino/RadioHead/). There is a link with the ending _.zip_ that you can click to download. | ||
− | 2. Add the library to your Arduino IDE. | + | 2. Add the library to your Arduino IDE. One added you can open the example file under examples --> radiohead. |
+ | |||
+ | 3. In the (example) sketch, make sure to assign LED to something other than 9. If set to 9, the restart of the LoRa board will be triggered. | ||
+ | |||
+ | ## Nanopb protocol buffer | ||
+ | |||
+ | This [_dfrobot_ tutorial](https://www.dfrobot.com/blog-1161.html) leads you through installing the Nanopb library and compiler on your laptop. _Nanopb_ is a version of the protocol buffer in the programming language C, which works well with 32 bit systems such as the Arduino. You can use [this online proto buffer decoder](https://protogen.marcgravell.com/decode) to decode proto buffer messages that were encoded for sending. | ||
+ | |||
+ | Protocol buffers are a data serialization format from Google which are supported in multiple programming languages. Protocol Buffers messages are encoded in a binary format, which means they are not human-readable unless we decode them back to a readable format. One of the main advantages of using Protocol Buffers is that the serialization and deserialization process is fast and the generated messages are small.[^protob] The Nanopb library needs a '.proto' file that clarifies the variables that will be serialized. Once, the different types of variables are serialized, they are unreadable for humans in a binary format. | ||
+ | |||
### References | ### References | ||
Line 13: | Line 22: | ||
[^dragino-lora]: https://wiki.dragino.com/index.php?title=Lora_Shield#What_is_the_Dragino_LoRa_Shield | [^dragino-lora]: https://wiki.dragino.com/index.php?title=Lora_Shield#What_is_the_Dragino_LoRa_Shield | ||
+ | |||
+ | [^protob]: https://www.dfrobot.com/blog-1161.html |
Revision as of 00:23, 14 March 2021
LoRa technology was developed by a company called Semtech and it is a new wireless protocol designed specifically for long-range, low-power communications. LoRa stands for Long Range Radio and is mainly targeted for M2M and IoT networks. This technology will enable public or multi-tenant networks to connect a number of applications running on the same network 1.
For different types of arduino, we can use a long range transciever LoRa shield called the 2.
Set up LoRa on your laptop
- Get the RadioHead library from http://www.airspayce.com/mikem/arduino/RadioHead/. There is a link with the ending .zip that you can click to download.
- Add the library to your Arduino IDE. One added you can open the example file under examples --> radiohead.
- In the (example) sketch, make sure to assign LED to something other than 9. If set to 9, the restart of the LoRa board will be triggered.
Nanopb protocol buffer
This dfrobot tutorial leads you through installing the Nanopb library and compiler on your laptop. Nanopb is a version of the protocol buffer in the programming language C, which works well with 32 bit systems such as the Arduino. You can use this online proto buffer decoder to decode proto buffer messages that were encoded for sending.
Protocol buffers are a data serialization format from Google which are supported in multiple programming languages. Protocol Buffers messages are encoded in a binary format, which means they are not human-readable unless we decode them back to a readable format. One of the main advantages of using Protocol Buffers is that the serialization and deserialization process is fast and the generated messages are small.3 The Nanopb library needs a '.proto' file that clarifies the variables that will be serialized. Once, the different types of variables are serialized, they are unreadable for humans in a binary format.