티스토리 뷰

Intro

OS : Ubuntu 22.04LTS 64bit

HW : Arduino UNO R3 board

Sensor : DS18B20 방수 온도 센서

SW : Visual Studio Code, so-called vscode

python : 3.10

 

 

Requirements

python library

 

 

vscode ext.

-Arduino

-C/C++ Extension Pack

-python

 

 

1. vscode : Arduino-cli 환경 설정

python pip  설치

$ sudo apt update
$ sudo apt install python3-pip
$ pip3 -V

 

arduino board port 확인

arduino-cli 설치 및 serial port 확인

$ wget -qO arduino-cli.tar.gz https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_64bit.tar.gz
$ sudo tar xf arduino-cli.tar.gz -C /usr/local/bin arduino-cli
$ arduino-cli version
$ rm -rf arduino-cli.tar.gz
$ arduino-cli board list

포트                                Protocol타입              Board Name             FQBN           Core

/dev/ttyACM0 serial     Serial Port(USB)       Arduino Uno ....

# Arduino: Select Board Port 설정에서 사용

 

 

Arduino-cli 적용

ard_ds18b20 폴더 생성

vscode project 폴더 열기 : 'ctrl' + 'k' + 'o'

# 참고: ard_ds18b20.ino 아두이노 스케치 파일 생성시 폴더 이름과 동일해야함

 

기본설정: 사용자 설정 열기

vscode 명령어 입력창으로 아래 기술된 보라색은 모두 명령어 입력창을 열고 실행 : 'ctrl' + 'shift' + 'p'

preference: Open User Settings(JSON)

다음과 같이 입력 후 저장 > vscode 재실행하면 적용됨

settings.json
{
	"workbench.colorTheme": "Defalult Dark+",
	"workbench.startupEditor": "none",
	"arduino.defaultBaudRate": 9600,
	"arduino.path": "/usr/local/bin",
	"arduino.commandPath": "arduino-cli",
	"arduino.useArduinoCli": true
}

#참고: arduino-cli path 확인 방법

$ which arduino-cli

 

 

2. vscode : Arduino Board 설정

Arduino: Board Manager

: Arduino AVR Boards install

 

 

Arduino: Board Configuration

: Arduino Uno(Arduino AVR Boards) 선택

>> .vscode 폴더 생성되며 폴더 안에 arduino.json 파일 생성

.vscode/arduino.json
{
	"sketch": "ard_ds1820.ino",
	"output": "build",
	"board": "arduino:avr:uno",
	"port": "/dev/ttyACM0"
}

# "output": "build" 추가

 

Arduino: Library Manager

onewire

dallastemperature

 

Arduino: Select Serial Port

 

 

3. Arduino coding : vscode

ard_ds18b20.ino
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS_1 2

OneWire Wire_1(ONE_WIRE_BUS_1);

DallasTemperature sensor1(&Wire_1);

// arduino board
int baudrate = 9600;

void setup() {
	Serial.begin(baudrate);
	sensor1.begin();
}

void loop()
{
	sensor1.requestTemperatures();
	Serial.println(sensor1.getTempCByIndex(0));
	delay(1000);
}

 

 

4. Arduino verify/upload : 온도 데이터 수집 출력 확인

Arduino: Initialize # Arduino Board가 설정된 상태이며, 다음 buid-up 시 초기화 후 사용 가능

Arduino: Verify

>> build 폴더(빌드파일들)가 생성되며 .vscode 폴더 안에 c_cpp_properties.json 파일 생성

 

## 참고: 더이상 진행이 되지 않는다면 다음 포스트 참조(환경은 macOS이지만 Arduino 설정 설명 상세)

https://jinozblog.tistory.com/178

 

 

Arduino: Upload

 

 

Arduino: Upload

arduino board permmision

sudo chmod a+rw /dev/ttyACM0

 

 

Arduino: Open Serial Monitor

vscode 창 아래 플러그 모양을 클릭해도 됨

>> 아래 출력에서 25.25 1초[delay(1000)]마다 serial 통신으로 데이터가 수신됨을 확인할 수 있다

 

 

 

5. python pyserial library를 이용한 Arduino 온도 데이터 수집 출력 확인

 

python pyserial  설치

$ sudo -H pip3 install --upgrade pip
$ pip3 install pyserial

 

python coding

testDAQ_temp_pyserial 프로젝트 폴더 생성

test.pyserial.py
import serial

serial_port = '/dev/ttyACM0'
serial_baudrate = 9600
ard = serail.Serial(serial_port,serial_baudrate)

while True:
	## ard.readline
	datas_raw = ard.readline()
    ## ard.decode() : readline을 decoding
    datas = datas_raw.decode()[:len(datas_raw) - 2]
    print('--- Arduino Output ---\n{}\n'.format(datas))

 

실행 후 터미털 출력 결과

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함