Research Opportunities - SteveCossy/IOT GitHub Wiki

This is a living document. It will change over time. To follow updates, please log in to GitHub and 'Watch' this repository (menu across the top). You can also click 'revisions' just below the page header to see what has been changed.

SteveCossy/IOT Repository History

The Home Page of this Repository Wiki lists and briefly explains the various components that have been built into a type of IoT infrastructure. Other Wiki pages describe details of projects that have been developed over about five years. The initial inspiration and on-going application of this GitHub Repository is to observe and enhance the breeding of penguins off the coast of Taranaki.

Examples of Student Projects

Published outputs related to this Repository

Project ideas

It is hoped that students will continue to want to work on this project. Each student team can use and enhance the work that has gone on before. These are predominantly undergraduate Capstone Projects, however, there is also scope for post-graduate projects.

Current Technologies

Resources currently being used by this project include:

  • PICAXE Educational processor, also used for long-term projects, as described by Andrew Hornblow in this presentation. PICAXE processors run their own version of the BASIC programming language which has striking similarity to use of low-level Machine Code.
  • MQTT Protocol which is very widely used to send data in the form of messages between IoT components. Note that MQTT relies on having an MQTT Broker. Examples used in this Repository include Mosquitto and Cayenne.
  • Raspberry Pi or similar computers for a variety of applications.
  • Various other pieces of hardware comprising sensors, radio transmission devices and random supportive electronics largely developed by Andrew Hornblow.
  • Python language, as used in this GitHub repository.
  • Cayenne provides excellent real-time visualisation of data and an MQTT Broker.
  • A Mosquitto Broker have been used in previous projects and could be developed again.

Node-RED Development

This environment could be used to enhance the Cayenne immediate visualisation. Node-RED could be used with some sort of simple database for longer-term output and further processing of the data. Details of requirements could be negotiated with a Project Supervisor or Advisor, and client. This project would include research and applied work to deploy Node RED on a number of hardware platforms, including

  • Cloud hosted
  • Raspberry Pi
  • Linux Server

Arduino Development

Implementation of the IoT Infrastructure in this Project using an Arduino environment. Arduino is the most widely used IoT environment, with or without Arduino branded hardware. Code is written using 'Arduino C'. It is envisaged that this or Python development would use Microsoft Visual Studio community edition. This option might include hardware and software support from Econode.

Further Python Development

The Wiki Home Page lists some enhancements that could be made to the existing infrastructure. One option is further streamlining the process of writing the current version of the code to a 'new' Raspberry Pi.

Wireless Field Work

Recently (April 2022) the author installed a TTN IoT gateway at a very prominent location in Wellington. Work is required to document the coverage of this gateway within Zealandia and with wider city (it can be picked up from Petone and Eastbourne). This project could be combined with developing tools to display the results of a site survey.

Server Development

There are options for further refinement of gateway and server devices used in the project. For example, this interactive dashboard is currently running on a Whitireia School of IT server. Cayenne have a dashboard 'widget' that can do this with the same data! There is a lot of potential to enhance the functionality and ease of use of this server. An option here might be to write a gateway that receives serial communication and formats it into a structure that can be sent over TTN. This could tie together 'University of Shed' low-cost electronics with the robustness of TTN.

PICAXE Development

For those who are very keen to learn very low-level details of IoT, there is the option of developing and extending the sensors build by Andrew. There are some examples of PICAXE BASIC code in this repository.

Most options for a Capstone Project involve software. Examples could be:

Use a structure you have to learned in your degree to map out the existing code, showing interrelationships between the various software components and listing the inputs, function, and output of each function in the system. Having completed that, you could define a set of target functions to be rewritten to be more efficient and implement your proposed changes. There are two parts of the project which deal with visualization. CayenneMQTT and WebPy use a combination of Web libraries for Python and Javascript to implement the GPS plotting system. This system has some interesting features, but is very rudimentary. A Capstone Project could document the existing code, define extra functionality that could be added, then redevelop the system, including a specified set of additional features. The Visualisation project was a previous proof of concept Capstone Project, which implements a hosted graphing page. This could be re-written to be hosted locally, with far more data storage, manipulation, and visualisation options. A Networking project using this IoT infrastructure could focus on the Radio Frequency (RF) components.

Plan, document and execute an analysis of the functions of the LoRa modules. These are highly configurable. Your project could set up a LoRa gateway connected to the Internet and establish a baseline for RF signal reach, using default parameters and tested with a Software Defined Radio dongle, using this software. The LoRa modules can also be configured to provide low speed Ethernet communication. There are a number of factors that can be changed in this setup:

RF configurations settings could be changed, and the signal reach tested for each variation. The antennae can be changed. Testing can be repeated in a different physical environment. Currently the School of Computing has access to LoRa modules using 433 MHz. If different frequency modules can be obtained, then these could be compared. A comparison could be made with 2.4 GHz (wifi) communication.