Skip to content
/ SeaSpot Public
forked from RaulJCS5/SeaSpot

⚓ My bachelor's degree final paper/project - Infrastructure to facilitate communication with objects at sea

License

Notifications You must be signed in to change notification settings

p4ulor/SeaSpot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SeaSpot ⚓

Repository contents 📁

  • App -> The Android Studio project for our Android application
  • Docs -> A folder containing all the documentation about the project
  • Pycom -> All the MicroPython files to install the scripts that will be running in the device, which should be flashed into the device via the Pycom ecosystem/interface (with Pymakr)
  • WebApp -> Contains the back-end and front-end

Technologies 🖥️

Android Compose Kotlin Bluetooth LoRa Things Network Pycom MicroPython ExpressJS NodeJS JavaScript Bootstrap Handlebars Elasticsearch Leaflet

Full Video demo 🎥

Architecture Diagram 📋

VSC extensions recommended 🔌

Initial project proposal to students (PT) ✍️

As redes IoT(Internet of Things) têm, atualmente, um importante papel no transporte de dados provenientes de sensores ou de outros dispositivos. Uma das tecnologias mais popular atualmente é a LoRa, com aplicações transversais nas mais diferentes áreas. Além de diversas vantagens, a tecnologia LoRa apresenta distâncias de cobertura muito superiores às conseguidas pelas redes tradicionais, sendo possível efetuar coberta de regiões sem qualquer tipo de cobertura de rede móvel celular. Uma das aplicações deste tipo de tecnologia é a cobertura marítima, em distâncias muito superiores. No entanto, a comunicação através de dispositivos móveis nestes casos é vedada, pela não existência de cobertura de rede celular terrestre. Pretende-se desenvolver um sistema, composto por sistema central e aplicação cliente móvel, que disponibilize num dispositivo móvel convencional uma aplicação de comunicação através de rede LoRa, para usar a bordo de embarcações de pesca, em regiões afastadas da costa. Para isso, existirá um dispositivo a bordo da embarcação que assegurará a comunicação através de uma rede LoRaWAN e efetuará a conversão para BLE, permitindo que a aplicação móvel envie e receba mensagens de estado e disponibilize um serviço de localização num mapa ao utilizador.

O sistema será assim composto por três componentes:

  • Sistema central de gestão de comunicação;
  • Dispositivo para conversão LoRa / BLE;
  • Aplicação Móvel para Android.

Developed project (resume) 🛠️

The project consists of a communication and tracking system that allows a user with an Android phone to read and write properties from an IoT device (in this case a LILYGO TTGO T-Beam) via Bluetooth Low Energy (BLE). In turn, this device, that was programmed with MicroPython, communicated via LoRa (a low-power & long-range radio communication technique) to a LoRaWAN network, hosted by The Things Network (TTN), to register the location of the device (via it's GPS) along with the latest messages being sent by the user or automatically by the device. These write operations trigger a Webhook (by TTN) which communicates with our back-end, in the form of a RESTful API, to store this information in our Elasticsearch database. For the back-end, we used the ExpressJS framework and Handlebars to generate the HTML (via server-side rendering). To expose our back-end to the TTN's Webhook in a simple way, we used ngrok to expose a public URL address, instead of deploying the back-end to a cloud provider. The front-end allows user's to consult and filter the list of messages. Each message has the location of the device at the time it was sent. And the device's page displays the latest location. Both of these pages display an interactive map in the browser. The Android application was programed with Kotlin and Jetpack Compose.

Project poster 🖼️

Authors:

  • Paulo Rosa 44873
  • Raul Santos 44806
  • Tiago Pilaro 46147

Advisors

  • José Simão
  • Nuno Cota

About

⚓ My bachelor's degree final paper/project - Infrastructure to facilitate communication with objects at sea

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 33.8%
  • JavaScript 31.9%
  • Kotlin 29.3%
  • Handlebars 5.0%