Skip to content

Android app that can interact with IoT devices through Augmented Reality

License

Notifications You must be signed in to change notification settings

danielenapo/AugmentedTwins

Repository files navigation

AR Digital Twins (thesis)

Augmented Reality Android app that can interact with IoT objects through an AR interface, made using Unity ARFoundation and CoAP (Constrained Application Protocol).

This project was made for my Bachelor degree thesis: "Remote control for IoT devices in augmented reality".

How it works

The app recognises images in the real world, wich are associated to the ip of a CoAP server. The server communicates with the app, telling what sensors and actuators are available. The app then creates an AR interface based on that informations, and displays it on top of the image.

COFFEE MACHINE:

AIR CONDITIONER:

Import project

The files in this repo are part of a Unity project, so just import all the files in Unity (editor version 2020.3.14f1)
All the useful files are found in the Assets folder. Here's a quick info on the type of files you will find in this project:

  • PREFABS: (Assets/prefabs) the "prefabs" that are instantiated as 3D objects (or UI elements) by the Factory class.
  • PLUGIN: (Assets/Plugins/Android) the native plugin pre-compiled in Java. the source code is in this repo.
  • CODE FILES: (Assets/code) All in C#, the folders are divided in modules, you can follow this class diagram to understand code architecture and structure.

Software architecture

architecture

Related repositories

This repository only contains the Unity project of the client AR part of the whole software system.
Other useful related repos are:

  • SERVERS: they're mandatory to test the app (instructions on the readme)
  • PLUGIN: client code of the java natve plugin (you don't need this, it's just to better understand the code) NOTE:
    To test the app, you also have to run the servers (HTTP and CoAP) on a local network, then open the settings in the app, insert the HTTP server's local IP, and then press the button "call HTTP Server".