프롬프트
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()