ESP32 마이크로파이썬 온도 센서 OLED

이 튜토리얼은 ESP32와 MicroPython 코드를 사용하여 DS18B20 온도 센서에서 온도를 읽고 OLED I2C 디스플레이에 표시하는 방법을 안내합니다.

ESP32 마이크로파이썬 온도 센서 oLED i2c

준비물

1×ESP32 ESP-WROOM-32 개발 모듈 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×SSD1306 I2C OLED 디스플레이 128x64 쿠팡 | 아마존
1×SSD1306 I2C OLED 디스플레이 128x32 아마존
1×DS18B20 온도 센서 (어댑터 포함) 쿠팡 | 아마존
1×DS18B20 온도 센서(어댑터 없음) 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

온도 센서 및 OLED에 대하여

DS18B20 온도 센서, OLED I2C 또는 ESP32용 MicroPython 프로그래밍에 처음이시라면, 다음의 튜토리얼들을 확인해보시기 바랍니다:

이 튜토리얼은 DS18B20 온도 센서와 OLED에 대해 포괄적인 이해를 제공하며, 이러한 부품들을 ESP32에 연결하는 방법과 MicroPython 코드를 사용하여 이들의 동작을 효과적으로 제어하는 방법을 안내합니다.

선연결

  • 브레드보드를 사용하여 ESP32와 온도 센서 및 OLED를 연결하는 방법
ESP32 마이크로파이썬 온도 센서 oLED 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

  • 나사 터미널 블록 브레이크아웃 보드를 사용하여 ESP32와 온도 센서 및 OLED를 연결하는 방법
ESP32를 온도 센서와 oLED에 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP32 마이크로파이썬 코드

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-temperature-sensor-oled */ import machine import onewire import ds18x20 import time from machine import I2C, Pin from DIYables_MicroPython_OLED import OLED_SSD1306_I2C ds_pin = machine.Pin(23) # The ESP32 pin GPIO23 connected to the DS18B20 sensor # Create the onewire object OneWire = onewire.OneWire(ds_pin) # Create the DS18X20 object DS18B20 = ds18x20.DS18X20(OneWire) # Scan for devices on the bus sensor_addresses = OneWire.scan() if not sensor_addresses: raise Exception("No DS18B20 sensor found!") sensor_address = sensor_addresses[0] print('Found DS18B20 sensor with address: ', sensor_address) # Initialize I2C i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000) # Adjust ESP32 pins according to your setup # Initialize the OLED display oled = OLED_SSD1306_I2C(128, 64, i2c) # Clear the display oled.clear_display() oled.set_text_size(3) oled.display() def oled_display_center(oled, text): # Get the text bounds (width and height) of the string oled.clear_display() x1, y1, width, height = oled.get_text_bounds(text, 0, 0) # Set cursor to the calculated centered position cursor_x = (oled.WIDTH - width) // 2 cursor_y = (oled.HEIGHT - height) // 2 oled.set_cursor(cursor_x, cursor_y) # Print the text on the display oled.println(text) # Refresh the display to show the text oled.display() # Main loop to read and print the temperature every second while True: DS18B20.convert_temp() time.sleep_ms(750) temperature = DS18B20.read_temp(sensor_address) print('Temperature: {:.2f} °C'.format(temperature)) oled_display_center(oled, "{:.2f}".format(temperature) + OLED_SSD1306_I2C.DEGREE_SYMBOL + "C") time.sleep(1)

자세한 사용 방법

다음은 Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침입니다:

  • 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
  • ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
  • MicroPython을 사용하는 ESP32를 처음 사용한다면, 단계별 지침을 위해 ESP32 마이크로파이썬 - 시작하기 가이드를 참고하세요.
  • 제공된 다이어그램에 따라 ESP32 보드를 DS18B20 온도 센서와 OLED I2C에 연결하세요.
  • ESP32 보드를 USB 케이블로 컴퓨터에 연결하세요.
  • 컴퓨터에서 Thonny IDE를 실행하세요.
  • Thonny IDE에서 도구 옵션으로 이동하세요.
  • 인터프리터 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하세요.
  • 올바른 포트가 선택되었는지 확인하세요. Thonny IDE는 보통 자동으로 감지하지만, 경우에 따라 수동으로 선택해야 할 수 있습니다(예: Windows의 COM12 또는 Linux의 /dev/ttyACM0).
  • Thonny IDE에서 도구 패키지 관리로 이동하세요.
  • “DIYables-MicroPython-OLED”를 검색한 후, DIYables가 만든 OLED 라이브러리를 찾으세요.
  • DIYables-MicroPython-OLED를 클릭한 다음, OLED 라이브러리를 설치하기 위해 Install 버튼을 클릭하세요.
ESP32 마이크로파이썬 oLED 라이브러리
  • 제공된 MicroPython 코드를 복사하여 Thonny의 편집기에 붙여넣습니다.
  • ESP32에 코드를 저장하려면:
    • Save 버튼을 클릭하거나 Ctrl+S를 누릅니다.
    • 저장 대화 상자에서 MicroPython device를 선택합니다.
    • 파일 이름을 main.py로 지정합니다.
  • 스크립트를 실행하려면 녹색 Run 버튼을 클릭하거나 (또는 F5 키를 눌러) 실행합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot MPY: soft reboot Found DS18B20 sensor with address: bytearray(b'(\xffP\x05.\x04\x00\x07') Temperature: 26.07 °C Temperature: 26.11 °C Temperature: 26.11 °C Temperature: 26.24 °C Temperature: 27.44 °C Temperature: 29.10 °C Temperature: 29.86 °C Temperature: 30.24 °C Temperature: 30.39 °C
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
  • 센서를 뜨거운 물이나 차가운 물에 담거나 손에 쥐어 보세요.
  • OLED 화면에 표시되는 값을 확인해 보세요. 아래 이미지와 같이 나옵니다.
ESP32는 oLED에 온도를 표시합니다.

코드 설명

각 줄에 대한 설명은 소스 코드의 주석을 확인하세요!

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.