Uploaded January 2019 | Updated September 2026, 2 weeks ago
If you like this video and want to support me, go this page for my donation Paypal or crypto addresses:
youtube.com/c/mobilefish/about
This is part 27 of the LoRa/LoRaWAN tutorial.
In this video series different topics will be explained which will help you to understand LoRa/LoRaWAN.
It is recommended to watch each video sequentially as I may refer to certain LoRa/LoRaWAN topics explained earlier.
In this tutorial I will demonstrate:
- how to retrieve sensor data from The Things Network,
- how to store it in a database,
- how to retrieve this data from the database and display it in a browser,
- and how to create a downlink, using a NodeJS script, sending data from my computer to my LoRa end node.
All code used in this tutorial can be found in the following Github repository:
github.com/robertlie/ttn_app_server
The Things Network community developers created several Software Development Kits (SDK) to receive activations and messages from IoT devices via The Things Network to your server.
It also allows you to send messages back to the IoT devices from your server.
The SDK’s are available in Go, Java, Python and Node.JS
Go: github.com/TheThingsNetwork/go-app-sdk
Java: github.com/TheThingsNetwork/java-app-sdk
Python: github.com/TheThingsNetwork/python-app-sdk
Node.JS: github.com/TheThingsNetwork/node-app-sdk
In this tutorial I will use the Node.JS SDK.
This tutorial assumes you have installed the following software packages and know how these packages works.
Node.JS (JavaScript server environment) and npm (node package manager)
nodejs.org/en/download/package-manager
MySQL (Relational Database Management System)In this tutorial MySQL Community Server is used.
mysql.com/downloads
phpMyAdmin (Web based administration tool for MySQL)
phpmyadmin.net
Goto The Things Network console.
Goto the applications page and select the application which receives the sensor data.
In this demo the application ID is "youtube_demo_app2".
To retrieve sensor data from The Things Network to your server, you need:
The application ID
Example: youtube_demo_app2
Access key
Example: ttn-account-v2.uicwOOArAqESHCfa8LGdftBSM6IZWjCdv4Art14iKtc
Download the Git repository:
github.com/robertlie/ttn_app_server
Goto folder ttn_app_server
Install the node modules, type: npm install
Modify file config.js
Modify file read_table.php
Run the script retrieve.js, type: node retrieve.js
This script only retrieves sensor data from TTN and displays it in the terminal.
It is possible to create a downlink by sending data to the end node using script send.js.
Modify file send.js:
client.send("youtube_demo_device", Buffer.alloc(1, 0x00, ‘binary'));
Depending on the hex value send, the yellow and green leds can be On or Off.
Run the script, type: node send.js
The retrieved sensor data from TTN can be stored in a MySQL database.
A database and corresponding table needs to be created.
First create the database ttn_demo_db, type: node create_db.js
Next create the table sensor_data, type: node create_table.js
Use the web application phpMyAdmin, to check if the database and table are created.
http://localhost/~username/phpmyadmin/index.php
The column "payload_raw" has data type tinyblob to store binary data.
The payload_fields data is not stored because the payload_raw data can be used to recreate the payload_fields data.
The Arduino sketch transmits the humidity and temperature data as four bytes.
If the button switch is pressed a single byte is transmitted.
To retrieve sensor data from TTN and store it in a MySQL database, type: node store_records.js
Use the web application phpMyAdmin, to check if sensor data are stored.
The sensor data is stored in the table sensor_data.
To display all records from table sensor_data in a terminal, type: node read_table.js
The sensor data is stored in the table sensor_data.
To display all records from table sensor_data in a browser:
First deploy file read_table.php in a web server (for example Apache supporting PHP and MySQL).
Open a browser and open the PHP file.
To completely delete the database ttn_demo_db, type: node drop_db.js
BE CAREFUL, ONCE DELETED ALL DATA IS LOST.
Check out all my other LoRa/LoRaWAN tutorial videos:
youtube.com/playlist?list=PLmL13yqb6OxdeOi97EvI8QeO8o-PqeQ0g
Subscribe to my YouTube channel:
youtube.com/channel/UCG5_CT_KjexxjbgNE4lVGkg?sub_confirmation=1
The presentation used in this video tutorial can be found at:
mobilefish.com/developer/lorawan/lorawan_quickguide_tutorial.html
#mobilefish #lora #lorawan
If you like this video and want to support me, go this page for my donation Paypal or crypto addresses:
youtube.com/c/mobilefish/about
This is part 27 of the LoRa/LoRaWAN tutorial.
In this video series different topics will be explained which will help you to understand LoRa/LoRaWAN.
It is recommended to watch each video sequentially as I may refer to certain LoRa/LoRaWAN topics explained earlier.
In this tutorial I will demonstrate:
- how to retrieve sensor data from The Things Network,
- how to store it in a database,
- how to retrieve this data from the database and display it in a browser,
- and how to create a downlink, using a NodeJS script, sending data from my computer to my LoRa end node.
All code used in this tutorial can be found in the following Github repository:
github.com/robertlie/ttn_app_server
The Things Network community developers created several Software Development Kits (SDK) to receive activations and messages from IoT devices via The Things Network to your server.
It also allows you to send messages back to the IoT devices from your server.
The SDK’s are available in Go, Java, Python and Node.JS
Go: github.com/TheThingsNetwork/go-app-sdk
Java: github.com/TheThingsNetwork/java-app-sdk
Python: github.com/TheThingsNetwork/python-app-sdk
Node.JS: github.com/TheThingsNetwork/node-app-sdk
In this tutorial I will use the Node.JS SDK.
This tutorial assumes you have installed the following software packages and know how these packages works.
Node.JS (JavaScript server environment) and npm (node package manager)
nodejs.org/en/download/package-manager
MySQL (Relational Database Management System)In this tutorial MySQL Community Server is used.
mysql.com/downloads
phpMyAdmin (Web based administration tool for MySQL)
phpmyadmin.net
Goto The Things Network console.
Goto the applications page and select the application which receives the sensor data.
In this demo the application ID is "youtube_demo_app2".
To retrieve sensor data from The Things Network to your server, you need:
The application ID
Example: youtube_demo_app2
Access key
Example: ttn-account-v2.uicwOOArAqESHCfa8LGdftBSM6IZWjCdv4Art14iKtc
Download the Git repository:
github.com/robertlie/ttn_app_server
Goto folder ttn_app_server
Install the node modules, type: npm install
Modify file config.js
Modify file read_table.php
Run the script retrieve.js, type: node retrieve.js
This script only retrieves sensor data from TTN and displays it in the terminal.
It is possible to create a downlink by sending data to the end node using script send.js.
Modify file send.js:
client.send("youtube_demo_device", Buffer.alloc(1, 0x00, ‘binary'));
Depending on the hex value send, the yellow and green leds can be On or Off.
Run the script, type: node send.js
The retrieved sensor data from TTN can be stored in a MySQL database.
A database and corresponding table needs to be created.
First create the database ttn_demo_db, type: node create_db.js
Next create the table sensor_data, type: node create_table.js
Use the web application phpMyAdmin, to check if the database and table are created.
http://localhost/~username/phpmyadmin/index.php
The column "payload_raw" has data type tinyblob to store binary data.
The payload_fields data is not stored because the payload_raw data can be used to recreate the payload_fields data.
The Arduino sketch transmits the humidity and temperature data as four bytes.
If the button switch is pressed a single byte is transmitted.
To retrieve sensor data from TTN and store it in a MySQL database, type: node store_records.js
Use the web application phpMyAdmin, to check if sensor data are stored.
The sensor data is stored in the table sensor_data.
To display all records from table sensor_data in a terminal, type: node read_table.js
The sensor data is stored in the table sensor_data.
To display all records from table sensor_data in a browser:
First deploy file read_table.php in a web server (for example Apache supporting PHP and MySQL).
Open a browser and open the PHP file.
To completely delete the database ttn_demo_db, type: node drop_db.js
BE CAREFUL, ONCE DELETED ALL DATA IS LOST.
Check out all my other LoRa/LoRaWAN tutorial videos:
youtube.com/playlist?list=PLmL13yqb6OxdeOi97EvI8QeO8o-PqeQ0g
Subscribe to my YouTube channel:
youtube.com/channel/UCG5_CT_KjexxjbgNE4lVGkg?sub_confirmation=1
The presentation used in this video tutorial can be found at:
mobilefish.com/developer/lorawan/lorawan_quickguide_tutorial.html
#mobilefish #lora #lorawan


![LoRa/LoRaWAN tutorial 1: IoT, LPWAN, Semtech, LoRa
If you like this video and want to support me, go this page for my donation Paypal or crypto addresses:
https://www.youtube.com/c/mobilefish/about
This is part 1 of the LoRa/LoRaWAN tutorial.
In this video series different topics will be explained which will help you to understand LoRa/LoRaWAN.
It is recommended to watch each video sequentially as I may refer to certain LoRa/LoRaWAN topics explained earlier.
In this video I will explain why LoRa is used in IoT projects.
The Internet of Things, or IoT, is a network of physical devices that are connected to the Internet and are able to talk to each other.
The prediction is that by 2020 there will be over 25 billion devices connected to the Internet.
There are many wireless technologies you can use to connect these devices to the Internet, such as:
- Short-range wireless communication
- Cellular communication
- LPWAN communication
In this video series I will be using equations and other information taken from several sources.
In my presentations these sources are referenced by the label [ref no].
1. Semtech: AN1200.22 - LoRa Modulation Basics (Revision 2, May 2015)
https://www.semtech.com/uploads/documents/an1200.22.pdf
2. Semtech: SX1276/77/78/79 Datasheet (Rev. 5, August 2016)
https://www.semtech.com/uploads/documents/DS_SX1276-7-8-9_W_APP_V5.pdf
3. Semtech: AN1200.13 - SX1272/3/6/7/8 LoRa Modem Design Guide (Revision 1, July 2013)
https://www.semtech.com/uploads/documents/LoraDesignGuide_STD.pdf
4. LoRa Alliance, Inc: LoRaWAN specification
https://lora-alliance.org/lorawan-for-developers
All my presentations used in this video series can be found here:
https://www.mobilefish.com/developer/lorawan/lorawan_quickguide_tutorial.html
LPWAN stands for Low Power Wide Area Network and this type of wireless communication is designed for sending small data packages over long distances, operating on a battery.
There are a number of competing technologies in the LPWAN space such as: Narrowband IoT (NB-IoT), Sigfox, LoRa and others.
In this video series I will only be focussing on LoRa.
The LoRa wireless technology was developed by a French start-up company Cycleo which developed the LoRa modulation technology.
In 2012 the Semtech Corporation (NASDAQ: SMTC) acquired Cycleo.
The LoRa radio and modulation part is patented and its source is closed.
Semtech has licensed its LoRa intellectual property (ip) to other chip manufacturers, such as HopeRF, Microchip, Dorji, etc.
The word LORA is a trademark of Semtech Corporation, filed in 2015.
More information about Semtech:
https://www.semtech.com/lora
The range between LoRa sender and receiver depends on the environment the equipment operates in.
Indoor coverage largely depends on the type of building material used.
Some notable records:
Andreas Spiess, ground to ground connection: 212 km (= 131.73 miles)
Weather balloon to ground connection: 702.67 km (= 436.61 miles)
Few use cases using LoRa technology:
- Smart utilities
Power transformer monitoring
Water level monitoring
Utility meter
Fuel monitoring (monitoring fuel levels in fuel tanks for heating houses)
- Health & Hygiene
Temperature / humidity monitoring
Environmental monitoring
Waste management (monitoring waste level in waste bins)
- Safety
Smart lightning
Water level monitoring
Radioactivity level monitoring
Dike monitoring (prevent peat dikes from drying out)
- Efficiency
Asset management (e.g. tracking containers, pallets, etc.)
Fleet management (e.g. tracking cars, vans, trucks, etc.)
- Agriculture
Monitoring animal welfare
Monitoring plant growing conditions
Check out all my other LoRa/LoRaWAN tutorial videos:
https://www.youtube.com/playlist?list=PLmL13yqb6OxdeOi97EvI8QeO8o-PqeQ0g
Subscribe to my YouTube channel:
https://www.youtube.com/channel/UCG5_CT_KjexxjbgNE4lVGkg?sub_confirmation=1
The presentation used in this video tutorial can be found at:
https://www.mobilefish.com/developer/lorawan/lorawan_quickguide_tutorial.html
#mobilefish #lora #lorawan LoRa/LoRaWAN tutorial 1: IoT, LPWAN, Semtech, LoRa](https://i.ytimg.com/vi/cUhAyyzlv2o/mqdefault.jpg)







