HeaterMeter Monitor and ESP8266/ESP32 Streaming Library


 
SUCCESS! WAIT A MINUTE did you find the LEDs with the decimal that were full sized or are those the minis? Oh they are the minis aren't they :( I got really excited.

Nice work getting it up and running and you've passed the test (of asking me to explain everything step by step for things you want to change) so just let me know if you have anything else you want to change and need some guidance.
 
SUCCESS! WAIT A MINUTE did you find the LEDs with the decimal that were full sized or are those the minis? Oh they are the minis aren't they :( I got really excited.

Nice work getting it up and running and you've passed the test (of asking me to explain everything step by step for things you want to change) so just let me know if you have anything else you want to change and need some guidance.
Thanks man!!

Yeah they are the smaller ones. But I have the larger decimal coming from China in about a month. Building 2 more for a couple buddies.

I’ll post when they get here.

3D printed Back plate for the .36 works like a glove.
I’ll print the .56 as well when they get here.

I did have issues compiling but the feb release worked great. There was another guy on here that used that release. Don’t know why the latest didn’t compile. Above my pay grade. Lol
 
I'd also like to know why the latest wouldn't compile, did you get the same error about LONG LONG must be defined? And are you on a Mac?

EDIT: Ah I see that the esp8266 3.0.0 core breaks the library for some reason. 2.7.4 works fine but if I update to 3.0.0 it stops compiling unless I force LONG_LONG support. I'll see if I can fix that. Weird that the older version compiles.
 
Last edited:
Should be fixed in latest HeaterMeterClient library now.

time_t changed from 32-bit to 64-bit in ESP8266 3.0.0 which then caused the ArduinoJson deserializer to want 64-bit integer support which I did not want to have enabled. Switched the type of UpdateUtc to uint32_t since it is UNIX epoch and not 64-bit anyway.
 
While I was looking at it last night I have some of the other code a pretty hard side-eye so I had another look at it this morning. Looks like I had a memory leak in the MeterMonitor software every time it wrote some letters to the displays. Apparently I was in too much of a C# mode
Code:
  leds[1]->setSegments(new uint8_t[4]{ TM1637_L, TM1637_I, TM1637_D, 0 }); // leak
  leds[1]->setSegments((const uint8_t[4]){ TM1637_L, TM1637_I, TM1637_D, 0 }); // 👍

I've updated the source in github to fix this leak, so if your MeterMonitor was rebooting itself when you're in lid mode all the time, this is likely why. I had noticed there there was like 20 bytes leaked every time I forced a disconnect and it reconnected, but I assumed it was in the ESP libraries and ignored it. Guess it was my own stupidity after all.
 
While I was looking at it last night I have some of the other code a pretty hard side-eye so I had another look at it this morning. Looks like I had a memory leak in the MeterMonitor software every time it wrote some letters to the displays. Apparently I was in too much of a C# mode
Code:
  leds[1]->setSegments(new uint8_t[4]{ TM1637_L, TM1637_I, TM1637_D, 0 }); // leak
  leds[1]->setSegments((const uint8_t[4]){ TM1637_L, TM1637_I, TM1637_D, 0 }); // 👍

I've updated the source in github to fix this leak, so if your MeterMonitor was rebooting itself when you're in lid mode all the time, this is likely why. I had noticed there there was like 20 bytes leaked every time I forced a disconnect and it reconnected, but I assumed it was in the ESP libraries and ignored it. Guess it was my own stupidity after all.
I’ll check it out. Mine worked flawlessly yesterday. I’ll post what I was working with before when I get home. Lol. This is wayyy more convienent.
 
Cool and crap. Because now I need to try to remember what I did the first time to get this to work....
 
Here’s what I was using before.

Raspberry pi 3 and an old laptop screen that I salvaged. Ordered a video converter from China that worked with this type of screen and a buck converter for the 5v to the pi.

Almost like a portable Linux machine with a stand but I would I put the address of the HeaterMeter and have it on the kitchen counter

Plexiglass and some screws to hold it all in.
 

Attachments

  • E9E628B5-748C-4EF2-A88E-2F03E97D300A.jpeg
    E9E628B5-748C-4EF2-A88E-2F03E97D300A.jpeg
    129.4 KB · Views: 10
  • 3526D01E-DA11-44DF-AECE-1313EA3AFCC9.jpeg
    3526D01E-DA11-44DF-AECE-1313EA3AFCC9.jpeg
    141.5 KB · Views: 10
  • 1BC1042C-AD7F-465E-8078-743D845E2E21.jpeg
    1BC1042C-AD7F-465E-8078-743D845E2E21.jpeg
    123.3 KB · Views: 10
And the decimal points are even in the right place? I'm shocked I didn't have to update the code to fix it. Did you order from aliexpress? The larger decimal units there were cheap (~$1.50 each) but the shipping charged was per-unit and $3-4, making a set of four come in at $20 instead of the $10 I paid for the 5x dumb clock versions.
 
And the decimal points are even in the right place? I'm shocked I didn't have to update the code to fix it. Did you order from aliexpress? The larger decimal units there were cheap (~$1.50 each) but the shipping charged was per-unit and $3-4, making a set of four come in at $20 instead of the $10 I paid for the 5x dumb clock versions.
Yes Aliexpress. I ordered 8 total and total price was 24 and change shipped for everything
 
I don't even have my HM built yet, but I'm scheming on a HM Monitor at this point too. Figured that it would be nice to have a device that isn't constrained by the probe cables so I could bring it into the house and monitor things!

I already had a handful of Wemos D1 Mini's, but I've decided to try to take a different approach with my HM Monitor display than having 4 separate LED read outs. I wanted it to be fairly compact, so I bought some of these 16x2 I2C capable LED modules (looks similar to what's on the base HM): https://www.amazon.com/dp/B07SZV1MK8/?tag=tvwb-20

I know this will require significant reworking of the code, so I've got some learning to do on Arduino programming! I'm an ME so I've got limited experience in this area, but I think this is a good opportunity to learn more about it.

By the way, I'm blown away by the work Bryan and the rest of y'all have put into the HM project. Kudos to all of you for doing that!

 
I don't even have my HM built yet, but I'm scheming on a HM Monitor at this point too. Figured that it would be nice to have a device that isn't constrained by the probe cables so I could bring it into the house and monitor things!

I already had a handful of Wemos D1 Mini's, but I've decided to try to take a different approach with my HM Monitor display than having 4 separate LED read outs. I wanted it to be fairly compact, so I bought some of these 16x2 I2C capable LED modules (looks similar to what's on the base HM): https://www.amazon.com/dp/B07SZV1MK8/?tag=tvwb-20

I know this will require significant reworking of the code, so I've got some learning to do on Arduino programming! I'm an ME so I've got limited experience in this area, but I think this is a good opportunity to learn more about it.

By the way, I'm blown away by the work Bryan and the rest of y'all have put into the HM project. Kudos to all of you for doing that!

Wait...... You mean you don't use your phone already? Or an old phone? I pretty much just leave an old phone connected via wifi for duration of a cook. Ok you said you don't have it built yet.... You realize this is fully Wi-Fi capable? You can access it through the internet from anywhere once you open it through a port as well?

Not only can you monitor, you can change the tuning and set points and alarms and everything. In fact your phone or computer is how you do all that stuff
 
Yes, I admit it's a solution looking for a problem, but it would be more of an educational project! It's cheap, I already have everything on hand except for that $5 display, and it would be cool to have a homebrew dedicated device to monitor the HM that I can just leave on the counter/nightstand/etc.
 

 

Back
Top