{"id":989,"date":"2011-07-22T16:43:59","date_gmt":"2011-07-22T20:43:59","guid":{"rendered":"http:\/\/lukemiller.org\/?p=989"},"modified":"2011-07-22T16:43:59","modified_gmt":"2011-07-22T20:43:59","slug":"bbq-controller-version-2","status":"publish","type":"post","link":"https:\/\/lukemiller.org\/index.php\/2011\/07\/bbq-controller-version-2\/","title":{"rendered":"BBQ controller, version 2"},"content":{"rendered":"<p>&nbsp;<\/p>\n<figure id=\"attachment_993\" aria-describedby=\"caption-attachment-993\" style=\"width: 264px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_20110704.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-993\" title=\"BBQ_controller_in_use_20110704\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_20110704-264x300.jpg\" alt=\"\" width=\"264\" height=\"300\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_20110704-264x300.jpg 264w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_20110704-903x1024.jpg 903w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_20110704.jpg 1997w\" sizes=\"auto, (max-width: 264px) 100vw, 264px\" \/><\/a><figcaption id=\"caption-attachment-993\" class=\"wp-caption-text\">The smoker and temperature controller.<\/figcaption><\/figure>\n<p>A few years back I put together an <a href=\"http:\/\/www.lukemiller.org\/journal\/2009\/06\/twittering-bbq.html\">electronic BBQ temperature controller<\/a> that regulated the air temperature in my smoker and displayed the air + meat temperatures on a computer in my kitchen, while also posting the temperatures to Twitter. More recently I have decided that setting up my old desktop computer on my kitchen counter is a poor use of space, so I set about making a more compact temperature monitor.<\/p>\n<p>This time around the contraption is based on an Arduino board. It consists of a LCD to display air temperature and three additional meat temperatures, and a WiFi shield that acts as a little server on my home network so that I can check temperatures on my phone without getting up from the couch. The WiFi feature has replaced the Twitter feature of the earlier controller. The controller is hooked up to a Brinkmann &#8220;Gourmet&#8221; Electric Smoker, pictured at left.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_991\" aria-describedby=\"caption-attachment-991\" style=\"width: 223px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_2_201107041.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-991\" title=\"BBQ_controller_in_use_2_20110704\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_2_201107041-223x300.jpg\" alt=\"\" width=\"223\" height=\"300\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_2_201107041-223x300.jpg 223w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_in_use_2_201107041.jpg 600w\" sizes=\"auto, (max-width: 223px) 100vw, 223px\" \/><\/a><figcaption id=\"caption-attachment-991\" class=\"wp-caption-text\">BBQ temperature controller<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_992\" aria-describedby=\"caption-attachment-992\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_wide_1_20110630.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-992\" title=\"BBQ_controller_wide_1_20110630\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_wide_1_20110630-300x215.jpg\" alt=\"\" width=\"300\" height=\"215\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_wide_1_20110630-300x215.jpg 300w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_wide_1_20110630.jpg 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-992\" class=\"wp-caption-text\">The guts of the temperature controller<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>The whole thing consists of the following parts:<\/p>\n<p><a href=\"http:\/\/arduino.cc\/en\/Main\/ArduinoBoardUno\" target=\"_blank\">Arduino Uno<\/a> ~$27<\/p>\n<p><a href=\"http:\/\/linksprite.com\/product\/showproduct.php?id=73&amp;lang=en\" target=\"_blank\">Link Sprite CuHead WiFi shield<\/a>\u00a0 ~ $55<\/p>\n<p><a href=\"http:\/\/www.adafruit.com\/products\/181\" target=\"_blank\">16&#215;2 LCD display from Adafruit.com<\/a> ~ $12<\/p>\n<p><a href=\"http:\/\/www.adafruit.com\/products\/271\" target=\"_blank\">Enclosure for Arduino from Adafruit.com<\/a> ~ $15<\/p>\n<p><a href=\"http:\/\/www.mouser.com\/Search\/ProductDetail.aspx?R=16PJ100\" target=\"_blank\">2.5mm bulkhead mount mono jacks<\/a> ~ $1.50 each<\/p>\n<p>There are also some 10k-ohm resistors, two push buttons, and a 3.5mm jack used as well. The Arduino controls a high power solid-state relay (Kyoto KD20C75AX) to turn the electric heating element in the BBQ on and off.<\/p>\n<p>The temperatures are measured using thermistor-based probes from a Taylor Tru Temp kitchen thermometer. The probes are available individually <a href=\"http:\/\/www.amazon.com\/Replacement-Chaney-Instruments-Taylor-Thermometers\/dp\/B001PI4HZA\/ref=sr_1_1?ie=UTF8&amp;qid=1311364536&amp;sr=8-1\" target=\"_blank\">here<\/a>, though I suspect that these <a href=\"http:\/\/www.amazon.com\/AD-DTTC-Replacement-DTTC-S-DTTC-W-Models\/dp\/B003LRSH4A\/ref=pd_sbs_k_25\" target=\"_blank\">cheaper probes<\/a> are interchangeable. These have a mono 2.5mm plug on the end that plugs into my enclosure. Inside the enclosure, each temperature sensor is wired into a <a href=\"http:\/\/www.arduino.cc\/playground\/ComponentLib\/Thermistor2\" target=\"_blank\">1\/2 bridge with a 10k-ohm resistor<\/a>. I calibrated the temperature probes in a heated water bath so that the raw voltage value read by the Arduino can be converted into a Fahrenheit temperature to be displayed on the LCD. The conversion is contained in the program code given below.<\/p>\n<figure id=\"attachment_994\" aria-describedby=\"caption-attachment-994\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_hookups_1_20110630.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-994 \" title=\"BBQ_controller_hookups_1_20110630\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_hookups_1_20110630-300x209.jpg\" alt=\"\" width=\"300\" height=\"209\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_hookups_1_20110630-300x209.jpg 300w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_hookups_1_20110630.jpg 1000w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-994\" class=\"wp-caption-text\">The four 2.5mm jacks hook up to 1\/2 bridges with 10k-ohm resistors.<\/figcaption><\/figure>\n<p>The rough schematics for the thermistors, selection button, reset button, LCD contrast adjustment, and solid-state relay output are shown below.<\/p>\n<figure id=\"attachment_995\" aria-describedby=\"caption-attachment-995\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/bbq_controller_schematic_v1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-995\" title=\"bbq_controller_schematic_v1\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/bbq_controller_schematic_v1-300x300.png\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/bbq_controller_schematic_v1-300x300.png 300w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/bbq_controller_schematic_v1-150x150.png 150w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/bbq_controller_schematic_v1.png 400w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-995\" class=\"wp-caption-text\">The assorted schematics for the temperature controller.<\/figcaption><\/figure>\n<p>The code to run the Arduino is provided <a href=\"http:\/\/www.lukemiller.org\/electronics\/bbq_monitor_v2\/bbq_monitor_v2_1_public.pde\" target=\"_blank\">here<\/a>. It relies on the <a href=\"http:\/\/asynclabs.com\/wiki\/index.php?title=WiShield_library\" target=\"_blank\">WiShield library<\/a> that was originally designed for the AsyncLabs WiShield Arduino WiFi shield, but the library also works with the LinkSprite CuHead WiFi shield. The LCD can be set up as shown in this <a href=\"http:\/\/www.ladyada.net\/learn\/lcd\/charlcd.html\">Adafruit tutorial<\/a>, although I use different pins on the Arduino than those shown in the tutorial.<\/p>\n<p>The enclosure houses two buttons, one for restarting the Arduino, and the other for selecting the temperature range options and enabling WiFi during initial power up. There is also a 3.5mm jack that I use to send the digital output signal to my solid state relay that lives in a separate 2-gang electrical box alongside the 120V mains power hookup for the electric smoker.<\/p>\n<figure id=\"attachment_996\" aria-describedby=\"caption-attachment-996\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_plugs_buttons_1_20110630.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-996\" title=\"BBQ_controller_plugs_buttons_1_20110630\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_plugs_buttons_1_20110630-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_plugs_buttons_1_20110630-300x200.jpg 300w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_plugs_buttons_1_20110630.jpg 400w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-996\" class=\"wp-caption-text\">The controller buttons and probe jacks on the housing.<\/figcaption><\/figure>\n<figure id=\"attachment_997\" aria-describedby=\"caption-attachment-997\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_relay_1_20110630.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-997\" title=\"BBQ_controller_relay_1_20110630\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_relay_1_20110630-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_relay_1_20110630-300x200.jpg 300w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/BBQ_controller_relay_1_20110630.jpg 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-997\" class=\"wp-caption-text\">The high voltage box. This houses a 120V household outlet and the solid state relay. One of the receptacles is constantly powered (I plug the Arduino power supply into that one) and the other receptacle is controlled by the solid state relay. The electric smoker is plugged into the switched receptacle.<\/figcaption><\/figure>\n<p>During startup, I can choose the upper and lower temperature limits for the air temperature in the smoker. When the temperature exceed the upper limit, the Arduino shuts off the solid state relay, cutting power to the electric heating element in the bottom of the smoker. As the air temperature drops below the lower temperature limit, the Arduino powers the relay up again. The temperatures for the 4 probes are reported on the LCD screen, and pointing a web browser to the WiFi shield&#8217;s IP address produces a very simple web page with the current temperatures and run time.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have recently started using an Arduino microcontroller setup to control the temperature in my electric BBQ smoker. It displays the air temperature and three meat temperatures on an LCD screen, while the temperatures can also be viewed over my home wireless network. <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[21,98,99],"class_list":["post-989","post","type-post","status-publish","format-standard","hentry","category-journal","tag-arduino","tag-bbq","tag-wishield"],"_links":{"self":[{"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/posts\/989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/comments?post=989"}],"version-history":[{"count":10,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/posts\/989\/revisions"}],"predecessor-version":[{"id":1007,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/posts\/989\/revisions\/1007"}],"wp:attachment":[{"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/media?parent=989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/categories?post=989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/tags?post=989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}