M5Stack에 온도 센서 DS18B20을 연결하여 기온(℃ 및 F)을 획득

목적



앞의 기사( JAWS DAYS 2017 IoT 핸즈온【후반】참가 보고 )에서 이용한 기온 센서 DS18B20을 M5Stack에 연결해 방의 기온을 패널에 표시시켜 보았으므로, 그 순서를 나타냅니다.

준비



아래의 도구를 준비합니다.
  • PC(Windows 10 Pro)

  • M5Stack BASIC
  • USB-C 케이블(M5Stack BASIC에 포함됨)
  • 점퍼 와이어 오스메스 3개(M5Stack BASIC에 포함됨)

  • DS18B20
  • 2.2kΩ 탄소 저항
  • 브레드보드

  • 절차



    1. Hello World를 확인합니다.



    Windows 시작 M5Stack 등을 참고로 Hello World 샘플을 동작 확인합니다. 덧붙여서 Hello World로서 샘플의 테트리스를 동작시켜 보았습니다.



    2. 라이브러리 OneWire, DallasTemperature 설치



    Arduino IDE를 시작하고 도구> 라이브러리 관리를 선택하고 라이브러리 관리자 검색 창에서 라이브러리 OneWire, DallasTemperature의 두 가지를 설치합니다.


    3. 코드 작성 및 쓰기 Arduino IDE를 시작하고 아래 코드를 복사하여 마이크로 컴퓨터 보드에 씁니다. 코드 자체는 여기 사이트 에 있었습니다.

    temperature.ino
    #include <M5Stack.h>
    #include <OneWire.h>
    #include <DallasTemperature.h>
    
    #define ONE_WIRE_BUS 2 // DS18B20 on arduino pin2 corresponds to D4 on physical board
    
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature DS18B20(&oneWire);
    
    void setup() {
      M5.begin();
      M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);
      M5.Lcd.setTextSize(2);
    }
    
    void loop() {
      float celsius;
      float fahrenheit;
    
      DS18B20.begin();
      int count = DS18B20.getDS18Count();
    
      //M5.Lcd.clear();
      M5.Lcd.setCursor(0, 0);
      M5.Lcd.print("Devices found: ");
      M5.Lcd.println(count);
    
      if (count > 0) {
    
        DS18B20.requestTemperatures();
    
        for (int i = 0; i < count; i++) {
          celsius = DS18B20.getTempCByIndex(i);
          fahrenheit = celsius * 1.8 + 32.0;
    
          celsius = round(celsius);
          fahrenheit = round(fahrenheit);
    
          M5.Lcd.print("Device ");
          M5.Lcd.print(i);
          M5.Lcd.print(": ");
          M5.Lcd.print(celsius, 0);
          M5.Lcd.print( "C / ");
          M5.Lcd.print(fahrenheit, 0);
          M5.Lcd.println("F");
        }
      }
      delay(2000);
    }
    

    위 컴파일시 오류가 없으면 쓰기 성공입니다.

    4. 온도 센서와 M5Stack 연결



    이전 기사 ( JAWS DAYS 2017 IoT 핸즈온【후반】참가 보고 )의 다음 회로도를 참고하여 다음과 같이 연결합니다.


    사진과 같이 M5Stack을 뒤집어 M5Stack 오른쪽 하단의 G를 파란색 점퍼 와이어, 오른쪽의 G2를 노란 점퍼 와이어, 오른쪽 3V3을 빨간색 점퍼 와이어에 연결합니다.



    M5Stack을 뒤집은 그림은 다음과 같습니다.



    5. 실행



    연결되면 온도 센서 데이터가 M5Stack으로 전송되고 전면 패널에 온도(℃ 및 F)가 표시됩니다. 패널의 표시로부터 방의 온도가 21℃/70F인 것을 알 수 있습니다.



    미래의 도전


  • 센서의 시계열 데이터를 그래프화하고 싶기 때문에 여기을 참고로 Ambient라는 사이트에 데이터 업로드를 검토 중 (아래 이미지 인용)

  • 좋은 웹페이지 즐겨찾기