I'm trying to build a smart thermostat for a particular application. I have the following design criteria and goals for the system:
- Must be able to set up and monitor the device from either a mobile phone or local network device.
- No go on Ethernet or other hardwired connection, except for initial setup. This must be a wireless solution. I'm presuming WiFi is best.
- Needs a clock, an on time and an off time setting.
- The system does a system time verification check once daily.
- Needs a temperature input.
- Needs to run an existing heater system (24v) thru a relay.
- 120v AC power (battery backup not required.)
- Needs to be "hidden" in existing wall as much as possible. (i.e. small & compact) My intent is to hide the unit behind a double wide electrical duplex dead panel. (i.e. 4" x 4" nominal access thru drywall)
Here's a visual of my design intent package:
As I review a number of different hardware controller devices, I can see some issues. I am very familiar with the Intel Edison, and I know exactly how to do this project there, including using the controller as a stand alone web host. (The Edison uses Yocto Linux to create a node.js server using http module.) I was hoping to save a few $$ on hardware using an alternative controller but not sure that will work. I've been wading thru the code for both the Photon and generic Arduino devices, and I'm getting the impression that I may need a custom server / api tool for a web page interface. Its not clear that those hardware choices will support an interactive web page, particularly for easy user data update via browser Submit button. That's not a big problem, I'm a freelance software developer, handy in C/C++/Java, PHP and JavaScript. And as for the Raspberry Pi, I have no experience but the pricing on some of their boards is below $15.
Here are my questions:
- Has anybody used an Arduino board to host an interactive web page, including user input via Submit / Form ? (Can I declare a local network static IP address for an Arduino?)
- Has anybody used an Particle Photon board to host an interactive web page, including user input via Submit / Form? (It looks like declaring a local network static IP address on a Photon is anything but easy...)
- Has anybody written an API Restful server for their Arduino, with both
get
andput
functionality? (I'm thinking PHP, or node.js makes the most sense for me.) I know if I have to use Dynamic IP addressing to the controller, that I can always make an API system work for the system. - Other comments?