Espress for HeaterMeter Module (wifi with no Pi/Linkmeter needed)

DavidNP

TVWBB Member
Hi All...wanted to get a separate/dedicated thread for the Espress module that I wrote software for to work with HeaterMeter. It uses the esp8266 wifi chip (with also has a nice processor/ram/flash that can be programmed). I used NodeMCU currently because it's easier to work/flash with...but it would work with the esp12e chips directly as well....these devices are pretty cheap...around $3-$5 from ali/ebay.

I just started the project but here is where it's at:

  • Start and access local wifi (if it cannot connect, then it will start a local AP and serve webconfig pages to phone/tablet wirelessly). It does captive DNS so you don't need to know the ip once you connect to the esp-wifi device....just type any url and it will hit the config page(neat!)
  • configuration via webpages for all of HeatMeter parameters(probes,lcd,fan,pid..etc), as well as configuration of your thingspeak account(free) and of course wifi settings to connect to your internet router.
  • every 15 seconds it will update thingspeak servers so you can view/react to HeatMeater data.
  • It will also check every 5 seconds for remote temperature set....this allows you to input a setpoint on the thingspeak site and have the temperature set on your HM.

with this setup you don't have to configure any port-forwarding or anything like that to get your HM on the internet to see graphs and set temperature from anywhere.

I've tested it with a prototype HM that I made from a standard UNO....it's functioning well so far. I haven't 'beautified' the webpages yet, if anyone with more css/html experience wants to help make it 'pretty'...please feel free to contact me!

I'm looking for anyone who wishes to beta test it out....please pm me.

btw: it's free and opensource :)

here are some working screenshots...dashboard is a WIP, its a javascript file that pulls data in (live updating) from thingspeak channel.


 

RobN

New member
Looks like an awesome start!

You could easily make the site look better by using bootstrap.
 

WBegg

TVWBB Pro
Thanks for sharing. I set it all up and IT WORKS! I have it scabbed onto an extra HM board I had. I planned on trying it out this weekend on a cook, but noticed in the HM setup section, there is no selection for "internal" or Thermocouple.

Any ideas?
 

DavidNP

TVWBB Member
Thanks for sharing. I set it all up and IT WORKS! I have it scabbed onto an extra HM board I had. I planned on trying it out this weekend on a cook, but noticed in the HM setup section, there is no selection for "internal" or Thermocouple.

Any ideas?
it's isn't documented but I'm guessing to set to thermocouple you set TRM field to 3 for TC, and set the (c) resistor to the m/c Internal is TRM=1 so you might have to setup that. I'll make it into a drop down list in future once I know all the possible values...

let me know if that works, Bryan may have to answer the question (I got this info by looking at the openwrt config html...)

good to see you got it working......how did the Access Point work, did you use an android device or apple? did it find it by IP or did captive DNS work for you.....
 
Last edited:

WBegg

TVWBB Pro
it's isn't documented but I'm guessing to set to thermocouple you set TRM field to 3 for TC, and set the (c) resistor to the m/c Internal is TRM=1 so you might have to setup that. I'll make it into a drop down list in future once I know all the possible values...

let me know if that works, Bryan may have to answer the question (I got this info by looking at the openwrt config html...)

good to see you got it working......how did the Access Point work, did you use an android device or apple? did it find it by IP or did captive DNS work for you.....
The access point worked flawlessly on my android phone. just typed in g.com and it went right to it.

I tried setting the TRM to 3 but reading was way too high. Not sure what you mean by (c) resistor to the m/c?
 

DavidNP

TVWBB Member
based on the openwrt html file, if TRM=3 then it sets the resistor to 5....so try setting resistor to 5 as well and see if that works? Bryan will need to step in if that doesn't work and let me know what settings are for TC....

btw.....did you get the thingspeak setup with the dashboard working as well?
 

WBegg

TVWBB Pro
it works, David! I set up a free web hosting sub domain and modified the Dash board file to add a 3rd food probe, and it's working fine.

If this rain would just let up, I'll get a pork butt on the smoker to give it a try.

 

DavidNP

TVWBB Member
very cool!! I've also found a 'workaround' that lets thingspeak host the entire dashboard js file within.....so you won't need a hosting/website for the dashboard!

keep us posted on your first-cook with it.....
 

DavidNP

TVWBB Member
I'm working on the best way to handle alarms.....thoughts/feedback would be good...

any interest in my adding pushbullet support for alarms? Don't know if it's needed since thingspeak allows using twitter to react, so if you're using twitter already then you can get your alarms that way.

FYI....thingspeak is a cloud based product (open source). If you want you can actually download their source and run a thingspeak server locally. I found this link that someone already did with thingspeak running on a pi! http://www.esp8266-projects.com/2015/11/raspberry-pi2-thingspeak-on-jessie.html
 

Steve_M

TVWBB Guru
You should be able to do this via the ThingHTTP functionality. Use it to POST a call to the PushBullet HTTP API.
 

DavidNP

TVWBB Member
You should be able to do this via the ThingHTTP functionality. Use it to POST a call to the PushBullet HTTP API.
never thought about that....solves that problem with supporting pushbullet or other notification systems....

FYI....I've implemented MQTT into the ESP module...So it should integrate well with many home automation systems. I've supported publishing topics every x seconds, as well as subscribing to topics where you can set the SET TEMP for HeatMeter. Seems to work well so far....
 

DavidNP

TVWBB Member
I'm currently just sending a BIN file that you just flash to your nodemcu until release....If you(or anyone) wants I can send you the link with instructions to try out, just send me a msg...
 

DavidNP

TVWBB Member
Tested attaching the module directly with the raspb Pi header....and it works.

//Removed Images of old method of attaching NODEMCU. See below for mini-board attaching that will be only method supported moving forward....

second option is to mount the NodeMCU upsidedown on a board and attach to the pi header that way....it will require more soldering of connections but will keep the depth of the HM case the same.....good to have options I guess...
 
Last edited:

Aristotle Allen

New member
Wow! Ok, I recently built a heatermeter, and I love it. I was wondering if it would be possible to make one small enough to fit a case that held the fan, servo and the controller.

I ended out finding something that also uses the ESP2866 called the adafruit feather Huzzah check it out: https://www.adafruit.com/products/2821 There is also a daughter board that is low power and will accommodate 4 lines of text https://www.adafruit.com/products/2900

Even better, Limor has a "beta" up and running for IoT dashboards and I was able to whip one up pretty easily at adafruit.io guages, charts, slider for settings and the like.

Apparently you can load arduino on the ESP and then you have a huge set of arduino libraries you can use. PID control, servo control, and oled library, SPI, I2C.. the list goes on, there is even a lib for a web server.

I should have my board in few days, and if it all goes well, I'll have to figure out the daughter-board, I figure I'll need a 4 line A2D chip to read probes, I can use the analog out to control the fan(maybe with a mosfet?) then a few digital pins for the servo... and then... I don't know hardware is not my strength. I do know eagle and my SMT is pretty good, but circuit design is definitely where I'm a bit weak.

Have you thought about a smaller daughterbaord for the io? I don't think you need to conform to the existing case or display given the tiny controller you are using. Though jacks may dictate how small you can actually go. Anyway, if I make any real progress I'll post(perhaps to a new thread)
 

DavidNP

TVWBB Member
Wow! Ok, I recently built a heatermeter, and I love it. I was wondering if it would be possible to make one small enough to fit a case that held the fan, servo and the controller.

I ended out finding something that also uses the ESP2866 called the adafruit feather Huzzah check it out: https://www.adafruit.com/products/2821 There is also a daughter board that is low power and will accommodate 4 lines of text https://www.adafruit.com/products/2900

Even better, Limor has a "beta" up and running for IoT dashboards and I was able to whip one up pretty easily at adafruit.io guages, charts, slider for settings and the like.

Apparently you can load arduino on the ESP and then you have a huge set of arduino libraries you can use. PID control, servo control, and oled library, SPI, I2C.. the list goes on, there is even a lib for a web server.

I should have my board in few days, and if it all goes well, I'll have to figure out the daughter-board, I figure I'll need a 4 line A2D chip to read probes, I can use the analog out to control the fan(maybe with a mosfet?) then a few digital pins for the servo... and then... I don't know hardware is not my strength. I do know eagle and my SMT is pretty good, but circuit design is definitely where I'm a bit weak.

Have you thought about a smaller daughterbaord for the io? I don't think you need to conform to the existing case or display given the tiny controller you are using. Though jacks may dictate how small you can actually go. Anyway, if I make any real progress I'll post(perhaps to a new thread)
actually, I have a similar idea for an all-in-one....you can follow my 'mini-build' here : http://tvwbb.com/showthread.php?63384-my-all-Thermocouple-HM-min-build

I use Arduino on the ESP with success....however, I'd stay away from getting a A2D chip to read probes and such. ESP is great for wifi connectivity, and other items....but the PID/HM should stay on an AVR (ex pro-mini) (with a simple tx/rx connection to the esp). That way the PID/HM is more stable and has all the IO's you need (servo/adc..etc).

I'm thinking that the mini-all-in-one build could use external connectors for the probe jacks like these....that way it can remain small and easier to work with....

You should start a new thread on your new hardware and keep us posted....always good to see new projects/ideas!
 

DavidNP

TVWBB Member
Some Espress updates:

Now supports flashing an AVR(optiboot) via wifi....allows to update AVR via webinterface.
Now supports OTA(over the air) flashing of the esp12 module itself....you can now update the espflash(software) via webinterface upload (that way once it's inside the HM box you shouldn't need access).

I've also turned the nodemcu upside-down and made a simple board to attach to HM (like a pi). So the thickness of the HM case doesn't change. only needs power/ground and 3 wires (tx/rx/reset) connected to the module. Here's some photos....





 

Top