산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

온도 조절 숯 훈제기

구성품 및 소모품

Arduino MKR1000
× 1
5V 브러시리스 송풍기
× 1
MOSFET IRF520N 드라이버 모듈
× 1
100K 옴 NTC 서미스터
× 1
브레드보드(일반)
× 1
점퍼 와이어(일반)
× 1
3.7V Lipo 배터리>=700mAh
× 1

앱 및 온라인 서비스

Arduino IDE
Microsoft Visual Studio 2015

이 프로젝트 정보

배경 스토리

대부분의 진지한 바베큐 흡연자는 숯을 사용하여 흡연자를 데울 때 최고의 맛이 나온다는 것을 알고 있습니다. 프로판 및 전기 흡연자는 온도 조절이 더 잘되지만 숯 향은 잃습니다. 열원으로서 숯은 고통이 될 수 있습니다. 지속적으로 온도를 모니터링하고 적절한 온도를 얻기 위해 통풍구를 조정해야 하며 적절한 온도를 얻기 위해 몇 번을 가지고 놀아야 합니다. 그런 다음 흡연자의 숯 수치가 변하기 때문에 30분마다 계속 해야 합니다. 소파에 편안히 앉아 좋아하는 차가운 음료와 스포츠 경기를 TV로 즐기면서 흡연자들이 하는 일을 하는 것이 좋지 않을까요?

프로젝트

훈연기의 온도를 모니터링하고 숯에 대한 공기 흐름을 조정하여 올바른 온도를 유지하는 컨트롤러를 만듭니다. 또한 원격으로 훈제 및 육류 프로브의 온도를 모니터링하는 방법을 제공합니다. 이것은 Wi-Fi가 내장되고 LiPo 배터리 충전을 지원하는 곧 출시될 Arduino MKR1000을 기반으로 합니다.

하드웨어

연기의 온도는 MKR의 아날로그 입력 중 하나에 연결된 전압 분배기의 100K NTC 서미스터를 사용하여 모니터링됩니다. 이 써미스터는 3D 프린터의 Prusa RepRab 핫엔드용으로 선택되어 널리 보급되고 저렴합니다. 이상적인 온도 프로브를 만들기 위해 고온 실리콘 절연 와이어에 이미 납땜되어 구입할 수 있습니다. 서미스터는 물리적 보호를 위해 길이가 얇은(1/4인치 이하) 스테인리스 스틸 튜브에 삽입되며 한쪽 끝은 압착되어 닫히고 다른 쪽 끝은 열 수축을 사용하여 고정됩니다.

전압 분배기는 10K 저항을 전압 분배기의 나머지 절반으로 사용합니다. 이 값은 일반적인 흡연자 온도(225F)에서 100K NTC 서미스터의 저항에 가깝기 때문에 선택되었습니다. 이것은 온도 측정을 위한 좋은 범위를 제공하여 합리적인 단위로 약 50F에서 300F 이상의 판독값을 제공합니다.

A0은 온도를 모니터링하는 데 사용됩니다. 그것은 흡연자 내부의 화격자에 배치되는 더 짧은 프로브를 사용합니다. 다른 아날로그 핀을 사용하여 더 많은 서미스터 프로브와 전압 분배기를 생성하여 훈제 중인 고기에 삽입하여 고기의 내부 온도를 모니터링하여 고기가 언제 익었는지 알 수 있습니다.

반대쪽에는 작은 송풍기가 훈연기의 통풍구에 부착되어 있습니다. 작은 스테인리스강 개밥 접시가 훈제 통풍구 위에 부착되고 송풍기는 접시 바닥의 구멍에 부착됩니다. 이것은 두 가지 기능을 수행합니다. 첫 번째는 통풍구를 완전히 덮는 것이고 두 번째는 흡연자의 본체와 송풍기 사이에 열 절연을 제공하는 것입니다. 송풍기는 N 채널 MOSFET을 사용하여 제어됩니다. 이것은 직접 배선할 수도 있지만 구성의 편의를 위해 MOSFET 모델을 사용했습니다. MOSFET의 게이트는 Arduino의 디지털 핀에 연결됩니다.

빌드

