TGit-Tech / ArdiChef

ArdiChef is an automated home cooking system
MIT License
0 stars 0 forks source link

User Software needs to be created #1

Closed TGit-Tech closed 8 years ago

TGit-Tech commented 9 years ago

Software should 1) Use XML file to import hardware configuration 2) Use XML to describe recipes 3) Contain a UI for the creation and execution of hardware configuration / recipe execution 4) Allow on-demand "manual" control using XML hardware configuration.

Written in Arduino sketch environment (much like C) and/or the "Processing" Language

TGit-Tech commented 8 years ago

Interface Plan: 1) The architecture most favored is using an ethernet shield on the arduino to host a web interface; most likely utilizing the webduino library. 2) Hardware Setup Screen (html) - Assigning an "ingredient name" to "dispensor type/motor" and "port#'s" for hardware setup. 3) Recipe Execution Screen

Notes: The "heart" of the web server on the Arduino should center around the ethernet shield as the future will most likely involve multi-arduino board configuration. Therefore; Motor/Dispensor control should be "loosely" tied to the web-server part. The idea currently is to utilize I2C communications from the "Host" (eth-shielded) Arduino to any Sub-Arduino boards. Exact architecture is not yet determined but may consist of the eth-Arduino (IE. Main Board) may even contain I2C communication for inter-connection to motor control routines.

Also keep in-mind the Web-Server merchandise may be hosted on a Rasberry Pi at a later date; Thus a web host that is portable between a rasberry pi and arduino is preffered and the interface to the Arduino motor control functions that is portable is also recommended.

TGit-Tech commented 8 years ago

More Notes:

I've started the Arduino Server using source posted by SuferTim in 2013. The response time has a bit to be desired. Therefore; I'm proposing

1) Consider using JSON instead of XML for a) hardware configuration - setup.json b) Recipes - c) Ingredient inventory

2) Code so the Web Browser does all the programming work a) Browser requests page and with the page it uploads 'setup.json' b) Browser interaction will modify the 'setup.json' file in client cache c) Once complete the changed 'setup.json' file will be sent back to the arduino SD card.

3) Recipe handling a) Perhaps a 'recipes.json' directory file upon which a specific recipe 'json' file will be loaded for modifications and then sent back.

TGit-Tech commented 8 years ago

New Plan has been documented in https://github.com/tgit23/ArdiChef/blob/master/documents/ArdiChef_v1.0.pdf.