This repository contains the setup and evaluation scripts for the automatic web service deployment using the Apodini IoT Deployment Provider that was used for the JASS 2021.
The evaluation has been conducted with a total of 3 Raspberry Pis (A, B, C).
ssh-copy-id username@ipaddress
with the username (probably ubuntu) and the IP address of your Raspberry Pi on your machine to enable a more straightforward keyless ssh login.scp
and run the setup.sh
script to set up the wireless access point, docker installation, and avahi. The Raspberry Pi restarts after the script is complete.A
), e.g.: setup.sh B
.setup.sh B SuperSecretPassword
.RaspberryPiA
, and the password is set the same as the access point name if you have not set a separate password.When the Raspberry Pis reboot, the access point is automatically started. To connect the lamps to the access points, connect your mobile phone to the access point and use the LIFX app to set up the lamps for each Raspberry Pi subnet. On iOS you can use the settings app to directly connect the LIFX lamps to the WiFi networks without any dedicated app.
Since the Raspberry Pi on the DuckieBot is integrated into the DuckieBot, it does not have IoT devices connected to it that would allow us to identify it as a DuckieBot.
The JASS 2021 Deployment Provider uses an empty directory at the root directory named duckie-util
: /duckie-util
.
The JassDeploymentProvider runs a post-discovery action and tries to find this folder. If found, the gateway is identified as a DuckieBot.
The JASS 2021 IoT Deployment Provider is based on the Apodini IoT Deployment Provider. The source code and the relevant web service is in this repository. The JASS 2021 IoT Deployment Provider uses the LIFX Post Discovery Action located in this GitHub organization to discover LIFX-based smart lights.
To allow a non-interactive setup, you can pass a credentials file that will hold the credentials for the docker images and the Raspberry Pi-based IoT gateways.
The docker images used in the JASS 2021 IoT Deployment providers are public docker images hosted in the GitHub Package Registry. Therefore no docker credentials are needed.
This repository contains a default credentials file in this repository, credentials.json
, that can be passed to the provider as shown in the next section.
Build the provider using swift build
.
The machine executing the JASS 2021 IoT Deployment Provider must be in the same network as the RaspberryPis. You can now either:
swift run LifxDuckieIoTDeploymentTarget --credential-file-path credentials.json
./jass_simulation.sh IP_A IP_B IP_C
. Replace IP_A
, IP_B
, and IP_C
with the IPs of the respective Raspberry Pis.
Running the evaluation script dumps the logs automatically. If you want to enable this, manually set --dump-log
.To generate plots of the logs, use evaluation_processing.py
. The script requires two arguments pointing to directories. The first directory should contain the logs of the initial deployment (i.e., redownloading images), the second directory must contain the logs of the recurring deployment.
Contributions to this project are welcome. Please make sure to read the contribution guidelines first.
This project is licensed under the MIT License. See License for more information.
For our code of conduct see Code of conduct.
link |
Stars: 0 |
Last commit: 10 weeks ago |
Full Changelog: https://github.com/JASS-2021/JassDeploymentProviderValidation/compare/0.1.0...0.1.1
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics