A mobile app that is used to remotely manage GPIO pins on the DragonBoard 410c - from everywhere!
You can read more about this project in this blog post.
The purpose of this project was to set up a basis for a remote control of various components that are connected to GPIO pins on the DragonBoard (DB). The app enables to turn those components on and off with a single tap, or it can display if a sensor-like component is triggered or not. This app (together with the server) can be a good starting point to create an IoT hub that can allow the control of many devices from your phone.
The app connects to the server that is running on the DB (see server repository) through an ngrok tunnel. For this you simply need to enter the correct URL address in the URL configuration screen.
User needs to log in in order to use the app, which prevents anyone else from messing with your DB's GPIOs. After that you can see the connected components, edit them, and also register new ones.
You can login from different devices as many times as you want. The information about components will be updated in real time on all of the devices for all the users logged in as soon as the changes occur.
The target API is 26, however, for the purposes of testing I tried using a phone with an API version 24 and everything worked fine. Should you wish to change the minimum Sdk version, change it in App's build.gradle file and re-sync the project.
The app is most easily installed through Android Studio.
- Download this repo.
- Open repo folder in Android Studio.
- Turn on Developer options on your phone (see instructions here).
- In Developer options tab in phone settings, enable USB-debugging and Allow installation via USB cable.
- Connect your phone with a USB cable.
- On your phone, tap the notification that pops up. USB Preferences screen should open; on this screen enable File transfer option (instead of just charging your device).
- Click the Run button (or Shift+F10) in Android Studio.
- Select your phone from the list and click OK.
- On your phone, allow installation if prompted.
- After the installation the app will automatically open.
The UI was only tested on Xiaomi A2 Lite, so on your phone some buttons and other elements might shift off the screen. To fix this you will only need to manipulate the XML files in the res/layout
folder.
The app normally works fine. Some minor glitches can occur if the app is inactive for a longer time and then accessed from the Recent apps. These sorts of glitches disappear if the app is restarted.
Whether you liked the project or not, I would be very thankful for any feedback, suggestions or comments on the project.
Feel free to email me!