- Feb 3, 2009
- 87
- 10
Okay.... This is probly as close as I'm going to get to being complete with the "how-to". Much of what's left is someone being brave (crazy?) enough to try using the information here and let us know how it went and what we need to change. I've tried to put in all the info I can remember about what I had to change to get things working. *deep breath* So with that disclaimer, here it is:
Hardware
(I listed where I got the parts, in case someone had trouble finding it)
1 Arduino board (Mega Used) – eBay
1 wifi shield – Async Labs
1 proto board – Cute Digi
Several jumper wires - eBay
220V relay - eBay
Several Maverick Probes - eBay
Several 2.5mm jacks – BG Micro
Project case – Radio Shack
9V power supply – Cute Digi
220V oven element – eBay
Wiring Schematic: http://hruska.us/tempmon/
You'll also need a wireless router/access point device, but it's a fairly common thing to have these days so the instructions assume you have one.
Software
Base Arduino code: http://www.arduino.cc/en/Main/Software
PS Pad: http://www.pspad.com/en/download.php
Wishield drivers: http://github.com/asynclabs/WiShield/downloads
Smoker code: http://hruska.us/tempmon/BBQ_Controller.pde
Extra stuff to modify: http://asynclabs.com/forums/viewtopi...&t=150&start=0
Note: The base Smoker Code is calibrated to use Maverick probes, like from the ET-7 or ET-73. I haven't tested with other model probes but it's possible that you could change the code to use different probes.
"Mega" related changes
Mega Hack: http://asynclabs.com/forums/viewtopi...uino+mega#p112
Mega Hack Jumpers: http://mcukits.com/2009/04/06/arduin...eld-mega-hack/
Installing/Modifying Software
1) Install PS Pad (optional)
This is a great text editing program that can read/write almost anything out there. I like to use it because it offers a lot of bonus features vs. the editor in the Arduino code thing.
2) Download the Arduino code, extract it.
3) Download the wishield drivers, extract it.
4) Go to the arduino-0018\libraries folder and create a folder called WiShield
5) Open the wishield drivers folder until you see a bunch of files.
6) CTRL-A to select all files in the folder, CTRL-C to copy all files.
7) Open the WiShield folder you created, and paste all the driver files in it.
8) The Smoker Code has a few things to modify in the WiShield directory also:
[font="] Edit apps-conf.h:[/font]
[font="] //Here we include the header file for the application(s) we use in our project.[/font]
[font="] //#define APP_WEBSERVER[/font]
[font="] //#define APP_WEBCLIENT[/font]
[font="] //#define APP_SOCKAPP[/font]
[font="] //#define APP_UDPAPP[/font]
[font="] #define APP_WISERVER[/font]
9) Go to the "extra stuff to modify" link.
· Go to arduino-0018\libraries\WiShield and open the WiServer.h file with PSPad or Notepad, and add the two highlighted lines.
/**
* Inits the server with the provided page serving function
*
* @param pageServerFunc name of the sketch's page serving function
*/
void init(pageServingFunction function);
int async_init(pageServingFunction function, int restart);
int connection_up(void);
/*
* Enables or disables verbose mode. If verbose mode is true, then WiServer
* will output log info via the Serial class. Verbose mode is disabled by
* default, but is automatically enabled if DEBUG is defined
*/
· Go to arduino-0018\libraries\WiShield and open the WiServer.cpp file with PSPad or Notepad, and add the "And add the implementation of them in WiServer.cpp:" code at the very bottom, like this:
[font="] #endif /* APP_WISERVER */[/font]
int Server::connection_up(void) { if(zg_get_conn_state() != 1) { return(0); } else { return(1); }}#define INIT_STATE_ZG_INIT 0#define INIT_STATE_CONNECT 1#define INIT_STATE_STACK_INIT 2#define INIT_STATE_COMPLETE 3/* Call this repeatedly in your loop() and it will return
Etc...
Etc...
10) Mega Hack Jumpers (if needed)
11) Mega Hack software (if needed)
12) Start the Arduino Software (Arduino.exe)
13) Go to Tools > Board > select the board you have
14) Go to Smoker Code URL, copy all text (CTRL-A) and paste it (CTRL-C) into the big white area of the Arduino program.
From here, there's a few things to modify in the Code.
These items at the top are set up so it's easy to "shut off" parts of the code below. Anything preceeded by a // is treated as a comment and ignored by the program. If you're not going to use an LCD or the "keep alive" function, just put a // in front of it like this.
#define USE_WISHIELD//#define USE_LCD//#define USE_KEEPALIVE
The wireless settings are fairly easy to change. The items highlighted in blue are things you'll need to change, and the green is where to change them. The "SSID" is the name of your router which you can find by going through the router settings.
//Wireless configuration parameters ----------------------------------------unsigned char local_ip[] = { 10, 1, 2, 125 };
// IP address of WiShieldunsigned char gateway_ip[] = { 10, 1, 2, 1 };
// router or gateway IP addressunsigned char subnet_mask[] = { 255, 255, 255, 0 };
// subnet mask for the local networkunsigned char security_type = 1;
// 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2// setup the wireless mode
// infrastructure - connect to AP
// adhoc - connect to another WiFi deviceunsigned char wireless_mode = WIRELESS_MODE_INFRA;unsigned char ssid_len;unsigned char security_passphrase_len;
//NOTE: I have found that if I have an odd number of bytes of PROGMEM here then the board does not init
//at all. If you don't get a "Setup" message on the serial port, add a character to one of the
//PROGMEM fields and see if it helps......sigh
// WPA/WPA2 passphrase\
const prog_char ssid[] PROGMEM = { "mine" };
// max 32 bytes
There's sections under this about security settings for WPA and stuff but I don't use them. Feel free to modify them if you want to use them.
If you want to add more probes, just duplicate where you see "food_temp" like this"
Original:
unsigned int food_temp = 0;
Revised:
unsigned int food_temp1 = 0;
unsigned int food_temp2 = 0;
There's quite a few spots that have it so do a CTRL-F find for it.
That should be it from the software standpoint... Try compiling the software by clicking what looks like a "Play" but ton on the upper left of the software. It will tell you if there's errors at the bottom, and if there aren't it'll say how many bytes the code is. If there's no errors you can plug in your Arduino board if you haven't already and click the "Upload" button which is second from the last and is an arrow pointing to the right.
You should see some little LEDs flash and after a few minutes if you go to the IP you designated in the code in your browser. Like if you used http://192.168.1.40/, you'll see a basic web page with black text with things about Set Point, Pit Temp and some other stuff.
Hardware
The hardware should be fairly easy if you follow the wiring diagram at the bottom of the page mentioned above (http://hruska.us/tempmon/)
For the probes, I used this jack to allow easy plug-in without having to cut wires: http://www.bgmicro.com/index.asp?Pag...D&ProdID=12157
Any 2.5mm jack should work, but it was fairly cheap to order a bunch of these so I'd have more on hand to do other projects with. The wiring diagram says to ground the shield, not the tip. This means the ground goes to the single tab that sticks out the side and power goes to the one farthest from that. If you look at the bottom you can even see that there's a little tab that the tip contacts, which is the one you want to use for power.
From here, you have two paths. Follow the wiring diagram and set it up with a blower motor for use with a UDS or offset charcoal, or alter things to be used with electric.
If you want to use electric, you can use my version of the Smoker Code located here: http://www.thesmokingshed.com/BBQ/BBQ_Electric.txt
Hardware
(I listed where I got the parts, in case someone had trouble finding it)
1 Arduino board (Mega Used) – eBay
1 wifi shield – Async Labs
1 proto board – Cute Digi
Several jumper wires - eBay
220V relay - eBay
Several Maverick Probes - eBay
Several 2.5mm jacks – BG Micro
Project case – Radio Shack
9V power supply – Cute Digi
220V oven element – eBay
Wiring Schematic: http://hruska.us/tempmon/
You'll also need a wireless router/access point device, but it's a fairly common thing to have these days so the instructions assume you have one.
Software
Base Arduino code: http://www.arduino.cc/en/Main/Software
PS Pad: http://www.pspad.com/en/download.php
Wishield drivers: http://github.com/asynclabs/WiShield/downloads
Smoker code: http://hruska.us/tempmon/BBQ_Controller.pde
Extra stuff to modify: http://asynclabs.com/forums/viewtopi...&t=150&start=0
Note: The base Smoker Code is calibrated to use Maverick probes, like from the ET-7 or ET-73. I haven't tested with other model probes but it's possible that you could change the code to use different probes.
"Mega" related changes
Mega Hack: http://asynclabs.com/forums/viewtopi...uino+mega#p112
Mega Hack Jumpers: http://mcukits.com/2009/04/06/arduin...eld-mega-hack/
Installing/Modifying Software
1) Install PS Pad (optional)
This is a great text editing program that can read/write almost anything out there. I like to use it because it offers a lot of bonus features vs. the editor in the Arduino code thing.
2) Download the Arduino code, extract it.
3) Download the wishield drivers, extract it.
4) Go to the arduino-0018\libraries folder and create a folder called WiShield
5) Open the wishield drivers folder until you see a bunch of files.
6) CTRL-A to select all files in the folder, CTRL-C to copy all files.
7) Open the WiShield folder you created, and paste all the driver files in it.
8) The Smoker Code has a few things to modify in the WiShield directory also:
[font="] Edit apps-conf.h:[/font]
[font="] //Here we include the header file for the application(s) we use in our project.[/font]
[font="] //#define APP_WEBSERVER[/font]
[font="] //#define APP_WEBCLIENT[/font]
[font="] //#define APP_SOCKAPP[/font]
[font="] //#define APP_UDPAPP[/font]
[font="] #define APP_WISERVER[/font]
9) Go to the "extra stuff to modify" link.
· Go to arduino-0018\libraries\WiShield and open the WiServer.h file with PSPad or Notepad, and add the two highlighted lines.
/**
* Inits the server with the provided page serving function
*
* @param pageServerFunc name of the sketch's page serving function
*/
void init(pageServingFunction function);
int async_init(pageServingFunction function, int restart);
int connection_up(void);
/*
* Enables or disables verbose mode. If verbose mode is true, then WiServer
* will output log info via the Serial class. Verbose mode is disabled by
* default, but is automatically enabled if DEBUG is defined
*/
· Go to arduino-0018\libraries\WiShield and open the WiServer.cpp file with PSPad or Notepad, and add the "And add the implementation of them in WiServer.cpp:" code at the very bottom, like this:
[font="] #endif /* APP_WISERVER */[/font]
int Server::connection_up(void) { if(zg_get_conn_state() != 1) { return(0); } else { return(1); }}#define INIT_STATE_ZG_INIT 0#define INIT_STATE_CONNECT 1#define INIT_STATE_STACK_INIT 2#define INIT_STATE_COMPLETE 3/* Call this repeatedly in your loop() and it will return
Etc...
Etc...
10) Mega Hack Jumpers (if needed)
11) Mega Hack software (if needed)
12) Start the Arduino Software (Arduino.exe)
13) Go to Tools > Board > select the board you have
14) Go to Smoker Code URL, copy all text (CTRL-A) and paste it (CTRL-C) into the big white area of the Arduino program.
From here, there's a few things to modify in the Code.
These items at the top are set up so it's easy to "shut off" parts of the code below. Anything preceeded by a // is treated as a comment and ignored by the program. If you're not going to use an LCD or the "keep alive" function, just put a // in front of it like this.
#define USE_WISHIELD//#define USE_LCD//#define USE_KEEPALIVE
The wireless settings are fairly easy to change. The items highlighted in blue are things you'll need to change, and the green is where to change them. The "SSID" is the name of your router which you can find by going through the router settings.
//Wireless configuration parameters ----------------------------------------unsigned char local_ip[] = { 10, 1, 2, 125 };
// IP address of WiShieldunsigned char gateway_ip[] = { 10, 1, 2, 1 };
// router or gateway IP addressunsigned char subnet_mask[] = { 255, 255, 255, 0 };
// subnet mask for the local networkunsigned char security_type = 1;
// 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2// setup the wireless mode
// infrastructure - connect to AP
// adhoc - connect to another WiFi deviceunsigned char wireless_mode = WIRELESS_MODE_INFRA;unsigned char ssid_len;unsigned char security_passphrase_len;
//NOTE: I have found that if I have an odd number of bytes of PROGMEM here then the board does not init
//at all. If you don't get a "Setup" message on the serial port, add a character to one of the
//PROGMEM fields and see if it helps......sigh
// WPA/WPA2 passphrase\
const prog_char ssid[] PROGMEM = { "mine" };
// max 32 bytes
There's sections under this about security settings for WPA and stuff but I don't use them. Feel free to modify them if you want to use them.
If you want to add more probes, just duplicate where you see "food_temp" like this"
Original:
unsigned int food_temp = 0;
Revised:
unsigned int food_temp1 = 0;
unsigned int food_temp2 = 0;
There's quite a few spots that have it so do a CTRL-F find for it.
That should be it from the software standpoint... Try compiling the software by clicking what looks like a "Play" but ton on the upper left of the software. It will tell you if there's errors at the bottom, and if there aren't it'll say how many bytes the code is. If there's no errors you can plug in your Arduino board if you haven't already and click the "Upload" button which is second from the last and is an arrow pointing to the right.
You should see some little LEDs flash and after a few minutes if you go to the IP you designated in the code in your browser. Like if you used http://192.168.1.40/, you'll see a basic web page with black text with things about Set Point, Pit Temp and some other stuff.
Hardware
The hardware should be fairly easy if you follow the wiring diagram at the bottom of the page mentioned above (http://hruska.us/tempmon/)
For the probes, I used this jack to allow easy plug-in without having to cut wires: http://www.bgmicro.com/index.asp?Pag...D&ProdID=12157
Any 2.5mm jack should work, but it was fairly cheap to order a bunch of these so I'd have more on hand to do other projects with. The wiring diagram says to ground the shield, not the tip. This means the ground goes to the single tab that sticks out the side and power goes to the one farthest from that. If you look at the bottom you can even see that there's a little tab that the tip contacts, which is the one you want to use for power.
From here, you have two paths. Follow the wiring diagram and set it up with a blower motor for use with a UDS or offset charcoal, or alter things to be used with electric.
If you want to use electric, you can use my version of the Smoker Code located here: http://www.thesmokingshed.com/BBQ/BBQ_Electric.txt