Wednesday, September 9, 2015

Home Automation Part 5 ESP Code

After a lot of time siting frustrated in front of my computer going why doesn't this work and why does that I finally have code that works. A section of the code is still basically the same as with the Ethernet code I had before but I had to go through all of that and change a bunch of variables and references because of how the new library worked. Currently the ESP is set to DHCP because every time I try to set the ip address to 192.168.x.x it claims to have an address of 192.0.0.0 so I am still going to try to to get a static ip setup but the god news is that the router I am using is DDWRT and I think it gives an ip address out based on the mac address so the ESP gets the same ip address each time. I am also able to set a static ip on the router. For my purposes I do not care what the ip address is for each device, what I care about is the devID I give it. My code is in the link below. Most of it I can explain. Some of the stuff in the callback function I am a bit confused on but it works. You can get the topic that was received to come in as a string but the message is not a string or a char so you need to do some funky things to it.

When I was getting everything buttoned up yesterday I was curious how much current was being drawn so I hooked my voltmeter up in series and everything was working fine. I was still modifiying code at this point and after a little while I kept getting stack errors and the serial port would go nuts with information. Then the ESP would reboot and work fine again for a little and repeat. After searching the internet it turns out that it was a power supply issue. Now my volt meter said I was only using about 0.1 amps so I didn't think it was a current draw issue but after a while I took the volt meter out of the loop and it has run since without any issues.

After getting everything working how I wanted it was time to start moving onto the next step. The enclosure. In the long run I want to make a light switch replacement but I figured start with something simple. I happened to have this nice enclosure box and a few outlets so I am going to make a floor switch with 2 buttons ontop that you can push with your feet. This will make it easy to test while I figure out a good small setup for a light switch replacement.