So I've figured out a way to detach the heatermeater AVR board from the raspberry pi. In other words the raspberry pi is inside the house running the server while the arduino is outside running the grill. The avr and arduino are linked wirlessly through your wifi.
A few benefits of this approach might be
1) much smaller space requirements for the outdoor heatermeter enclosure. Might make for an easier combined damper and enclosure design.
2) simpler hm board design
3) easier to build
4) my heat sensitive rpi is sitting in the house in the A/C during the summer, leaving the simpler/cheaper avr to endure the weather
5) no need to modify the pi.
I used an esp8266 wifi module (~$3) to do this. Without writing a detailed step-by-step I'll just try to go through rough outline of what I did and if anyone wants further detail please don't hesitate to ask.
I'm using a $2 arduino pro mini from ebay, a $3 esp8266 (version 03) from ebay, and an old rpi B I borrowed from another project.
1) Load and setup the esp-link firmware onto the esp to turn the chip into a "transparent wifi serial bridge". Note that this is capable of wirelessly reflashing an attached arduino. Take note of the IP address that you set up for the esp, you'll need it later.
2) Wire the esp to the arduino's tx/rx. Be carefull of voltages if using a 5v arduino.
3) Modify the AVR's hmcore.h to use 57600 baud instead of 38400. The esp-link software doesn't use a baud as low as the heatermeter's default 38400 so this had to be changed. It would be most conveinent to change this to what ever the reflashing baud rate is of the avr you're using.
4) compile and flash the avr with this new serial baud settings
5) In the rpi modify /usr/bin/linkmeter.uci-defaults to also use the 57600 baud rate (or what ever you canged it to in step 3)
6) install socat on the pi
7) use the ip address you set up for the esp-link in step 1 to get the pi to talk to the arduino through your wifi. In your heatermeter UI go to configuration -> sytem -> startup and in the local startup textbox add the following before the line that says 'exit 0'
And that's pretty much the gist of it.
A few drawbacks
1) lost (unrecorded) data if the wifi connection is poor
2) setting up the esp's firmware can be a pain
3) probably more, you tell me
A few benefits of this approach might be
1) much smaller space requirements for the outdoor heatermeter enclosure. Might make for an easier combined damper and enclosure design.
2) simpler hm board design
3) easier to build
4) my heat sensitive rpi is sitting in the house in the A/C during the summer, leaving the simpler/cheaper avr to endure the weather
5) no need to modify the pi.
I used an esp8266 wifi module (~$3) to do this. Without writing a detailed step-by-step I'll just try to go through rough outline of what I did and if anyone wants further detail please don't hesitate to ask.
I'm using a $2 arduino pro mini from ebay, a $3 esp8266 (version 03) from ebay, and an old rpi B I borrowed from another project.
1) Load and setup the esp-link firmware onto the esp to turn the chip into a "transparent wifi serial bridge". Note that this is capable of wirelessly reflashing an attached arduino. Take note of the IP address that you set up for the esp, you'll need it later.
2) Wire the esp to the arduino's tx/rx. Be carefull of voltages if using a 5v arduino.
3) Modify the AVR's hmcore.h to use 57600 baud instead of 38400. The esp-link software doesn't use a baud as low as the heatermeter's default 38400 so this had to be changed. It would be most conveinent to change this to what ever the reflashing baud rate is of the avr you're using.
4) compile and flash the avr with this new serial baud settings
5) In the rpi modify /usr/bin/linkmeter.uci-defaults to also use the 57600 baud rate (or what ever you canged it to in step 3)
6) install socat on the pi
Code:
opkg update
opkg install socat
Code:
socat pty,link=/dev/ttyAMA0,raw,echo=0,waitslave,mode=777 tcp:<ESPLINKS IP ADDRESS>:23
And that's pretty much the gist of it.
A few drawbacks
1) lost (unrecorded) data if the wifi connection is poor
2) setting up the esp's firmware can be a pain
3) probably more, you tell me
Last edited: