GithubHelp home page GithubHelp logo

capnbry / heatermeter Goto Github PK

View Code? Open in Web Editor NEW
489.0 489.0 83.0 7.13 MB

HeaterMeter and LinkMeter Arduino BBQ Controller

Home Page: https://tvwbb.com/forums/heatermeter-diy-bbq-controller.85/

License: MIT License

Makefile 3.18% C 46.28% C++ 24.78% Shell 2.29% HTML 9.05% Lua 8.38% JavaScript 0.58% Python 0.09% OpenSCAD 3.37% C# 2.01%

heatermeter's Introduction

I'm CapnBry, full name Cap'n Bry, or CapnBree or CapnBarry depending on your pronounciation. I created the HeaterMeter wifi BBQ controller project and am an ExpressLRS developer.

  • I like to make things
  • I am tired of explaining code to people who I'll never hear from again

heatermeter's People

Contributors

capnbry avatar dwright134 avatar ericthomas avatar shmick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heatermeter's Issues

Access for historic data currently not possible because of CORS errors

It is currently not possible to access the /lm/hist endpoint because of CORS errors.
While the same issue is fixed with PR #43 for endpoints under /lm/api/, /lm doesn't have a setting to enable CORS.
I'm not sure if adding CORS would be correct there, it seems like the endpoint should be moved (or aliased) in /lm/api.

Temp Probe Graphs

Hi, I have been reading over your repo and I was wondering where you obtained the probe temperature curves from?
I am using the Maverick ET-73. For fun I am trying to produce a lookup table and wanted to compare my results to see if they made sense.
Any pointers are greatly appreciated!

What's the point of the 100k resistors between analog inputs and voltage divider circuits?

Hi there,

I apologize in advance for using Issues as a way to ask this question.

I've been learning a lot from HeaterMeter and I'm working on designing my own thermistor sensor board. I noticed that in the v4.2 hardware design, a set of 100k resistors was added between the microcontroller's analog inputs and the standard thermistor voltage dividers.

I've spent a lot of time searching for find some kind of explanation for this kind of circuit design, but all I can find are examples of the simple voltage divider design that was used prior to hardware version 4.2.

Can you explain why these resistors were added and what they do for the circuit?

Thanks!

"Getting started" guide for hacking on the UI?

I've been poking around the source of the Web UI and was interested in trying out some changes. Is there a Getting Started guide, or alternatively are you able to provide even some high level guidance as to the easiest way to build & test a new version of the UI?

Is it possible to run the UI locally for development? (even in Docker or a VM?) Is it possible to build a new version of the UI locally and push it to an existing Heatermeter?

Port to other hardware platforms

Hi. I have been going down the path of building a temperature controller for my Kamado smoker/grill.

I have the hardware built for a simple single probe design so far with a NodeMCU board, a Maverick probe and a randomly chosen blower. The NodeMCU only has a single ADC, hence the single probe (at this moment). Some additional components in the way of an ADC multiplexer could resolve that but for the moment I'd just be happy to have pit temperature control.

Your project looks like it's had a lot of time spent on the intricacies of PID implementation, etc. which I feel like I would be foolish to try to re-invent rather than "standing on the shoulders of giants" and leveraging.

Anyway, to get to the point, would PRs for porting to new hardware platforms be welcome to this project? Would you be willing to land PRs for such alternate hardware platform ports?

Other SMS Provider

When selecting other SMS provider, the configuration box shows up within the email notifications section.

This behaviour is evident in the current snapshot build.

other provider bug

Export CSV metrics

From the HeaterMeter BBQ Control panel you can export the CSV file.
I cannot find in the documentation how to interpret this values.
The reason I am asking this is that I want to import this data into a graph with time lapse and temperature.

For example:

1553424480,nan,14.45652173913,nan,nan,nan,0
1553424540,nan,12.35,nan,nan,nan,0
1553424600,nan,12.236666666667,nan,nan,nan,0
1553424660,nan,12.506666666667,nan,nan,nan,0
1553424720,nan,12.601666666667,nan,nan,nan,0
1553424780,nan,12.511666666667,nan,nan,nan,0
1553424840,nan,12.773333333333,nan,nan,nan,0

Great project and design question

Hi Bryan,

Great project and profound thanks for publishing your project. I had been mulling over my own design for some time only to find you are already there! One design question; Did you come across the Arduino PID library from Brett Beauregard? The PID tutorial at http://brettbeauregard.com is one of the best I've seen and they have also added an autotune library. I'm curious on your design decision. Thanks again!

Ron Webb
Nairobi, Kenya

New wireless thermometer option

I've been using a HeaterMeter 4.2.something for like 8 years, and it has been awesome. I've been reading recently that you were trying to incorporate wireless temperature sensors into HeaterMeter, including using Meater probes (which apparently didn't pan out).

Just wanted to drop a note that Chris Young of Modernist Cuisine and Joule fame has released a thermometer that might fit the bill, the Combustion Predictive Thermometer. There's a great developer page at https://developer.combustion.inc/, but it's got BLE connection, and there's no pairing needed, so the thermometers essentially spray temp data from 8 temp sensors out into the world. Shows core temp, surface cook temp, ambient temp, and works up to like 500-600 degrees. I ordered a set of them, and they seem incredibly good so far.

Hoping you might someday be in a position to take a crack at integrating these!

msmtp configuration broken for PLAIN LOGIN authentication

When creating an SMTP Client configuration where:

  • Requires authentication: on
  • Enable TLS/SSL encryption: off

The admin interface creates /etc/msmtptc with "auth on". This causes msmtp to fail with "cannot use a secure authentication method" error.

For SMTP servers supporting only PLAIN LOGIN, the appropriate directive is "auth login".

@CapnBry - I have attached a lightly tested patch to openwrt/package/luci-app-msmtp/luasrc/model/cbi/admin_services/msmtp.lua, feel free to use if you wish or I can make a PR if you prefer.

patch.txt

NEW fan door

img-20150610-wa0009

I've find a new metod to use the fan without barrel.

img-20150610-wa0018
img-20150610-wa0014
img-20150610-wa0022
cattura

Raspberry pi Zero 2

I'm struggling to get my Pi Zero W 2 to boot. Is the software only compatible with the older version or should it work on the zero 2 as well?

Proportional on measurement

Have you considered implementing proportional on measurement from the Arduino PID library to reduce or eliminate overshoot since smoker temperature control is an integrating process? It doesn't appear to be too difficult to implement, it just adds one extra term to the PID equation.

bool PID::Compute()
{
   if(!inAuto) return false;
   unsigned long now = millis();
   unsigned long timeChange = (now - lastTime);
   if(timeChange>=SampleTime)
   {
      /*Compute all the working error variables*/
      double input = *myInput;
      double error = *mySetpoint - input;
      double dInput = (input - lastInput);
      outputSum+= (ki * error);

      /*Add Proportional on Measurement, if P_ON_M is specified*/
      if(!pOnE) outputSum-= kp * dInput;

      if(outputSum > outMax) outputSum= outMax;
      else if(outputSum < outMin) outputSum= outMin;

      /*Add Proportional on Error, if P_ON_E is specified*/
	   double output;
      if(pOnE) output = kp * error;
      else output = 0;

      /*Compute Rest of PID Output*/
      output += outputSum - kd * dInput;

	    if(output > outMax) output = outMax;
      else if(output < outMin) output = outMin;
	    *myOutput = output;

      /*Remember some variables for next time*/
      lastInput = input;
      lastTime = now;
	    return true;
   }
   else return false;
}

Hacking linkmeterd

Hi @CapnBry. Just ordered my HM hardware and I'm super excited to test this.

I've been digging through the source tree with an eye on doing some hacking. My particular interest is modifying the linkmeterd service to support other control mechanisms like gRPC. I'm also not a huge fan of the tight coupling with OpenWRT and I was looking into what it would take to tease linkmeterd away from LuCi. It appears to be pretty tightly coupled.

So, I started thinking about rewriting linkmeterd in Go, completely decoupled from any OpenWRT dependencies. There's a couple of things that I want to better understand:

  • Architecture - I'm trying to understand how everything communicates. It looks like you have a web app front end that speaks JSON to the linkmeterd service running on the RPi. This service appears to communicate over serial to the Arduino for command/control/monitoring. There seems to be a client that talks to linkmeterd over a UNIX socket but I'm not sure what the client does. Are there docs somewhere that will explain how these things all fit together?

  • The linkmeterd <---> Arduino protocol Do you have any documentation for this anywhere. Looking at your Lua source, it looks like the commands are defined in segmentMap, but I might be confusing this with commands sent over the UNIX socket from the control utility. Would you mind helping me grok this?

Thanks!

Streaming url missing CORS headers

I've started working on a Reactjs single page app that will integrate with heatermeters. I'm able to load the heatermeter history after updating my heatermeter to get the update resulting from #44, but am unable to get updates in a browser in realtime from /luci/lm/stream after that.

Switch not available

The 4-way button listed in the Mouser kit, ALPS SKQUAAA010, has been discontinued and is no longer stocked at Mouser. The recommended replacement part is 2.5mm smaller and has no prongs for mounting. The only other place online that I've been able to find the original in the US (Newark seems to be having issues with their website so I can't check there) is onlinecomponents.com and they have a $30 order minimum.

Qn: thermoworks pro series basic usage

Hello.

Thank you for this wonderful resource. I stumbled upon this project when looking for a way to measure & monitor my oven temp accurately. Unfortunately, to try it out, I found most of the components in the hardware list is not available at Mouser and HeaterMeter store is down for me. Anyway, to begin with, I just wanted to simply read the temp using Arduino/Esp32.

I bought 2 probes as recommended (TX-1003X-AP & TX-1001X-OP). Is there any place I can look to see (initial commit, tutorial) how to use these probs for basic measurements?

If not, I found a simple tutorial at https://github.com/skyeperry1/Maverick-ET-73-Meat-Probe-Arduino-Library
After learning, I guess I need to know few parameters to calculate the temp.
looking at the code in this repo, I see Steinhart-hart constants defined here Are these (7.3431401e-4,2.1574370e-4,9.5156860e-8) the right value for thermoworks pro series?

I couldn't find the thermistor resistance. Can you please point to where in the code it is defined.

Thank you for your time.
bsr

4.0 PCB Compatibility

Hi,
I recently upgraded my old and trusty heatermeter (v4.0 PCB with the RCA jack) to the v14 stable software version. Now, my fan does not run while in temperature control mode.

What doesn't work:

  • boot up the heatermeter and connect the pit probe, set a target temp above the current temp
  • observe the fan speed indicator (LCD and web UI) is showing 100% fan speed.
  • fan does not run, and 0V at the fan connector. I also see 0V at pin 5 of the atmega

What does work:

  • boot up the hetermeter and, using the LCD + button, set "Manual Mode" : yes
  • using the button, set the fan speed to 100% (all other speeds work as well)
  • observe in the web UI that the fan set point is 100%, 12V at the connector and 3.3V at pin 5 of the atmega

bonus weird behavior:

  • if the heatermeter is in the non-working state above, where the fan is not working, and I do the following:
    • click left to manually enter "Lid Open" mode
    • click left to manually exit "Lid Open" mode
  • the fan will begin working again and will properly regulate based on the temperature set point.
  • if I change the temperature set point, the fan will cease running, but the LCD and web UI will continue to indicate a non-zero fan speed

Is there something in the v14 software that is no longer backwards compatible with the v4.0 PCB and would be causing this behavior?

Join Wifi network from the heatermeter

Feature Suggestion:
It would be wonderful to be able to select a wifi network and enter a password using the LCD screen and nav buttons (up/down to select from list of available networks and to select letters/numbers for the password).

Temperature offset problem

While testing a remote temperature node I found a bug, at least on my system.
I was hoping that someone can confirm this.

My temperature reading from the remote probe gave a lower temperature then when reading from the fixed probe so I had to use the offset feature. When setting the offset (for me to +16), I saw that the temperature isn't displayed correctly. It starts with the correct temp, then adds another 16, then another 16 giving the most weird results.
I started looking in the code and I think I found the problem.
In grillpid.cpp, procedure void TempProbe::calcTemp(void).
The offset is added in the if (hasTemperature()) section, I think this is incorrect. When I moved it to the setTemperatureC it displayed the correct temperature and kept on doing that ( setTemperatureC((T - 273.15f) + Offset); )

Port for ESP32

Hi All,

I'm not much of a programmer but how much work would be involved in porting this from a Raspberry Pi / AT Mega unit too an ESP32 based system?

Maverick Temperature Probes

First of all, thanks for making this project and sharing it with everyone!

Can you clarify which exact temperature probes will work with this project? I followed the link in your wiki under HeaterMeter 3.0 Hardware for the probes, but wasn't sure if all the probes listed under parts were all compatible or not.

I ordered one of the ET 732 smoker probes and an ET 732 food probe, http://maverickhousewares.bigcartel.com/product/et-732-smoker-probe however now I'm wondering if they will work or not. If i have to i will return the ones i ordered and buy the correct ones. Any links to the exact product page for the probes that are compatible would be awesome (preferably 6ft), and any help or feedback on if these will work or not would be greatly appreciated.

4.1 Heatermeter board?

Thanks for all of your effort on this project! Incredible work! I am very excited to build my heatermeter. Question on the 4.1 board - I read in one of the forums that OSH Park has not release the 4.1 for purchase because you have not fully validated that board. I read something about a ground wire fix. I've also seen a picture somewhere of a Heatermeter 4.2 board.

Question is - if I am starting to purchase my parts currently, should I wait on a finalized 4.1 or 4.2 board? or is the current 4.1 board design to jump in.

I'm very excited to build it with the roto-damper so definitely want to stick with 4.1 board or higher. I'm happy to wait if that is recommended.

Thanks!

Upgrading AVR firmware

Hi,

quite new to this... I bought a pre-compiled 4.2 board online. Currently it's running AVR 20140630B. Can I just install the latest version from the online repository, or does it also show incompatible versions for 4.3 for instance? Just want to make sure I don't break anything :-) The latest one listed is snapshots/trunk/heatermeter.hex

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.