첫 번째 구현에서는 모든 것이 단순하게 유지하기 위해 브레드보드에서 수행됩니다. 서미스터 브리지는 배선하기 쉽고 Vcc(MKR의 경우 3.3V)의 10K 저항은 서미스터의 한쪽으로, 다른 쪽은 접지로 연결됩니다. 브리지 중앙과 MKR의 아날로그 핀 사이에 점퍼를 연결합니다. 프로브에 사용할 길이의 튜브를 자르고 바이스의 한쪽 끝을 압착하여 밀봉합니다. 그런 다음 플라이어를 사용하여 주름진 튜브의 모서리를 접어 뾰족한 부분을 만듭니다. 튜브의 끝에 도달할 때까지 서미스터를 밉니다. 수축 랩 조각을 다른 쪽 끝과 와이어 위로 밉니다. 열을 가하여 수축시키고 와이어를 고정합니다.

송풍기 측면은 거의 간단합니다. 극성을 관찰하면서 MOSFET 모듈의 출력 단자 블록에 송풍기 리드를 고정합니다. 다시 극성을 관찰하면서 LiPo 배터리 팩과 JST 플러그의 전선을 MOSFET 모듈의 전원 단자대에 연결합니다. JST 플러그를 MKR의 배터리 충전기용 JST 잭에 꽂습니다. MOSFET 보드의 핀에서 MKR까지 Vcc, 접지 및 제어 와이어에 대해 3개의 점퍼를 실행합니다. 10,000mAh 배터리는 송풍기의 충분한 배터리 수명을 제공하는 데 사용되었습니다.

브레드보드에는 회로도에 없는 몇 가지 항목이 추가되었습니다. 점퍼 중 하나를 서미스터에서 가변 저항기의 슬라이더로 전환하여 스케치를 테스트하기 위해 전압을 생성하는 데 사용할 수 있는 10K 가변 저항기가 있습니다(저항기의 끝은 Vcc 및 접지에 연결됨). 스케치가 팬을 켜고 끄는 시기를 나타내기 위해 출력 핀 0에 연결된 330옴 전류 제한 저항이 있는 LED도 있습니다.

소프트웨어

관련된 두 가지 소프트웨어가 있습니다. 하나는 Arduino를 제어하기 위한 스케치이고 다른 하나는 Universal Windows 앱으로 모든 Windows 10 장치에서 원격으로 흡연자를 모니터링할 수 있습니다.

