• Skip to primary navigation
  • Skip to main content

IoTmaker

사물인터넷에 대한 모든 것 여기서 해결하셔요!

  • 홈
  • 책:마이크로파이썬을 활용한 사물인터넷
  • 책:따라 하면서 배우는 사물인터넷
  • 온라인 교육 코스
  • 새로운 소식
  • 의견보내기
  • 내 수강정보
  • 로그인
  • 회원가입

AI 프롬프트 실습 9-2: DHT22Sensor 클래스 만들기

마이크로파이썬 > AI 프롬프트

프롬프트

file: ai-9-2-DHT22Sensor-클래스-만들기.md

  프롬프트 영역으로 마우스를 옮기고 Copy 버튼을 누르면 클립보드에 프롬프트의 내용이 복사됩니다.
(여기에 'ai-9-1-센서-클래스-템플릿.md'의 내용을 붙여 넣으세요)

components:
- sensor_class:
    센서_모델: DHT22
    클래스_이름: DHT22Sensor
    pin_type: pin_gpio 
    key_1: Temperature, 소수점 1자리
    key_2: Humidity, 정수
    temp_unit: C
    라이브러리: |
        import dht 

def main():
    import pinno as P 
    from parse import Parse

    sensor = DHT22Sensor(P.DHT)
    while True:
        data = sensor.read()
        print(data)
        p = Parse(data) 
        print(f'name: {p.name}, {p.keys[1]}: {p.values[1]}, {p.keys[0]}: {p.values[0]}, TempUint: {p.temp_unit}')   

        time.sleep_ms(5000)

if __name__ == '__main__':
    main()

AI가 만든 코드

프로그램: \lib\dht22sensor.py

from machine import Pin
import time
import dht

class DHT22Sensor:
    """
    :param pin_gpio: GPIO 핀 번호를 받아서 DHT22 센서를 초기화
    :param ser: 센서의 고유 식별자 (시리얼 번호 등)
    """
    def __init__(self, pin_gpio, ser=None):
        # DHT22 모델 설정
        self._model = "DHT22"
        self._model_ser = f"{self._model}_{ser}" if ser else self._model
        self.pin_gpio = pin_gpio
        self.temp_unit = "C"
        self.sensor_instance = dht.DHT22(Pin(pin_gpio))
        self._key = ["Temperature", "Humidity"]
        self._value = [None, None]

    def read(self):
        try:
            # 센서 값 읽기
            self.sensor_instance.measure()
            temp = round(self.sensor_instance.temperature(), 1)  # 소수점 1자리로 설정
            hum = int(self.sensor_instance.humidity())           # 정수로 설정
            self._value = [temp, hum]
            return {
                "TempUnit": self.temp_unit,
                self._model_ser: {
                    self._key[0]: self._value[0],
                    self._key[1]: self._value[1]
                }
            }
        except Exception as e:
            print("Error reading from DHT22:", e)
            return None

def main():
    import pinno as P
    from parse import Parse

    sensor = DHT22Sensor(P.DHT, ser="001")  # 예시로 "001"을 ser에 입력
    while True:        
        data = sensor.read()
        print(data)
        p = Parse(data)
        print(f'name: {p.name}, {p.keys[0]}: {p.values[0]}, {p.keys[1]}: {p.values[1]}, TempUnit: {p.temp_unit}')

        time.sleep_ms(5000)

if __name__ == '__main__':
    main()

Copyright © 2025 ·로그인