{"id":13356,"date":"2022-01-04T16:15:44","date_gmt":"2022-01-04T16:15:44","guid":{"rendered":"https:\/\/wolles-elektronikkiste.de\/wireless-bbq-thermometer-433-mhz"},"modified":"2024-10-29T15:21:28","modified_gmt":"2024-10-29T15:21:28","slug":"wireless-bbq-thermometer-433-mhz","status":"publish","type":"post","link":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz","title":{"rendered":"Wireless BBQ thermometer (433 MHz)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">About this Post<\/h2>\n\n<p>Normally, my posts are of a more basic nature, but here I would like to present a very concrete project of mine, namely a wireless BBQ thermometer with graphical display of the temperature curve.<\/p>\r\n<p>In winter, I find it especially nice to have a good piece of meat on the grill while sitting inside, drinking a wine and watching the temperature of the food. And if you can do the latter with your self-made device, it&#8217;s even more fun. Do you need a graphical display? No, of course not, but it&#8217;s exciting, and you can show off!<\/p>\r\n\n<h2 class=\"wp-block-heading\">Probe for the wireless BBQ thermometer<\/h2>\n\n<p>To build a BBQ thermometer, you first need a suitable temperature probe. You can get these under the search term &#8220;replacement probe&#8221; for 5 to 15 euros in online shops such as Amazon.<\/p>\r\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/spare_thermometer-1024x496.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"496\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/spare_thermometer-1024x496.jpg\" alt=\"Various temperature probes for the wireless BBQ thermometer\" class=\"wp-image-13169\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/spare_thermometer-1024x496.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/spare_thermometer-300x145.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/spare_thermometer-768x372.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/spare_thermometer-1536x743.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/spare_thermometer-1320x639.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/spare_thermometer.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Various temperature probes<\/figcaption><\/figure>\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Buchsen-1024x362.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"362\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Buchsen-1024x362.jpg\" alt=\"\" class=\"wp-image-13171\" style=\"width:256px;height:91px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Buchsen-1024x362.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Buchsen-300x106.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Buchsen-768x272.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Buchsen-1320x467.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Buchsen.jpg 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>In most cases, the probes have a 2.5 or 3.5 mm jack plug as connection. Whether the plug has two or three poles does not matter because usually only two of them are active. There are corresponding sockets that you can install in the housing of the transmitter unit of your thermometer.<\/p>\r\n\n<p>The probes are based on a temperature-dependent resistor. Unfortunately, the resistance value does not change linearly with temperature and, moreover, each model is different. Calibration is therefore unavoidable. To do this, record a temperature-resistance curve with a known and reliable thermometer. A first test with my multimeter showed that the resistance at 0 \u00b0C was 330 k\u03a9. At room temperature it was about 120 k\u03a9, at 100 \u00b0C it dropped to 6.3 k\u03a9. This is far from any linearity.<\/p>\r\n\n<h3 class=\"wp-block-heading\">Measurement of the thermometer resistance<\/h3>\n\n<h4 class=\"wp-block-heading\">Theory<\/h4>\n\n<p>Theoretically, you can measure the resistor values for the temperature-resistance curve directly with a multimeter. In practice, it is better to measure the resistor values as you do later in your circuit. The advantage is that this way you can compensate for errors such as possible non-linearity of your A\/D converter.<\/p>\r\n<p>The basis for determining resistance is Ohm&#8217;s law:<\/p>\r\n\n<p><\/p>\r\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 39px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/ql-cache\/quicklatex.com-605849ffc46ab9e1f6b38a500c85b377_l3.png\" height=\"39\" width=\"205\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#85;&#32;&#61;&#32;&#82;&#92;&#99;&#100;&#111;&#116;&#32;&#73;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#116;&#101;&#120;&#116;&#123;&#111;&#114;&#58;&#125;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#102;&#114;&#97;&#99;&#123;&#85;&#125;&#123;&#82;&#125;&#61;&#73; &#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\r\n\n<p>Voltages can easily be measured with ADCs, currents are more complicated, especially as they are extremely low for these resistance dimensions. Therefore, I use a second, known resistor (reference), which I connect in series with the thermometer. Since the current is the same for both resistors, the following applies:<\/p>\r\n\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 41px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/ql-cache\/quicklatex.com-259a93c231a29172fecbf354b7cbb447_l3.png\" height=\"41\" width=\"633\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#92;&#102;&#114;&#97;&#99;&#123;&#85;&#95;&#123;&#92;&#116;&#101;&#120;&#116;&#123;&#116;&#104;&#101;&#114;&#109;&#111;&#109;&#101;&#116;&#101;&#114;&#125;&#125;&#125;&#123;&#82;&#95;&#123;&#92;&#116;&#101;&#120;&#116;&#123;&#116;&#104;&#101;&#114;&#109;&#111;&#109;&#101;&#116;&#101;&#114;&#125;&#125;&#125;&#61;&#32;&#73;&#32;&#61;&#32;&#92;&#102;&#114;&#97;&#99;&#123;&#85;&#95;&#123;&#92;&#116;&#101;&#120;&#116;&#123;&#114;&#101;&#102;&#101;&#114;&#101;&#110;&#99;&#101;&#125;&#125;&#125;&#123;&#82;&#95;&#123;&#92;&#116;&#101;&#120;&#116;&#123;&#114;&#101;&#102;&#101;&#114;&#101;&#110;&#99;&#101;&#125;&#125;&#125;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#82;&#105;&#103;&#104;&#116;&#97;&#114;&#114;&#111;&#119;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#92;&#59;&#82;&#95;&#123;&#92;&#116;&#101;&#120;&#116;&#123;&#116;&#104;&#101;&#114;&#109;&#111;&#109;&#101;&#116;&#101;&#114;&#125;&#125;&#61;&#92;&#102;&#114;&#97;&#99;&#123;&#85;&#95;&#123;&#92;&#116;&#101;&#120;&#116;&#123;&#116;&#104;&#101;&#114;&#109;&#111;&#109;&#101;&#116;&#101;&#114;&#125;&#125;&#125;&#123;&#85;&#95;&#123;&#92;&#116;&#101;&#120;&#116;&#123;&#114;&#101;&#102;&#101;&#114;&#101;&#110;&#99;&#101;&#125;&#125;&#125;&#92;&#99;&#100;&#111;&#116;&#32;&#82;&#95;&#123;&#92;&#116;&#101;&#120;&#116;&#123;&#114;&#101;&#102;&#101;&#114;&#101;&#110;&#99;&#101;&#125;&#125; &#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\r\n\n<p>In order to achieve a good resolution over the entire range in the temperature measurements, the size of the reference resistor should correspond to the thermometer resistance somewhere in the middle of the temperature measurement range. I selected 33 k\u03a9.<\/p>\r\n\n<h4 class=\"wp-block-heading\">Practice<\/h4>\n\n<p>I wanted to measure as accurately as possible and therefore chose a reliable, external ADC, namely the <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/ads1115-a-d-converter-with-amplifier\" target=\"_blank\" rel=\"noopener\">ADS1115<\/a>. A few years ago, I built a version 1.0 of this BBQ thermometer using the internal ADC of an Arduino Nano. With this, I was able to achieve an accuracy of +\/- 1 degree. So this is also possible and there is less soldering to do later &#8211; your choice.<\/p>\r\n<p>I used the following circuit to record the calibration curve:<\/p>\r\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/wiring_calib-1024x569.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"569\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/wiring_calib-1024x569.png\" alt=\"\" class=\"wp-image-13174\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/wiring_calib-1024x569.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/wiring_calib-300x167.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/wiring_calib-768x427.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/wiring_calib-1320x734.png 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/wiring_calib.png 1444w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n<p>So, here I measure the total voltage and the voltage drop across the reference resistor. U<sub>thermometer<\/sub> is the difference.<\/p>\r\n\n<p>The temperature sensor is represented in the circuit diagram by the connection socket. Add it to your thoughts. And here is the sketch:<\/p>\r\n\n<div class=\"scroll-paragraph-long\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-group=\"BBQ_thermometer_calib.ino\" data-enlighter-title=\"BBQ_thermometer_calib.ino\">#include&lt;ADS1115_WE.h&gt; \r\n#include&lt;Wire.h&gt;\r\n#define I2C_ADDRESS 0x48\r\nconst float constResistorVal = 32.8; \/\/ 32.8 kOhm\r\n\r\nADS1115_WE adc = ADS1115_WE(I2C_ADDRESS);\r\n\r\nvoid setup() {\r\n  Wire.begin();\r\n  Serial.begin(115200);\r\n  if(!adc.init()){\r\n    Serial.println(\"ADS1115 not connected!\");\r\n  }\r\n  adc.setMeasureMode(ADS1115_CONTINUOUS); \/\/ Continuous Mode\r\n  adc.setPermanentAutoRangeMode(true);  \/\/ Autorange Mode\r\n}\r\n\r\nvoid loop(){\r\n  float supplyVoltage = 0.0;\r\n  float resistorVoltage = 0.0;\r\n  float thermometerVoltage = 0.0;\r\n  float thermometerResistance = 0.0;\r\n\r\n  Serial.print(\"Supply Voltage [V]: \");\r\n  supplyVoltage = readChannel(ADS1115_COMP_0_GND);\r\n  Serial.println(supplyVoltage);\r\n  \r\n  Serial.print(\"Resistor Voltage [V]: \");\r\n  resistorVoltage = readChannel(ADS1115_COMP_1_GND);\r\n  Serial.println(resistorVoltage);\r\n\r\n  Serial.print(\"ThermometerVoltage [V]: \");\r\n  thermometerVoltage = supplyVoltage - resistorVoltage;\r\n  Serial.println(thermometerVoltage);\r\n\r\n  Serial.print(\"Thermometer Resistance [kOhm]: \");\r\n  thermometerResistance = thermometerVoltage\/resistorVoltage * constResistorVal;\r\n  Serial.println(thermometerResistance);\r\n  \r\n  Serial.println();\r\n  Serial.println(\"-------------------------------\");\r\n  Serial.println();\r\n  delay(500);\r\n}\r\n\r\nfloat readChannel(ADS1115_MUX channel) {\r\n  float volts = 0.0;\r\n  adc.setCompareChannels(channel);\r\n  for(int i=0; i&lt;10; i++){\r\n    volts += adc.getResult_V();\r\n  } \r\n  return volts\/10;\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\r\n<\/div>\r\n\n<p>If you want to use the internal ADC of your board, you have to modify the sketch accordingly.<\/p>\r\n<p>For the measurement, I simply brought a pot of water to the boil and then measured the resistance and temperature as it cooled. This is trickier than you might think &#8211; you quickly have temperature zones in the pot and should therefore stir. Also, the tips of the thermometers should not touch the bottom of the pot, as shown in the photo. I just didn&#8217;t have enough hands while taking pictures.<\/p>\r\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Calib_2-1024x682.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"682\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Calib_2-1024x682.jpg\" alt=\"Recording of the calibration cures for the wireless BBQ thermometer\" class=\"wp-image-13177\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Calib_2-1024x682.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Calib_2-300x200.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Calib_2-768x512.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Calib_2-1536x1024.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Calib_2-1320x880.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Calib_2.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Recording of the calibration cures for the wireless BBQ thermometer<\/figcaption><\/figure>\n\n<p>In the beginning, the temperature drops quickly, then slower and slower. Therefore, after a while I added cold water in portions. Ich habe Eisw\u00fcrfel f\u00fcr den Bereich von Raumtemperatur bis 0 Grad verwendet.<\/p>\r\n<p>The quality of the calibration can only be as good as the quality of your reference thermometer. As can be seen in the photo above, the two barbecue thermometers differ by one degree. Don&#8217;t trust all devices just because they are digital!<\/p>\r\n\n<h2 class=\"wp-block-heading\">Evaluation of the calibration curve for the wireless BBQ thermometer<\/h2>\n\n<p>I entered the measured pairs of temperature and resistance into Excel and created a graph. Then I tried to put a regression curve through the values. In Excel, these are called &#8220;trendlines&#8221;. To display trend lines, left-click a data point, then right-click and select &#8220;add trendline&#8221;. Then you can choose which type of function you want to use. Check the box &#8220;Display Equation on chart&#8221;.<\/p>\r\n<p>Neither a logarithmic function nor a polynomial was a really good fit:<\/p>\r\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_0_100-1024x618.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"618\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_0_100-1024x618.png\" alt=\"\" class=\"wp-image-13179\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_0_100-1024x618.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_0_100-300x181.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_0_100-768x463.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_0_100.png 1298w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Calibration curve 0 -100 \u00b0C with fourth order polynomial as trend line <\/figcaption><\/figure>\n\n<p>It was only when I divided the curve into three parts that I was satisfied with the trend lines. The diagrams are a bit small. Click on the images to enlarge them:<\/p>\r\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib__0__40-1024x623.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib__0__40-1024x623.png\" alt=\"\" class=\"wp-image-13288\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib__0__40-1024x623.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib__0__40-300x182.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib__0__40-768x467.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib__0__40.png 1302w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">0 &#8211; 40\u00b0C<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_40_80-1024x619.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_40_80-1024x619.png\" alt=\"\" class=\"wp-image-13183\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_40_80-1024x619.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_40_80-300x181.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_40_80-768x465.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_40_80.png 1291w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">40 &#8211; 80\u00b0C<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_80_100-1024x617.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"617\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_80_100-1024x617.png\" alt=\"\" class=\"wp-image-13185\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_80_100-1024x617.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_80_100-300x181.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_80_100-768x463.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/calib_80_100.png 1294w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">80 -100\u00b0C<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n<p>Another hint: Do not blindly adopt the trend lines in your sketches. Especially with higher order polynomials, often not enough decimal places of the coefficients are displayed (as in the calibration curve 0-100\u00b0C above).&nbsp; Right-click the formula in the chart and select the bars (Format Trendline Label) on the right side. There, you select the category &#8220;Scientific&#8221; and choose an appropriate number of decimal places.<\/p>\r\n<p>You should check the reliability and enter some resistance values in the trendline functions and compare the results with your readings. I tested the trendline functions this way:<\/p>\r\n\n<div class=\"scroll-paragraph\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-group=\"calib_func_check.ino\" data-enlighter-title=\"calib_func_check.ino\">float r = 331.0; \/\/ resistance\r\nfloat temperature = 0.0;\r\n\r\nvoid setup() {\r\n  Serial.begin(115200);\r\n  for(int i=0; i&lt;140; i++){\r\n    r = r - 2.0;\r\n    temperature =  8.731*pow(r,4)*pow(10,-9) - 9.025*pow(r,3)*pow(10,-6)+ 0.00354*pow(r,2)- 0.709*r + 69.094; \r\n    Serial.print(\"R: \");\r\n    Serial.print(r);\r\n    Serial.print(\",   T:\");\r\n    Serial.println(temperature);  \r\n  }\r\n  Serial.println(\"********************\");\r\n  r = 60.0;\r\n  for(int i=0; i&lt;49; i++){\r\n    r = r - 1.0;\r\n    temperature = -26.74*log(r) + 146.08;\r\n    Serial.print(\"R: \");\r\n    Serial.print(r);\r\n    Serial.print(\",   T:\");\r\n    Serial.println(temperature);  \r\n  }\r\n  Serial.println(\"********************\");\r\n  r = 13.0;\r\n  for(int i=0; i&lt;15; i++){\r\n    r = r - 0.5;\r\n    temperature = -0.041*pow(r,3) + 1.3525*pow(r,2) - 17.51*r + 166.68;\r\n    Serial.print(\"R: \");\r\n    Serial.print(r);\r\n    Serial.print(\",   T:\");\r\n    Serial.println(temperature);  \r\n  }\r\n  Serial.println(\"********************\");\r\n}\r\n\r\nvoid loop() {\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\r\n<\/div>\r\n\n<p>If everything is in order, you have completed the main part of the wireless barbecue thermometer.<\/p>\r\n\n<h2 class=\"wp-block-heading\">The transmitter unit<\/h2>\n\n<h3 class=\"wp-block-heading\">Concept of the transmitter unit<\/h3>\n\n<p>In addition to temperature measurement, the transmitter unit shall:<\/p>\r\n<ul>\r\n<li>output the temperature on a display,<\/li>\r\n<li>send the temperature to the receiver unit by radio every few seconds,<\/li>\r\n<li>monitor the battery voltage.<\/li>\r\n<\/ul>\r\n<p>I chose a small 128&#215;32 px OLED model for the display, which is controlled via I2C.<\/p>\r\n<p>For radio transmission, I chose the 433 MHz module HC-12, which I have described in detail <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/hc-12-radio-module\" target=\"_blank\" rel=\"noopener\">here<\/a>. It is characterized by a long range and simple control via software serial.<\/p>\r\n<p>For the power supply, I use two 3.7 volt lithium-ion batteries connected in series to VIN of the Arduino Nano. Since the ADC only detects up to 5 volts, I measure the voltage via a voltage divider (2 x 10 k\u03a9).<\/p>\r\n<p>An LED lights up continuously when the battery voltage is still OK (&gt; = 7.2 volts), otherwise it flashes.<\/p>\r\n<p>This is the circuit:<\/p>\r\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__sender_wiring-1024x578.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"578\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__sender_wiring-1024x578.png\" alt=\"Circuit of the transmitter unit for the wireless BBQ thermometer\" class=\"wp-image-13199\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__sender_wiring-1024x578.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__sender_wiring-300x169.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__sender_wiring-768x434.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__sender_wiring-1536x867.png 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__sender_wiring-1320x745.png 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__sender_wiring.png 1599w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Circuit of the transmitter unit<\/figcaption><\/figure>\n\n<h4 class=\"wp-block-heading\">About the power supply concept for the radio barbecue thermometer <\/h4>\n\n<p>Lithium-ion batteries in AA design (14500) are somewhat unusual. The advantage is that battery cases with on\/off switches are available. A disadvantage, however, is that you need a special charger. Furthermore, you have to be careful that you strictly separate them from your Ni-Mh batteries. Because if you use them in the wrong devices, you can destroy them. And when it comes to capacities, suppliers exaggerate excessively.<\/p>\r\n<p>For the receiver unit (to anticipate), which consumes more power because of the larger display, I used large 18650 lithium-ion batteries. These are more likely to deliver what is promised in terms of capacity. Of course, you also need a special charger for them. And battery cases are a little harder to get.<\/p>\r\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Li_batteries-1024x582.jpg\" alt=\"18650 and 14500 (AA) Li-ion batteries with battery housings for the wireless BBQ thermometer\" class=\"wp-image-13203\" style=\"width:512px;height:291px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Li_batteries-1024x582.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Li_batteries-300x171.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Li_batteries-768x437.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Li_batteries-1536x873.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Li_batteries-1320x750.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/Li_batteries.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">18650 and 14500 (AA) Li-ion batteries with battery housings<\/figcaption><\/figure>\n<\/div>\n<p>For my wireless BBQ thermometer version 1.0, I had used three Ni-Mh rechargeable batteries and a step-up converter &#8211; this is also possible. Other alternatives are 9 V block batteries or a 6-pack of Ni-Mh batteries.<\/p>\r\n<p>Another hint: The VIN connection reacts very allergic to polarity reversal. Your Arduino Nano will die immediately. Especially with 9 volt blocks, this can easily happen. A short contact is enough. For safety, you could add a diode to your circuit.<\/p>\r\n\n<h3 class=\"wp-block-heading\">Sketch for the transmitter unit<\/h3>\n\n<p>The sketch for the transmitter unit of the wireless BBQ thermometer is not particularly complex. However, it uses a number of libraries that I can&#8217;t go into in detail. But I think that the sketch is still reasonably understandable.<\/p>\r\n\n<div class=\"scroll-paragraph-long\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-group=\"BBQ_sender.ino\" data-enlighter-title=\"BBQ_sender.ino\">#include &lt;ADS1115_WE.h&gt; \r\n#include &lt;Wire.h&gt;\r\n#include &lt;Adafruit_GFX.h&gt;\r\n#include &lt;Adafruit_SSD1306.h&gt;\r\n#include &lt;SoftwareSerial.h&gt;\r\n\r\n#define OLED_RESET 7 \/\/ we don't have a reset, but the constructor expects it \r\n#define I2C_ADDRESS 0x48\r\nconst int ledPin = 8;\r\nconst float constResistorVal = 32.8; \r\n\r\nSoftwareSerial hc12(10,11);\r\nAdafruit_SSD1306 display(OLED_RESET);\r\nADS1115_WE adc = ADS1115_WE(I2C_ADDRESS);\r\n\r\nvoid setup() {\r\n  pinMode(ledPin, OUTPUT);\r\n  digitalWrite(ledPin, HIGH);\r\n  Wire.begin();\r\n  Serial.begin(115200);\r\n  hc12.begin(9600);\r\n  if(!adc.init()){\r\n    Serial.println(\"ADS1115 not connected!\");\r\n  }\r\n  adc.setMeasureMode(ADS1115_CONTINUOUS);\r\n  adc.setPermanentAutoRangeMode(true);\r\n\r\n  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  \/\/ initialize with the I2C addr 0x3C (for the 128x64)\r\n  display.clearDisplay();\r\n  display.setTextSize(3);\r\n  display.setTextColor(WHITE);\r\n  display.setCursor(10,4);\r\n  display.println(\"Wait\");\r\n  display.display();\r\n}\r\n\r\nvoid loop(){\r\n  float supplyVoltage = 0.0;\r\n  float resistorVoltage = 0.0;\r\n  float thermometerVoltage = 0.0;\r\n  float thermometerResistance = 0.0;\r\n  float batteryVoltage = 0.0;\r\n\r\n  Serial.print(\"Supply Voltage [V]: \");\r\n  supplyVoltage = readChannel(ADS1115_COMP_0_GND);\r\n  Serial.println(supplyVoltage);\r\n  \r\n  Serial.print(\"Resistor Voltage [V]: \");\r\n  resistorVoltage = readChannel(ADS1115_COMP_1_GND);\r\n  Serial.println(resistorVoltage);\r\n\r\n  Serial.print(\"ThermometerVoltage [V]: \");\r\n  thermometerVoltage = supplyVoltage - resistorVoltage;\r\n  Serial.println(thermometerVoltage);\r\n\r\n  Serial.print(\"Thermometer Resistance [kOhm]: \");\r\n  thermometerResistance = thermometerVoltage\/resistorVoltage * constResistorVal;\r\n  Serial.println(thermometerResistance);\r\n\r\n  Serial.print(\"Battery Voltage [V]: \");\r\n  batteryVoltage = readChannel(ADS1115_COMP_2_GND) * 2;\r\n  Serial.println(batteryVoltage);\r\n\r\n  Serial.print(\"Temperature [\u00b0C]: \");\r\n  float temperature = calcTemp(thermometerResistance);\r\n  Serial.println(temperature);\r\n\r\n  displayAndSendTemperature(temperature);\r\n  if(batteryVoltage &lt;= 7.2){\r\n    digitalWrite(ledPin, LOW);\r\n    delay(500);\r\n    digitalWrite(ledPin, HIGH);\r\n  }\r\n  Serial.println();\r\n  Serial.println(\"-------------------------------\");\r\n  Serial.println();\r\n  delay(2500);\r\n}\r\n\r\nvoid displayAndSendTemperature(float tC){\r\n  String tCString = \"\";\r\n  tCString = String(tC,1) + \" \";\r\n  hc12.print(tCString);\r\n  tCString += char(247);  \/\/ ASCII No 247 = \"\u00b0\"\r\n  tCString += \"C\";\r\n  display.clearDisplay();\r\n  display.setCursor(0,11);\r\n  display.println(tCString);\r\n  display.display();\r\n}\r\n\r\nfloat calcTemp(float r){\r\n  float tC = 0.0; \/\/ temperature Celsius\r\n  if(r &lt; 11.5){\r\n    tC = -0.041*pow(r,3) + 1.3525*pow(r,2) - 17.51*r + 166.68;\r\n  }\r\n  else if(r &lt; 55.0){\r\n    tC = -26.74*log(r) + 146.08; \r\n  }\r\n  else{\r\n    tC = 8.731*pow(r,4)*pow(10,-9) - 9.025*pow(r,3)*pow(10,-6)+ 0.00354*pow(r,2)- 0.709*r + 69.094;  \r\n  }\r\n  return tC;\r\n}\r\n\r\nfloat readChannel(ADS1115_MUX channel) {\r\n  float volts = 0.0;\r\n  adc.setCompareChannels(channel);\r\n  for(int i=0; i&lt;10; i++){\r\n    volts += adc.getResult_V();\r\n  } \r\n  return volts\/10;\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\r\n<\/div>\r\n\n<p>Just a few explanations:<\/p>\r\n<ul>\r\n<li>The ADS1115 measures the voltages from which the thermometer resistance is calculated.<\/li>\r\n<li>In addition, the ADS1115 measures the battery voltage.<\/li>\r\n<li>The calcTemp() function uses the calibration trendlines to calculate the temperature.<\/li>\r\n<li>The temperature is converted into a string and output on the display.<\/li>\r\n<li>The HC-12 sends the temperature to the receiver unit (simply with <code>hc12.print()<\/code>)<\/li>\r\n<li>If the battery voltage drops below 7.2 volts, the LED is switched off for half a second.<\/li>\r\n<li>After a delay of 2.5 seconds, the cycle starts again.<\/li>\r\n<\/ul>\r\n\n<h3 class=\"wp-block-heading\">Construction of the transmitter unit<\/h3>\n\n<p>I have installed the transmitting unit in an electronic housing. I could also have chosen a smaller housing. The ADC, the Arduino Nano, the resistors and the HC-12 module were placed on a PCB, which in turn was attached to the baseplate with spacers.<\/p>\r\n<p>I screwed the battery housing to the main housing and routed the cables for the supply voltage inside. The cables were led through an additional hole into the &#8220;main housing&#8221; and are thus no longer visible from the outside.<\/p>\r\n<p>I had to create more openings for the LED, the socket for the temperature sensor and the pin header of the display. Plastic is not the nicest material for handicrafts because it melts at the contact points during drilling. But it works. It was a bit more difficult to create the opening for the pin header of the display. A Dremel multi tool kit has served well here.<\/p>\r\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside-1024x512.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside-1024x512.jpg\" alt=\"The wireless BBQ thermometer (transmitter unit) from the inside\" class=\"wp-image-13207\" style=\"width:768px;height:384px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside-1024x512.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside-300x150.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside-768x384.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside-1536x768.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside-860x430.jpg 860w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside-1320x660.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">The wireless BBQ thermometer (transmitter unit) from the inside<\/figcaption><\/figure>\n<\/div><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside_fixed-1024x570.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"570\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside_fixed-1024x570.jpg\" alt=\"Fixing the PCB - transmitting unit of the BBQ thermometer. \" class=\"wp-image-13209\" style=\"width:768px;height:428px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside_fixed-1024x570.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside_fixed-300x167.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside_fixed-768x428.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside_fixed-1536x856.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside_fixed-1320x735.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_inside_fixed.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Mounting of the PCB<\/figcaption><\/figure>\n<\/div>\n<p>Now, when rebuilding the project, you can use a second microcontroller and another HC-12 module and \/ or an LED to check whether the transmission is working or also to check the range.<\/p>\r\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-group=\"BBQ_sender_check.ino\" data-enlighter-title=\"BBQ_sender_check.ino\">void setup() {\r\n  Serial.begin(115200);\r\n  hc12.begin(9600);\r\n  pinMode(ledPin, OUTPUT);\r\n  Serial.println(\"BBQ Receive Test\");\r\n}\r\n\r\nvoid loop(){ \r\n  String message = \"\";\r\n  if(hc12.available()) {\r\n    message = hc12.readString();\r\n    Serial.println(message);\r\n    if(message.indexOf(\".\")){  \/\/ sense check\r\n      digitalWrite(ledPin, HIGH);\r\n      delay(500);\r\n      digitalWrite(ledPin, LOW);\r\n    }\r\n  }\r\n}<\/pre>\r\n\n<p>This completes the transmitter unit. Even without a receiver unit, you already have a functioning, digital BBQ thermometer.<\/p>\r\n\n<h2 class=\"wp-block-heading\">The receiver unit for the wireless BBQ thermometer<\/h2>\n\n<h3 class=\"wp-block-heading\">Concept of the receiver unit<\/h3>\n\n<p>The receiver unit shall:<\/p>\r\n<ul>\r\n<li>receive the readings from the sending unit and display them as a value<\/li>\r\n<li>graphically display the temperature curve<\/li>\r\n<li>output an acoustic warning at a selectable target temperature<\/li>\r\n<li>use an LED to indicate when the battery voltage drops below 7.2 volts<\/li>\r\n<\/ul>\r\n\n<p>I have again chosen an Arduino Nano as the microcontroller.<\/p>\r\n<p>I decided to use a 128&#215;160 px TFT display with integrated ST7735 controller. It is controlled via SPI. Since the controller is not 5 volt tolerant, a levelshifter is required when using an AVR-based Arduino. A pinout scheme for the display I use can be found <a href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1509\/1638\/files\/1_8_Zoll_SPI_TFT-Display_Pinout.pdf?13085146850114863909\" target=\"_blank\" rel=\"noopener\">here<\/a>. An introduction to this can be found <a href=\"https:\/\/randomnerdtutorials.com\/guide-to-1-8-tft-display-with-arduino\/\" target=\"_blank\" rel=\"noopener\">here<\/a>, but the non-compatibility with 5 volts is ignored in this article. I used the 8-channel TXB0108 as the level shifter.<\/p>\r\n<p>The temperature alert is output with a 5 volt buzzer. The buzzers are not excessively loud, but cheap to buy and can be controlled directly via an Arduino pin.<\/p>\r\n<p>The temperature alarm is set via two push-buttons. My choice fell on a screw-in construction that is used in model railways, among other things.<\/p>\r\n<p>I had already discussed the power supply above.<\/p>\r\n<p>&nbsp;<\/p>\r\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__receiver_wiring-1024x606.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"606\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__receiver_wiring-1024x606.png\" alt=\"Fritzing circuit diagram of the receiver unit for the wireless BBQ thermometer.\" class=\"wp-image-13219\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__receiver_wiring-1024x606.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__receiver_wiring-300x178.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__receiver_wiring-768x455.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__receiver_wiring-1536x909.png 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__receiver_wiring-1320x781.png 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/BBQ__receiver_wiring.png 1625w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Fritzing circuit diagram of the receiver unit <\/figcaption><\/figure>\n\n<h3 class=\"wp-block-heading\"> Sketch for the receiver unit <\/h3>\n\n<p>The sketch for the receiver unit is more complex than the one for the transmitter unit. It&#8217;s also too long for me to explain line by line. A few explanations follow, but first the sketch:<\/p>\r\n\n<div class=\"scroll-paragraph-long\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-group=\"BBQ_receiver.ino\" data-enlighter-title=\"BBQ_receiver.ino\">#include &lt;TFT.h&gt; \r\n#include &lt;SoftwareSerial.h&gt;\r\n\r\n\/\/ TFT settings(Arduino Nano): SDA - 11, SCK - 13\r\n#define CS 10 \/\/ Chip Select\r\n#define DC 8 \r\n#define RESET 9\r\n#define ALERTPIN 5\r\n#define LED_PIN 2\r\n#define CC_X_BEGIN 15\r\n#define CC_X_END   125\r\n#define CC_Y_BEGIN 10\r\n#define CC_Y_END   120\r\n\r\nenum tftColor{RED=1, GREEN, YELLOW, BLUE, LIGHTBLUE, GREY, BLACK};\r\n\r\nTFT myScreen = TFT(CS, DC, RESET);\r\nSoftwareSerial hc12(6,7);\r\n\r\nfloat pixelsPerDegree = CC_Y_END\/90.0; \/\/ Scaling of the T-axis (10.0 - 100.0 \u00b0C) -&gt; constant\r\nunsigned int secsPerXPixel = 6;  \/\/ Scaling of the t-axis -&gt; changes over time\r\nint targetT = 55;        \/\/ target temperature\r\nint valCounter = 0;      \/\/ counter for measured values\r\nbyte coordPair[105][2];  \/\/ coordinates time\/temperature in pixels\r\nbool alert = true;       \/\/ alert, when target temperature is reached\r\n\r\nvoid setup(){\r\n  pinMode(ALERTPIN,OUTPUT);\r\n  pinMode(LED_PIN, OUTPUT); \r\n  Serial.begin(115200);\r\n  hc12.begin(9600);\r\n  myScreen.begin();  \r\n  myScreen.setRotation(0); \/\/ portrait view\r\n  myScreen.background(0, 0, 0);  \/\/ clear the screen with black\r\n  delay(500);\r\n  setTargetTemperature();\r\n  displayCoordinateCross();   \r\n}\r\n\r\nvoid loop(){\r\n  static float currentTemp = 0.0;      \/\/ current Temperature\r\n  static unsigned int prevUpdate = 0;  \/\/ time of the last temperature update\r\n  targetTempCheck(currentTemp);\r\n  currentTemp = waitForTemperatureUpdate(); \/\/ Wait for a message from sender\r\n  Serial.println(currentTemp);\r\n  \r\n  unsigned int currentTime = (unsigned int)(millis() \/ 1000); \/\/ current time in seconds\r\n  if(((currentTime-prevUpdate) &gt; secsPerXPixel) &amp;&amp; (currentTemp &gt; 0.0)){  \/\/ time for update?  \r\n    displayCurrentTemp(currentTemp); \r\n    prevUpdate += secsPerXPixel;  \/\/neues Intervall beginnt\r\n    valCounter++;\r\n    myColor(YELLOW);\r\n    coordPair[valCounter][1] = CC_X_BEGIN + valCounter; \/\/ x-Wert \/ Zeit \r\n    coordPair[valCounter][2] = CC_Y_END - (pixelsPerDegree * (currentTemp - 10.0)); \/\/ y-Wert (Temperatur)\r\n    \r\n    if(valCounter &gt; 1){ \/\/Verbinde den vorherigen Punkt mit dem aktuellen\r\n      myScreen.line(coordPair[valCounter-1][1], coordPair[valCounter-1][2], coordPair[valCounter][1], coordPair[valCounter][2]);\r\n    }\r\n    else myScreen.point(coordPair[valCounter][1], coordPair[valCounter][2]); \/\/ first point\r\n    \r\n    if(valCounter&gt;99) rescaleCoordinateCross();\r\n   }\r\n   if(analogRead(A0) &lt;  655){ \/\/ battery voltage &lt; 7.2 V (voltage divider!)\r\n     digitalWrite(LED_PIN, HIGH);\r\n   }\r\n   else digitalWrite(LED_PIN, LOW);\r\n}\r\n\r\nvoid setTargetTemperature(){\r\n  const int keyPin1 = 3;\r\n  const int keyPin2 = 4;\r\n  unsigned int currentTime = 0;\r\n  bool newTargetT = false;\r\n  char targetTChar[3];     \/\/ target temperature as char array\r\n  pinMode(keyPin1, INPUT);\r\n  pinMode(keyPin2, INPUT);\r\n  itoa(targetT,targetTChar,10); \r\n  \r\n  myColor(RED);\r\n  myScreen.text(\"Target Temperature: \", 10, 30);\r\n  myScreen.setTextSize(2);\r\n  myScreen.text(targetTChar, 53, 60);  \r\n  myScreen.setTextSize(1);\r\n  myScreen.text(\"Left:  set\", 20, 100);\r\n  myScreen.text(\"Right: accept\", 20, 120);\r\n  \r\n  while((digitalRead(keyPin1) == LOW) &amp;&amp; (digitalRead(keyPin2) == LOW)){\/*Wait*\/}; \r\n  if(digitalRead(keyPin1) == HIGH){  \/\/ set new target temperature \r\n    delay(300); \/\/ debounce \r\n    myColor(BLACK);\r\n    myScreen.text(\"Left:  set\", 20, 100);     \/\/ write in black -&gt; delete\r\n    myScreen.text(\"Right: accept\", 20, 120);\r\n    myColor(LIGHTBLUE);\r\n    myScreen.setTextSize(2);\r\n    myScreen.text(targetTChar, 53, 60);  \r\n    myScreen.setTextSize(1);\r\n    myColor(RED);\r\n    myScreen.text(\"Left: +10\", 30, 100);\r\n    myScreen.text(\"Right: +1\", 30, 120);\r\n    currentTime = millis();\r\n    \r\n    while((millis() - currentTime) &lt; 4000){ \/\/ 4s without key pressed = accept\r\n      if(digitalRead(keyPin1) == HIGH){ \/\/ left key: increase by ten degrees\r\n        delay(300); \/\/ debounce\r\n        targetT = targetT + 10;\r\n        newTargetT = true;\r\n        if(targetT &gt; 100){\r\n          targetT = targetT - 60; \/\/ e.g. 96 + 10 --&gt; 46\r\n        } \r\n        currentTime = millis(); \/\/ reset 4s period\r\n      }\r\n      if(digitalRead(keyPin2) == HIGH){ \/\/ right key: increase by 1 degree\r\n        delay(300); \/\/ debounce \r\n        targetT = targetT + 1;\r\n        if((targetT%10) == 0){  \/\/ e.g. 59 + 1 --&gt; back to 50\r\n          targetT = targetT - 10;\r\n        }\r\n        newTargetT=true;\r\n        currentTime = millis();  \/\/ \/\/ reset 4s period\r\n      }\r\n      if(newTargetT){ \/\/ display new target Temp\r\n        myColor(BLACK);\r\n        myScreen.fill(0,0,0);\r\n        itoa(targetT, targetTChar, 10);\r\n        myScreen.rect(53, 60, 40, 40);\r\n        myColor(LIGHTBLUE);\r\n        myScreen.setTextSize(2);\r\n        myScreen.text(targetTChar, 53, 60);  \r\n        myScreen.setTextSize(1);\r\n        newTargetT = false;\r\n      }\r\n    }\r\n  }\r\n  myScreen.background(0,0,0); \/\/ setting target temperature is completed\r\n}\r\n \r\nvoid displayCoordinateCross(){\r\n int yPos;\r\n char targetTChar[5];  \/\/ target temperature as char array\r\n myColor(RED);\r\n myScreen.line(CC_X_BEGIN,     CC_Y_BEGIN, CC_X_BEGIN,     CC_Y_END); \/\/ x-axis\r\n myScreen.line(CC_X_BEGIN,     CC_Y_END,   CC_X_END,       CC_Y_END); \/\/ y-axis\r\n myScreen.line(CC_X_BEGIN,     CC_Y_BEGIN, CC_X_BEGIN-3,   CC_Y_BEGIN+5); \/\/ arrowheads\r\n myScreen.line(CC_X_BEGIN,     CC_Y_BEGIN, CC_X_BEGIN+3,   CC_Y_BEGIN+5); \r\n myScreen.line(CC_X_END,       CC_Y_END,   CC_X_END-5,     CC_Y_END-3);\r\n myScreen.line(CC_X_END,       CC_Y_END,   CC_X_END-5,     CC_Y_END+3);\r\n myScreen.line(CC_X_BEGIN,     CC_Y_END,   CC_X_BEGIN,     CC_Y_END+3); \/\/x-axis ticks at 0, 50, 100\r\n myScreen.line(CC_X_BEGIN+50,  CC_Y_END,   CC_X_BEGIN+50,  CC_Y_END+3);\r\n myScreen.line(CC_X_BEGIN+100, CC_Y_END,   CC_X_BEGIN+100, CC_Y_END+3);\r\n myColor(GREY);\r\n yPos = CC_Y_END - (pixelsPerDegree * (targetT - 10)); \/\/ target temp line\r\n myScreen.line(CC_X_BEGIN+1, yPos, CC_X_END, yPos);\r\n myColor(RED);\r\n myScreen.setTextSize(1);\r\n myScreen.text(\"T\", 5, 5); \/\/ y-axis label\r\n myScreen.text(\"t\", 120, 107);  \/\/ x-axis label\r\n myColor(GREEN);\r\n itoa(targetT, targetTChar, 10); \/\/ target temperature as char array\r\n myScreen.text(\"(\", 98, 147);\r\n myScreen.text(targetTChar, 105, 147);\r\n myScreen.text(\")\", 118, 147);\r\n myColor(RED);\r\n for(int i = 1; i &lt; 5; i++){ \/\/ y-axis labels at 20, 40, 60, 80 degrees\r\n  char degreesT[3];\r\n  yPos = CC_Y_END - (pixelsPerDegree * ((i * 20.0)-10));\r\n  itoa(i*20, degreesT,10);\r\n  myScreen.text(degreesT, 0, yPos-3);\r\n  myScreen.line(CC_X_BEGIN-2, yPos, CC_X_BEGIN, yPos);\r\n }\r\n myScreen.text(\"0\", CC_X_BEGIN-3, CC_Y_END+7);  \/\/ x-axis labeling \r\n for(int i = 1; i &lt; 3; i++){\r\n  int xPos;\r\n  char timeMinutes[3];\r\n  xPos = CC_X_BEGIN + (i * 50);\r\n  itoa(i * 5 * secsPerXPixel\/6, timeMinutes, 10);\r\n  if((i * 5 * secsPerXPixel \/ 6) &lt; 100) myScreen.text(timeMinutes, xPos-3, CC_Y_END+7);\r\n  else myScreen.text(timeMinutes, xPos-8, CC_Y_END+7);\r\n }\r\n}\r\n\r\nvoid rescaleCoordinateCross(){\r\n  delay(100);\r\n  myScreen.background(0,0,0);\r\n  delay(1000);\r\n  secsPerXPixel = secsPerXPixel * 2;\r\n  displayCoordinateCross();\r\n  valCounter = 49; \/\/ after rescale, continue at 50th value\r\n  myColor(YELLOW);\r\n  for(int i=1; i&lt;50; i++){\r\n    coordPair[i][2] = coordPair[2*i][2]; \/\/ the values 1-100 are rescaled to 1-50, every second value is deleted\r\n    if(i &gt; 1){\r\n      myScreen.line(coordPair[i-1][1], coordPair[i-1][2], coordPair[i][1], coordPair[i][2]);\r\n    }\r\n    else myScreen.point(coordPair[i][1], coordPair[i][2]);\r\n  }\r\n  myColor(RED);\r\n}\r\n\r\nvoid displayCurrentTemp(float T_float){ \/\/ display the current temperature\r\n  char* T_arr;\r\n  String T_string = String(T_float, 1); \/\/ make a string using one decimal\r\n  T_arr = &amp;T_string[0]; \/\/ String to char array\r\n  \r\n  myScreen.setTextSize(2); \r\n  myColor(RED);\r\n  myScreen.text(\"T= \", 5, 140);\r\n  myScreen.stroke(0, 255, 0);\r\n  myScreen.fill(0 ,0, 0); \r\n  myColor(BLACK);\r\n  myScreen.rect(40, 140, 50, 20); \/\/ black rectangle -&gt; deletes an area\r\n  myColor(LIGHTBLUE);\r\n  myScreen.text(T_arr, 40, 140);\r\n  myColor(RED);\r\n}\r\n\r\nvoid myColor(int color){ \/\/ definition of some colors\r\n  switch(color){\r\n    case RED:\r\n      myScreen.stroke(0, 0, 255); break;\r\n    case GREEN:\r\n      myScreen.stroke(0, 255, 0); break;\r\n    case YELLOW:\r\n      myScreen.stroke(0, 255, 255); break;\r\n    case BLUE:\r\n      myScreen.stroke(255, 0, 0); break;\r\n    case LIGHTBLUE:\r\n      myScreen.stroke(255, 128, 128);break;\r\n    case GREY:\r\n      myScreen.stroke(16, 16, 16);break;\r\n    case BLACK:\r\n      myScreen.stroke(0, 0, 0); break;\r\n    default:\r\n      myScreen.stroke(0, 0, 255);  \r\n  }\r\n}\r\n\r\nfloat waitForTemperatureUpdate(){\r\n  String message = \"\";\r\n  while(message.length()&lt;2){\r\n    if(hc12.available()){\r\n      message = hc12.readString();\r\n      Serial.println(message);\r\n      if((message.indexOf(\".\")) &lt; 1){ \/\/sense check\r\n        message = \"\";\r\n      }\r\n    }\r\n  }\r\n  return message.toFloat();\r\n}\r\n\r\nvoid targetTempCheck(float currentTemperature){\r\n  const int keyPin1 = 3;\r\n  if(currentTemperature &gt;= (targetT) &amp;&amp; (alert==true)){\r\n    digitalWrite(ALERTPIN, HIGH);\r\n    if(digitalRead(keyPin1) == HIGH){\r\n      digitalWrite(ALERTPIN, LOW);\r\n      alert = false;\r\n    }\r\n  }\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\r\n<\/div>\r\n\n<h3 class=\"wp-block-heading\">Explanations of the receiver sketch<\/h3>\n\n<p>I&#8217;ll go into three parts or aspects of the sketch:<\/p>\r\n<ul>\r\n<li>Setting of the target temperature<\/li>\r\n<li>Coordinate cross<\/li>\r\n<li>Timing<\/li>\r\n<\/ul>\r\n\n<h4 class=\"wp-block-heading\">Setting the target temperature<\/h4>\n\n<p>When you start the sketch, you can set a target temperature. This is done by the function <code>setTargetTemperature()<\/code>. The sketch waits until you either accept the default setting of 55 \u00b0C or you choose &#8220;set&#8221;. If you choose the latter, the font color of the temperature changes. Use the left button to increase the set temperature by 10 degrees, and the right button to increase it by 1 degree.&nbsp; The tens jump to the four after the nine, the ones jump to the zero after the nine. This means you can set target temperatures from 40 to 99 \u00b0C. After four seconds without pressing a button, the temperature is set.<\/p>\r\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/set_Temp-1024x609.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/set_Temp-1024x609.jpg\" alt=\"Target temperature setting on the wireless BBQ thermometer\" class=\"wp-image-13227\" style=\"width:512px;height:305px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/set_Temp-1024x609.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/set_Temp-300x178.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/set_Temp-768x456.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/set_Temp-1536x913.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/set_Temp-1320x784.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/set_Temp.jpg 1967w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Target temperature setting on the wireless BBQ thermometer<\/figcaption><\/figure>\n<\/div>\n<h4 class=\"wp-block-heading\">Coordinate cross<\/h4>\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/temp_verl-735x1024.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"735\" height=\"1024\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/temp_verl-735x1024.jpg\" alt=\"\" class=\"wp-image-13229\" style=\"width:184px;height:256px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/temp_verl-735x1024.jpg 735w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/temp_verl-215x300.jpg 215w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/temp_verl-768x1070.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/temp_verl-1102x1536.jpg 1102w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/temp_verl-1320x1840.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/temp_verl.jpg 1435w\" sizes=\"auto, (max-width: 735px) 100vw, 735px\" \/><\/a><\/figure>\n<\/div>\n<p>The origin (0,0) of the TFT display is at the top left. So, you have to rethink. The temperature-time coordinate cross has its origin at (0 min, 10 \u00b0C) = (CC_X_BEGIN, CC_Y_END) = (15, 120). Actually, units belong to the axes. Because of the limited space, I did without it.<\/p>\r\n<p>The temperature axis is fixed, the time axis changes over time its resolution. At the beginning, each x-pixel corresponds to six seconds (secsPerXPixel). Therefore, 100 pixels equal 600 seconds = 10 minutes. After 10 minutes, every second value is simply deleted and the x-axis is &#8220;rescaled&#8221; to 0 to 20 minutes. The next change of scale is then made after 20 min (to 0 to 40 minutes), etc. The temperature axis ranges from 10 to 100 \u00b0C (upper edge of the display). 120 pixels are available for this. The resolution is therefore <span style=\"text-decoration: overline;\">1.3<\/span> pixels per degree.<\/p>\r\n<p>The target temperature is displayed in green color at the bottom right and also visible as a blue line in the diagram. I have defined all the colors I use in the function <code>myColor()<\/code> and access them via an enum variable.<\/p>\r\n\n<h4 class=\"wp-block-heading\">Timing<\/h4>\n\n<p>In <code>waitForTemperatureUpdate()<\/code>, the sketch is waiting for a new measured value of the transmitter unit, which is received every ~2.5 seconds or 3 seconds at &#8220;low battery&#8221;. The function returns the temperature as a float. After a period of secsPerXPixel ( = 6, 12, 24 &#8230; seconds), the measured value is converted into a coordinate point and displayed. After the one hundredth measured value, the scale of the time axis is doubled and the measured value counter is reset to 50.<\/p>\r\n<p>Because the receiver waits up to 3 seconds for a new measured value, the time between two displayed measured values does not equal exactly secsPerXPixel. However, <code>prevUpdate += secsPerXPixel<\/code> ensures that any deviation is compensated for after the next measured value.<\/p>\r\n<p>If the measured value reaches or exceeds the target temperature, the acoustic alert is triggered. By pressing the left button, the alarm is switched off. As the timing of the sketch is sequential, you have to press for up to 3 seconds. If this bothers you, you can control the deactivation of the alarm via an interrupt.<\/p>\r\n\n<h3 class=\"wp-block-heading\">Construction of the receiver unit<\/h3>\n\n<p>The concept of the housing, the circuit board and the battery is similar to that of the transmitter unit. Due to the many pins of the display and the level shifter, the soldering was quite time-consuming.<\/p>\r\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/receiver_inside-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"637\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/receiver_inside-1024x637.jpg\" alt=\"Receiver Unit - Interior View\" class=\"wp-image-13232\" style=\"width:768px;height:478px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/receiver_inside-1024x637.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/receiver_inside-300x187.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/receiver_inside-768x478.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/receiver_inside-1536x956.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/receiver_inside-2048x1274.jpg 2048w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/receiver_inside-1320x821.jpg 1320w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Receiver Unit &#8211; Interior View<\/figcaption><\/figure>\n<\/div>\n<p>To connect the display, I soldered cables to the pins and protected the solder joints with heat shrink tubing.<\/p>\r\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/dispay_connection-1024x394.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"394\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/dispay_connection-1024x394.jpg\" alt=\"Wiring of the display\" class=\"wp-image-13236\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/dispay_connection-1024x394.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/dispay_connection-300x116.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/dispay_connection-768x296.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/dispay_connection-1536x591.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/dispay_connection-1320x508.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/dispay_connection.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Wiring of the display<\/figcaption><\/figure>\n\n<p>And this is the output on the serial monitor:<\/p>\r\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_receiver_complete-1024x600.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"600\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_receiver_complete-1024x600.jpg\" alt=\"The completed wireless BBQ thermometer.\" class=\"wp-image-13234\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_receiver_complete-1024x600.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_receiver_complete-300x176.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_receiver_complete-768x450.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_receiver_complete-1536x900.jpg 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_receiver_complete-1320x774.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/sender_receiver_complete.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">The completed wireless BBQ thermometer<\/figcaption><\/figure>\n\n<h2 class=\"wp-block-heading\">Wireless BBQ Thermometer &#8211; Improvement Potential \/ Variants<\/h2>\n\n<p>There are many options to modify this project, for example:<\/p>\r\n<ul>\r\n<li>Reduce by:  <ul>\r\n<li>smaller housings (e.g. using a 3D printer), and<\/li>\r\n<li>customized boards.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>Connections for additional temperature sensors.<\/li>\r\n<li>Selection of the target temperature from a list, e.B. &#8220;Beef, medium: 57 \u00b0C&#8221;.<\/li>\r\n<li>Use of a 3.3 Volt MCU to get rid of the levelshifter.<\/li>\r\n<li>Omit the display on the transmitter unit.<\/li>\r\n<li>Use low-power MCUs, apply sleep modes.<\/li>\r\n<li>Embellishment by screwing on the displays from the inside.<\/li>\r\n<\/ul>\r\n<p>Above all, the high level of craftsmanship will probably deter one or the other from this project. That&#8217;s why I will build a <em>much<\/em> simpler variant and report on it in the next post as a sequel:<\/p>\r\n<ul>\r\n<li>Transmitter unit without display and based on an ESP32.<\/li>\r\n<li>Transmission via WiFi.<\/li>\r\n<li>Using a smartphone\/browser as a receiver.<\/li>\r\n<\/ul>\r\n\n<h2 class=\"wp-block-heading\">Acknowledgement<\/h2>\n\n<p>I owe the picture of the steaks on the grill, which is the basis for my post picture, to <a href=\"https:\/\/pixabay.com\/de\/users\/14070813-14070813\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=4579419\" target=\"_blank\" rel=\"noopener\">David Butler<\/a> on <a href=\"https:\/\/pixabay.com\/de\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=4579419\" target=\"_blank\" rel=\"noopener\">Pixabay<\/a>.<\/p>\r\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I will show you how to build a wireless 433 MHz BBQ thermometer with alert function and graphical display of the temperature curve. <\/p>\n","protected":false},"author":1,"featured_media":13214,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[545,571,572,548,1320],"tags":[551,1636,1637,1639,595,1638],"class_list":["post-13356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-433-mhz-en","category-projects","category-sensors","category-wireless","category-wireless-en-2","tag-433-mhz-en","tag-bbq-thermometer","tag-calibration-curve","tag-graphically","tag-radio-en","tag-temperature-curve"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wireless BBQ thermometer (433 MHz) &#8226; Wolles Elektronikkiste<\/title>\n<meta name=\"description\" content=\"I will show you how to build a wireless 433 MHz BBQ thermometer with alert function and graphical display of the temperature curve.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wireless BBQ thermometer (433 MHz) &#8226; Wolles Elektronikkiste\" \/>\n<meta property=\"og:description\" content=\"I will show you how to build a wireless 433 MHz BBQ thermometer with alert function and graphical display of the temperature curve.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz\" \/>\n<meta property=\"og:site_name\" content=\"Wolles Elektronikkiste\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-04T16:15:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-29T15:21:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/bbq_post_image-1024x1024.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Wolfgang Ewald\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wolfgang Ewald\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz\"},\"author\":{\"name\":\"Wolfgang Ewald\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"headline\":\"Wireless BBQ thermometer (433 MHz)\",\"datePublished\":\"2022-01-04T16:15:44+00:00\",\"dateModified\":\"2024-10-29T15:21:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz\"},\"wordCount\":2679,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"image\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/bbq_post_image.png\",\"keywords\":[\"433 MHz\",\"BBQ thermometer\",\"calibration curve\",\"graphically\",\"Radio\",\"temperature curve\"],\"articleSection\":[\"433 MHz\",\"Projects\",\"Sensors\",\"Wireless\",\"wireless\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz\",\"name\":\"Wireless BBQ thermometer (433 MHz) &#8226; Wolles Elektronikkiste\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/bbq_post_image.png\",\"datePublished\":\"2022-01-04T16:15:44+00:00\",\"dateModified\":\"2024-10-29T15:21:28+00:00\",\"description\":\"I will show you how to build a wireless 433 MHz BBQ thermometer with alert function and graphical display of the temperature curve.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz#primaryimage\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/bbq_post_image.png\",\"contentUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/bbq_post_image.png\",\"width\":1200,\"height\":1200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/wireless-bbq-thermometer-433-mhz#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wireless BBQ thermometer (433 MHz)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#website\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\",\"name\":\"Wolles Elektronikkiste\",\"description\":\"Die wunderbare Welt der Elektronik\",\"publisher\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\",\"name\":\"Wolfgang Ewald\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"contentUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"width\":512,\"height\":512,\"caption\":\"Wolfgang Ewald\"},\"logo\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wireless BBQ thermometer (433 MHz) &#8226; Wolles Elektronikkiste","description":"I will show you how to build a wireless 433 MHz BBQ thermometer with alert function and graphical display of the temperature curve.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz","og_locale":"en_US","og_type":"article","og_title":"Wireless BBQ thermometer (433 MHz) &#8226; Wolles Elektronikkiste","og_description":"I will show you how to build a wireless 433 MHz BBQ thermometer with alert function and graphical display of the temperature curve.","og_url":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz","og_site_name":"Wolles Elektronikkiste","article_published_time":"2022-01-04T16:15:44+00:00","article_modified_time":"2024-10-29T15:21:28+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/bbq_post_image-1024x1024.png","type":"image\/png"}],"author":"Wolfgang Ewald","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Wolfgang Ewald","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz#article","isPartOf":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz"},"author":{"name":"Wolfgang Ewald","@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"headline":"Wireless BBQ thermometer (433 MHz)","datePublished":"2022-01-04T16:15:44+00:00","dateModified":"2024-10-29T15:21:28+00:00","mainEntityOfPage":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz"},"wordCount":2679,"commentCount":0,"publisher":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"image":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz#primaryimage"},"thumbnailUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/bbq_post_image.png","keywords":["433 MHz","BBQ thermometer","calibration curve","graphically","Radio","temperature curve"],"articleSection":["433 MHz","Projects","Sensors","Wireless","wireless"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz","url":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz","name":"Wireless BBQ thermometer (433 MHz) &#8226; Wolles Elektronikkiste","isPartOf":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#website"},"primaryImageOfPage":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz#primaryimage"},"image":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz#primaryimage"},"thumbnailUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/bbq_post_image.png","datePublished":"2022-01-04T16:15:44+00:00","dateModified":"2024-10-29T15:21:28+00:00","description":"I will show you how to build a wireless 433 MHz BBQ thermometer with alert function and graphical display of the temperature curve.","breadcrumb":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz#primaryimage","url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/bbq_post_image.png","contentUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2021\/12\/bbq_post_image.png","width":1200,"height":1200},{"@type":"BreadcrumbList","@id":"https:\/\/wolles-elektronikkiste.de\/en\/wireless-bbq-thermometer-433-mhz#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/wolles-elektronikkiste.de\/en"},{"@type":"ListItem","position":2,"name":"Wireless BBQ thermometer (433 MHz)"}]},{"@type":"WebSite","@id":"https:\/\/wolles-elektronikkiste.de\/en#website","url":"https:\/\/wolles-elektronikkiste.de\/en","name":"Wolles Elektronikkiste","description":"Die wunderbare Welt der Elektronik","publisher":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wolles-elektronikkiste.de\/en?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46","name":"Wolfgang Ewald","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","contentUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","width":512,"height":512,"caption":"Wolfgang Ewald"},"logo":{"@id":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png"}}]}},"_links":{"self":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts\/13356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/comments?post=13356"}],"version-history":[{"count":0,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts\/13356\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/media\/13214"}],"wp:attachment":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/media?parent=13356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/categories?post=13356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/tags?post=13356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}