Ok ... so running pretty stable now
... mobile app is 100% working (and installed on my iPhone as an actual app) but only for the home page. You can do the following from the app right now:
- monitor the e-nail temperature, set point, status (running/stopped) and script status
- adjust the set point up and down
- start/stop the heater (using this to power on from in the house a few minutes before coming out ... or 5-10 minutes if the VROD is setup and not the d-nail Halo)
- scroll through/select the current script (you swipe left/right ... could change this to a drop-down ... but I figure this is better because most people won't have dozens of scripts ... probably most will use <10. I use a few ... but then again I only have a D-Nail Halo and VROD that I use ... like to get one of those 710 opaque quartz bangers soon though
- run/cancel the selected script
- receives updates <1 second increments ... socket.io is extremely efficient at this and extremely robust from my experience
- uses MDNS/bonjour to advertize itself on the network and the mobile app uses this to determine it's URL (this does require that they are on the same network though!).
Here's a screenshot from my phone of when I powered it on in the house before coming out ...
Next steps:
- WiFi connect from device/OLED display
- Security around connection between mobile app and device. I think I'm going to keep this simple ... when you connect to the device, if you haven't before, it generates a key for you that it displays on the OLED display, which it then encrypts with a private key certificate and sends it back to you for storage in local storage. It then uses this key moving forwards. This means that anyone with physical access to the device could establish a connection to it; however, if they have physical access to it, I think securing WiFi access is a moot point!
- Scripts Management page: Need to be able create/edit/delete scripts. This will be one of the more complicated pieces ... to build a user friendly "workflow"/"process flow" editor for use on a phone
I'm sure I'm spending more time on messing around with things sizing right on the display, and the acceleration on the rotary encoder, etc. Getting some of these things "just right" can be time consuming.
- Settings Management page: I'd like to be able to manage the following from this page:
- Temperature Units (Fahrenheit or Celcius)
- Temperature Offset (you can offset your temperature by a certain # of degrees to compensate for any discrepancies in the reading from your thermocouple). You can actually adjust a couple different parameters based on readings at different known temperatures and that will make it even more accurate. Think I'll leave this to just the single setting though ... if you really wanted to go beyond that you could use the Omron menus
- Auto-tune and ability to save/load "profiles" (essentially a snapshot of your PID settings for different nails you connect such as a d-nail halo vs a vrod vs a 710 banger etc.)
- Network settings maybe. Maybe an AP mode.
- Fallback on Mobile App so if it can't find the device using last known address, or MDNS/bonjour, it prompts for a server name/IP (and port optional).
- Create schematic, parts list, and instructions for building/assembling unit.
- Once development is relatively stable create a packaged version of the SD card/OS for re-use by others. (also at the same time document the steps to set this up. what needs to be installed above the raspbian dependencies, with apt-get, that are required by the application)
I'm sure there's more ... but that covers some of it
Hope you guys are all enjoying watching the way I work ... I go on rolls like this at work as well (not just side projects!
)