스케치는 주로 Simon Monks의 책 "Arduino 다음 단계 프로그래밍:스케치로 더 나아가기"(http://www.amazon.com/Programming-Arduino-Next-Steps-Sketches/dp)의 Wi-Fi 서버 스케치를 기반으로 합니다. /0071830251/ref=sr_1_6?ie=UTF8&qid=1459448622&sr=8-6).

기본적으로 측정된 온도를 보여주는 한 페이지를 제공하고 흡연자의 목표 온도를 설정할 수 있는 간단한 웹 서버를 만듭니다. 초기화는 DHCP 할당 주소를 보기 위해 컴퓨터에 연결되어 있지 않을 때 무엇에 연결해야 하는지 알기 위해 Wi-Fi 어댑터를 설정하고 고정 IP 주소를 할당하는 것으로 구성됩니다. 핀 0은 출력으로 설정됩니다. 루프에서 연결을 시도하는 클라이언트가 있는지 확인하고 그렇다면 웹 페이지를 제공합니다. 요청이 있으면 URL에 목표 온도를 설정하는 매개 변수가 포함되어 있는지도 확인합니다. 그런 다음 흡연자의 온도를 확인하고 목표 온도보다 낮으면 블로어를 켜고 그 이상이면 블로어를 끕니다.

전압 분배기에서 서미스터를 사용하여 온도를 측정하는 것은 비교적 간단합니다. 먼저 아날로그 입력 판독값에서 고정 저항에 대한 전압 강하를 결정할 수 있습니다(고정 저항이 접지에 연결된 경우 판독값, Vcc - Vcc에 연결된 경우 판독값). 그런 다음 옴 법칙(V=IR)을 사용합니다. 저항을 통해 전류(I)를 계산하려면(I =V/R) 동일한 전류가 서미스터를 통해 흐르므로 옴의 법칙을 다시 사용하여 서미스터의 저항을 계산합니다. R =V/I 여기서 V는 서미스터의 전압 강하(아날로그 입력 판독값 또는 Vcc - 디바이더의 어느 쪽이 켜져 있는지에 따라 다름)이고 I는 방금 계산한 전류입니다. R을 사용하여 이를 Thermistor Beta 방정식에 연결할 수 있습니다.

1/T =1/T0 + 1/베타 * ln(R/R0)

여기서 R0은 T0에서 서미스터의 저항입니다.

(참고로 모든 온도는 켈빈 단위이므로 이를 고려해야 합니다.)

간단한 HTML 웹 페이지를 제공하는 것은 기본적으로 측정된 온도 주위에 html 헤더 블록과 html 형식화 코드를 보내는 것을 포함합니다. 또한 목표 온도에 대한 입력과 서버에 대한 요청에 이를 포함하는 버튼도 포함되어 있습니다.

Windows 유니버설 앱

이것은 흡연자가 Pecos 서쪽(또는 원하는 강)에서 최고의 훈제 쇠고기 양지머리를 휘젓고 있다는 사실을 알고 편안하게 앉아서 휴식을 취할 수 있는 부분입니다. 주기적으로 흡연자로부터 웹 페이지를 로드하고 온도를 구문 분석하여 표시합니다. 또한 흡연자의 목표 온도를 설정할 수 있습니다.

스케치 및 유니버설 앱 모두에 대한 코드는 아래 나열된 GitHub 리포지토리에서 사용할 수 있습니다.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • 흡연자 컨트롤러 스케치
  • 스모커 컨트롤러 스케치Arduino
    // 스케치_12_04_server_wifi#include #include char ssid[] ="BeeBar2"; // 네트워크 SSID(이름)char pass[] ="9254582716"; // 네트워크 비밀번호WiFiServer server(80);WiFiClient client;const int numPins =10;int pin[] ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int pinState[] ={0, 0, 0, 0, 0, 0, 0, 0, 0, 0};char line1[100];char buffer[100];IPAddress server_IP(192,168,123,90);float targetTemperature =225;float smokerTemperature =225; float v0; 무효 설정(){ Serial.begin(9600); 동안 (! 직렬) {}; // Leonardo는 (int i =0; i "); sendAnalogReadings(); client.println("<양식 메소드='GET'>"); client.print("\n

    목표 온도:

    <입력 유형='숫자' 값='"); client.print(목표온도); client.println("'이름='t'>
    "); client.println("<입력 유형='제출' 값='업데이트'/>\n\n");}무효 sendAnalogReadings(){ client.println("

    온도

    \n"); Serial.print("핀(");Serial.print(0);Serial.print("):V=");Serial.print(v0);Serial.print(" 온도="); Serial.println(흡연자 온도); client.print(""); for (int i =1; i <7; i++) { int 읽기 =analogRead(i); if (판독> 0) { float v =(float) 읽기 / 1241.0; float T =ThermisterTemp(v, 100000, 10000, 3950, 25); Serial.print("핀(");Serial.print(i);Serial.print("):");Serial.print(읽기);Serial.print("V=");Serial.print(v);Serial.print("온도="); Serial.println(T); client.print(""); } } client.println("
    흡연자 "); client.print(""); client.print(흡연자 온도); client.println(" F
    프로브 "); client.print(i); client.print(""); 클라이언트.프린트(T); client.println(" F
    ");}무효 readHeader(){ readRequestLine(line1); while (readRequestLine(buffer)> 1 &&buffer[0] !='\n') {}}int readRequestLine(char *line){ char ch; 정수 i =0; while (ch !='\n' &&i <100 &&client.available()) { if (client.available()) { ch =client.read(); 라인[i] =ch; 나는 ++; } } 행[i] ='\0'; return i;}boolean pageNameIs(char* name){ // 페이지 이름은 char pos 4에서 시작합니다. // 공백으로 끝납니다. int i =4; char ch =line1[i]; while (ch !=' ' &&ch !='\n' &&ch !='?') { if (name[i - 4] !=line1[i]) { return false; } 나는 ++; 채널 =라인1[i]; } return true;}float readTargetTempParam(){ //Serial.print("파싱 targetTemperature");Serial.println(line1); 정수 len =strlen(line1); for (int i =0; i
    스모커 컨트롤러 스케치 및 유니버설 앱
    https://github.com/DuncanBarbee/SmokerController

    회로도

    Mrkr1000은 Arduino Nano로 대표됩니다. Smoker.fzzMrkr1000은 Arduino Nano로 대표됩니다.
    Fritzing 도구에는 부품이 없었습니다.

    제조공정

    1. Arduino 디지털 주사위
    2. 온도 및 습도 데이터 로거
    3. 아이언맨
    4. 나를 찾기
    5. Arduino 3D 인쇄 로봇 팔
    6. Arduino 가습기 제어
    7. 비접촉식 온도 모니터링 게이트
    8. NeoMatrix Arduino Pong
    9. Arduino 조이스틱
    10. Arduino TEA5767 FM 라디오 수신기