728x90
반응형
SMALL
안녕하세요 땜블리 입니다.
라즈베리파이 피코 베이직 트레이닝 보드를 이용한 블루투스/ SD CARD제어를 진행 하겠습니다.
베이직 트레이닝 보드는 아래에서 확인이 가능합니다.
반응형
(1) 동작 설명
온습도 데이터를 블루투스를 통하여 전송하고 SD CARD에 데이터 저장 하기
라이브러리 추가하기
라이브러리는 아래 사이트에서 받을 수 있습니다.
https://circuitpython.org/libraries
번들 항목에 보면 버전별로 소스와 예제 등 다운 받을 수있습니다.
현재 버전은 boot_out.txt 파일을 열어보면 확인이 됩니다
최신 버전은 8.0.3 으로 8.x 버전의 번들을 다운받아 압축을 풀면 여러 라이브러리가 나오는데 필요한 라이브러리를 lib 폴더에 넣어주면 됩니다.
SMALL
(2) 소스코드
code.py
import board
import busio
import digitalio
import analogio
import sdcardio
import storage
import time
import adafruit_dht
import adafruit_sdcard
# Pin Assignments
LED1 = digitalio.DigitalInOut(board.GP2)
LED1.direction = digitalio.Direction.OUTPUT
LED2 = digitalio.DigitalInOut(board.GP3)
LED2.direction = digitalio.Direction.OUTPUT
CDS_ADC = analogio.AnalogIn(board.GP27)
VR_ADC = analogio.AnalogIn(board.GP26)
DHT_SENSOR = adafruit_dht.DHT11(board.GP7)
# UART Initialization
uart0 = busio.UART(board.GP16, board.GP17, baudrate=115200)
uart0.write(bytearray('pico sensorBoard Test\n', 'utf-8'))
# SD Card Initialization
spi = busio.SPI(board.GP10, MOSI=board.GP11, MISO=board.GP8)
cs = digitalio.DigitalInOut(board.GP9)
sdcard = adafruit_sdcard.SDCard(spi, cs)
vfs = storage.VfsFat(sdcard)
storage.mount(vfs, '/sd')
temp = 0
humi = 0
def read_temperature_humidity():
global temp, humi
try:
temp = DHT_SENSOR.temperature
humi = DHT_SENSOR.humidity
except RuntimeError:
print("Failed to read DHT sensor data")
return
def read_adc_input(ch):
if ch == 0: #VR
VRData = VR_ADC.value
VRDataV = (3.3 / 65535) * VRData
VRDataV = round(VRDataV, 1)
return VRDataV
elif ch == 1: #CdS
CdSData = CDS_ADC.value
CdSDataV = (3.3 / 65535) * CdSData
CdSDataV = round(CdSDataV, 1)
return CdSDataV
def write_to_sdcard():
LED2.value = True
with open("/sd/sample1.txt","a") as f:
f.write("Temperature: {:.0f}C, Humidity: {:.0f}%, VRVolt: {:.2f}V, CdSVolt: {:.2f}V\r\n".format(temp, humi, read_adc_input(0), read_adc_input(1)))
LED2.value = False
while True:
read_temperature_humidity()
print('Temperature = {:.1f}C, Humidity = {:.1f}%'.format(temp, humi))
print('CdS Volt = {:.1f}V, VR Volt = {:.1f}V'.format(read_adc_input(1), read_adc_input(0)))
vrInput = read_adc_input(0)
cdsInput = read_adc_input(1)
uart0.write(("temp: " + str(temp) + 'C' + " Humi: " + str(humi) + '%' +
" CdSV: " + str(cdsInput) + 'V' + " VR_V: " + str(vrInput) + 'V' + '\n').encode())
write_to_sdcard()
time.sleep(0.5)
(3) 동작 결과
728x90
반응형
LIST
'라즈베리파이_피코_피코 W > circuitPython' 카테고리의 다른 글
12. Circuit 파이썬 라즈베리파 피코 W 서보모터 (0) | 2023.03.21 |
---|---|
10. Circuit 파이썬 라즈베리파 피코 W OLED 제어 (0) | 2023.03.19 |
09. Circuit 파이썬 라즈베리파 피코 W DHT11 (0) | 2023.03.18 |
08. Circuit 파이썬 라즈베리파 피코 W 릴레이제어 (0) | 2023.03.17 |
07. Circuit 파이썬 라즈베리파이 피코 W WS2812 제어하기 (2) | 2023.03.16 |
댓글