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

블루투스 온도 모니터

구성품 및 소모품

Arduino Nano R3
× 1
점퍼 와이어(일반)
× 1
저항 10k 옴
× 1
저항 1k 옴
× 1
저항 2.21k 옴
× 1

필요한 도구 및 기계

납땜 인두(일반)
선택 사항
3D 프린터(일반)
선택 사항

앱 및 온라인 서비스

MIT 앱 인벤터 2

이 프로젝트 정보

이 튜토리얼에서는 블루투스 연결을 통해 Android 앱에 값을 보내는 Arduino 온도 컨트롤러를 설정하는 방법을 보여 드리겠습니다.

이 프로젝트를 구축하는 데 필요한 자료부터 시작하겠습니다.

<울>
  • 아두이노 나노.
  • NTC 서미스터, 베타 공식을 사용하여 온도를 올바르게 평가하려면 arduino 코드에서 25°C 저항이 필요하므로 25°C 저항을 확인하십시오.
  • 저항, 2k, 1k 및 동일한 크기의 서미스터 중 하나입니다.
  • HC 06 블루투스 모듈.
  • 다양한 점퍼
  • 우선 서미스터에 사용되는 전압 분배기 조립을 시작해야 합니다. 그림 1은 온도의 함수로 서미스터의 알려지지 않은 저항을 계산하기 위해 만들어야 하는 연결을 보여줍니다.

    그림 1 서미스터 저항 평가를 위한 전압 분배기.

    이 회로를 통해 Arduino는 알 수 없는 저항 이후의 전압 강하를 결정할 수 있습니다. 다른 저항 값을 사용하여 코드의 다음 부분을 사용하여 알려지지 않은 저항 값을 계산할 수 있습니다(그림 2).

    raw=analogRead(analogPin);if(raw) { ratio =raw * Vin; Vout =(비율)/1024.0; 비율 =(Vin/Vout) -1; R2=R1 * 비율; 

    그림 2 서미스터 저항 평가를 위한 Arduino 코드입니다.

    얻은 저항은 베타 공식을 사용하여 온도로 변환됩니다(그림 3).

    참고:25°C에서 서미스터 및 Ro의 베타 값은 해당 서미스터의 데이터시트에서 확인할 수 있습니다! 코드를 실행하기 전에 확인하세요!

    Temp =Beta/log(R2/(Ro*exp(-Beta/To)));Temp =Temp -273.15; 

    그림 3 온도 변환을 위한 Arduino 코드입니다.

    그런 다음 Bluetooth 모듈을 설정해야 합니다. 그림 4는 이 프로젝트에서 이전에 사용한 것과 같은 Bluetooth 모듈을 연결하는 방법을 보여줍니다. Arduino의 TX1 핀을 모듈의 RX 핀에 연결하려면 전압 분배기가 필요합니다. 이는 온라인 3.3V를 입력으로 받아들이기 때문입니다.

    그림 4 HC 06 모듈이 있는 Arduino 회로도.

    그런 다음 직렬 도어를 초기화하고 원하는 값을 인쇄하여 데이터를 블루투스 모듈을 통해 보낼 수 있습니다. 이 예에서는 25 -75°C 범위의 온도를 측정하고 고온에서 약 300초를 계산한 다음 인쇄된 메시지를 변경하는 장치가 필요했습니다(그림 5).

    <사전><코드> 무효 setup(){Serial.begin(9600); } 무효 루프(){ if(Temp> =74) { for (int i =0; i <=30; i++) { Serial.print("온도>=74 °C"); 지연(10000); } Serial.print("가열 완료"); 지연(10000); } else if (Temp <=26){ Serial.print("온도 <=25 °C"); 지연(10000); } else { Serial.print("온도:"); Serial.println(온도); 지연(10000); }}

    그림 5 직렬 초기화 및 값 인쇄당 Arduino 코드입니다.

    브레드보드에 조립된 최종 장치는 그림 6에서 볼 수 있습니다.

    그림 6 브레드보드의 전체 장치.

    마지막 단계는 데이터 시각화를 위해 블루투스 모듈을 안드로이드 폰에 연결하는 것입니다. 간단한 앱은 MIT AppInventor 2를 사용하여 프로그래밍되었습니다. 그림 7과 그림 8은 각각 사용자 인터페이스와 프로그래밍 블록을 보여줍니다.

    그림 7 AppInventor2로 만든 사용자 인터페이스.

    그림 8 AppInventor2의 프로그래밍 블록.

    제안된 앱은 다음 링크의 앱 발명가 갤러리에서 사용할 수 있습니다. http://ai2.appinventor.mit.edu/#5876233188016128

    어쨌든 앱 발명가의 간단하고 직관적인 블록 프로그래밍 시스템을 사용하여 원하는 목적을 달성하기 위해 다른 많은 앱을 구축할 수 있습니다. 예를 들어 일부 측정을 수행하고 75°C에서 5분 후에 가열 사이클이 완료되었음을 알리기 위해 온도가 25°C보다 낮아지면 소리로 알려주는 앱이 필요했습니다.

    선택 사항:마지막 단계는 구성 요소를 납땜하고 부품을 함께 유지하기 위해 일부 상자를 3D 인쇄하는 것일 수 있습니다. 그림 9는 이러한 접근의 결과를 보여줍니다.

    그림 9 전체 장치를 사용할 준비가 되었습니다.

    미니 USB 케이블로 Arduino에 전원을 공급할 수 있도록 이 상자의 측면에 구멍이 만들어졌습니다. 서미스터와 나머지 장치 사이의 거리를 늘리기 위해 빨간색과 검은색 긴 케이블이 추가되었습니다(용액 온도를 확인하기 위해 서미스터가 필요하므로 가능한 한 전자 부품을 원했습니다).

    이 간단한 프로젝트가 자신의 프로젝트에 이것을 적용하기 위해 블루투스 모듈과의 직렬 통신에 대한 기본 사항을 이해하는 데 도움이 되기를 바랍니다.

    오류를 발견하거나 단순히 질문하고 싶은 것이 있으면 알려주세요.

    편집:블루투스 모듈에 필요한 전압 분배기에 대한 배선도에서 오류를 발견했습니다. 해결되었습니다.

    EDIT2:보드에 코드를 업로드하는 데 문제가 있으면 블루투스 모듈을 분리하여 시도하세요.

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

    코드

    <울>
  • 블루투스 모듈이 있는 온도 모니터
  • 블루투스 모듈이 있는 온도 모니터Arduino
    NTC 서미스터의 저항을 계산하기 위해 대략 동일한 크기(이 예에서는 10kohm)의 알려진 저항과 직렬로 5V가 인가됩니다. 아날로그 핀 A0을 통해 직렬 저항으로 만든 전압 분배기의 전압이 계산되고 알려진 하나의 저항 값을 사용하여 NTC 저항이 계산됩니다. 그런 다음 이 값은 베타 방정식을 사용하여 온도로 변환되고(베타를 사용 중인 것으로 변경) 블루투스 모듈을 사용하여 Android 앱으로 전송됩니다.
    코드를 변경하여 특정 온도 범위를 모니터링할 수 있습니다. 이 예에서는 25°C에서 75°C 사이를 모니터링하고 더 높은 온도에서 5분 동안 기다려야 했습니다.
    // 블루투스 모듈이 있는 온도 모니터int analogPin=0;int raw =0, int Vin=5, float Vout=0, float R1=10000, //시스템을 변경합니다. float Ro=10000; //시스템으로 변경float R2=0;float ratio=0;float Temp =0;float Beta =3694; // 귀하의 시스템으로 변경합니다. To =298.15;// 서미스터는 25°C에서 10k에서 시작합니다. 에 따라 기준 저항을 선택하십시오. void setup(){Serial.begin(9600);}void loop(){raw=analogRead(analogPin);if(raw) { ratio =raw * Vin; Vout =(비율)/1024.0; 비율 =(Vin/Vout) -1; R2=R1 * 비율; 온도 =베타/로그(R2/(Ro*exp(-베타/끝))); 온도 =온도 -273.15; if(Temp>
    =74) { for (int i =0; i <=30; i++) { Serial.print("온도>=74 °C"); //시스템으로 변경합니다. delay(10000); } Serial.print("가열 완료"); 지연(10000); } else if (Temp <=26){ Serial.print("온도 <=25 °C"); //시스템으로 변경합니다. delay(10000); } else { Serial.print("온도:"); //시스템으로 변경 Serial.println(Temp); 지연(10000); }}}

    회로도

    저항 R2는 사용하려는 서미스터의 저항에 따라 변경되어야 합니다. 바이어스(Runknow - R2)에 따라 온도 판독 오류가 증가합니다.

    제조공정

    1. Raspberry Pi 온도 및 습도 네트워크 모니터
    2. ThingSpeak 온도 모니터(Raspberry Pi 포함)
    3. Raspberry Pi를 사용하여 집 온도 모니터링
    4. 갈증 경보 식물 알람
    5. 이탈리아어 단어 시계
    6. Sigfox kWh 미터
    7. 제스처 제어 잠금
    8. 컴패니언 IC
    9. Arduino용 절연 아날로그 입력
    10. 반응 시간 측정