반응형

아두이노 Arduino 26

아두이노 온도, 습도 값 파이썬으로 그래프 출력 - 커서 값 출력하기(Arduino, Cursor, Python, Cordination, graph)

목차 파이썬으로 그래프 출력 - 커서 값 출력하기#1 이전 글에서 아두이노(Arduino)를 사용하여 온도와 습도 데이터를 랜덤으로 생성하고, 이를 시리얼 통신을 통해 컴퓨터로 전송하였습니다. 컴퓨터는 받은 데이터를 파이썬(Python)을 이용해 그래프로 나타냈으며, 이번 프로젝트에서는 그래프 위에 마우스를 올렸을 때 해당 위치의 온도와 습도 값을 표시하는 이벤트 처리 코드를 작성하는 것입니다. 이를 구현하기 위한 방법을 자세히 설명하겠습니다. 먼저, 아두이노는 온도와 습도 센서를 통해 데이터를 수집합니다. 이 데이터는 아두이노의 시리얼 포트를 통해 컴퓨터로 전송됩니다. 파이썬에서는 pyserial과 같은 라이브러리를 사용하여 이 시리얼 데이터를 읽을 수 있습니다. 데이터를 읽은 후, 파이썬에서는 mat..

아두이노 온도, 습도 값 파이썬으로 그래프 출력하기, 일정 개수만 출력, 버튼으로 그래프 만들기

목차 아두이노 온도, 습도 값 파이썬으로 그래프 출력하기 앞 포스트에서 제작한 프로젝트와 동일하게 센서 없이 아두이노에서 랜덤으로 온도와 습도를 만들어서 시리얼 통신으로 보냅니다. 아두이노 코드는 아래와 같습니다. 아두이노 코드>> void setup() { // 시리얼 통신을 시작합니다. 보드에 맞는 속도로 설정하세요. Serial.begin(9600); } void loop() { // 가상의 온도와 습도 값을 생성합니다. // 예를 들어, 온도는 20~30도 사이, 습도는 40~60% 사이의 값으로 설정할 수 있습니다. float temperature = 20 + random(100) / 10.0; // 20.0 ~ 29.9 사이의 값 float humidity = 40 + random(200) /..

아두이노 온도, 습도 값 파이썬으로 그래프 출력하기(Arduino, Python, Serial, Graph)

목차 아두이노 온도, 습도 값 파이썬으로 그래프 출력하기#1 우선 제가 가지고 있는 것이 아두이노 보드 밖에 없기 때문에 센서 없이 임의로 데이터를 만들어서 온도와 습도 값을 생성하겠습니다. 아두이노 코드>> void setup() { // 시리얼 통신을 시작합니다. 보드에 맞는 속도로 설정하세요. Serial.begin(9600); } void loop() { // 가상의 온도와 습도 값을 생성합니다. // 예를 들어, 온도는 20~30도 사이, 습도는 40~60% 사이의 값으로 설정할 수 있습니다. float temperature = 20 + random(100) / 10.0; // 20.0 ~ 29.9 사이의 값 float humidity = 40 + random(200) / 10.0; // 40...

[아두이노] 일정 시간 간격으로 시리얼 출력하기(Arduino, millis, delay, 1초)

목차 [아두이노] 일정 시간 간격으로 시리얼 출력하기 아두이노에서 1초에 한 번씩 시리얼 데이터를 보내는 코드를 작성하는 것은 비교적 간단합니다. 기본적인 아이디어는 millis() 함수를 사용하여 현재 시간을 체크하고, 마지막으로 데이터를 보낸 시간과 현재 시간의 차이가 1000밀리초(1초) 이상이 되었을 때 데이터를 보내는 것입니다. delay(1000)를 사용하는 경우 정확한 1초의 지연을 보장하지 않는 이유는 아두이노의 delay() 함수가 프로그램의 나머지 부분을 "블록(block)" 또는 일시 중지 시키기 때문입니다. delay(1000)을 호출하면 프로그램은 1000밀리초 동안 아무런 다른 작업도 수행하지 않습니다. 이 기간 동안 센서를 읽거나, 입력을 체크하거나, 시리얼 데이터를 전송하는 ..

[아두이노] 1:1 캔통신 연결하기(Arduino, CAN Communication, Bus, MCP2515)

목차 [아두이노] 1:1 캔통신 연결하기: 준비 이번 실습에서는 MCP2515 CAN 통신 트랜시버를 사용하여 아두이노 보드 간의 1대1 통신을 진행할 것입니다. MCP2515는 Controller Area Network (CAN) 프로토콜을 지원하는 트랜시버로, 자동차 및 산업용 기기에서 널리 사용되는 통신 방식입니다. 먼저, 아두이노 프로그래밍을 위해 아래 웹사이트에서 MCP2515 라이브러리를 zip 파일로 다운로드 받습니다. 이 라이브러리는 아두이노와 MCP2515 모듈 간의 통신을 용이하게 해주며, 송수신 코드를 구현하는 데 필요한 함수들을 포함하고 있습니다. https://github.com/autowp/arduino-mcp2515 실습에서는 두 아두이노 우노 보드를 사용합니다. 하나는 송신측..

Ping이란? CMD, 파이썬으로 예제 실습하기(Window OS)

목차 핑(Ping)이란? 핑(Ping) 명령어는 네트워크 장치 간의 연결 상태와 통신 속도를 검사하는 데 주로 사용되는 도구입니다. 핑은 인터넷 제어 메시지 프로토콜(ICMP) 에코 요청 메시지를 목적지 컴퓨터에 보내고 응답을 기다리는 방식으로 작동합니다. 이 과정을 통해 두 가지 주요한 정보를 얻을 수 있습니다: 응답이 얼마나 반환되었는지, 그리고 그 응답이 반환되기까지 얼마나 걸렸는지입니다. 1. 시간 초과(Timeouts)와 패킷 손실(Packet Loss) 응답이 없거나 지연되는 경우, 이를 '시간 초과'라고 합니다. 이는 대상 장치가 오프라인이거나, 네트워크 경로에 문제가 있음을 나타낼 수 있습니다. 패킷 손실은 보낸 패킷 중 일부가 목적지에 도달하지 못하는 경우를 말합니다. 이는 네트워크 혼잡..

아두이노 데이터 타입 크기 탐색: 시리얼 모니터 출력 예제 실습(Arudino, Data type, uint_8, uint_16)

목차 아두이노 데이터 타입(Arduino Data Type) 아두이노에서 사용되는 여러 데이터 타입들 중 uint8_t와 같은 타입은 일반적으로 정수형 데이터를 저장하는 데 사용됩니다. 아두이노는 C/C++ 기반의 언어를 사용하므로, C/C++에서 흔히 볼 수 있는 데이터 타입들을 사용합니다. 여기에는 여러 가지가 있지만, 주로 사용되는 몇 가지를 소개하겠습니다. 정수형(Integer Types) int: 표준 정수형. 아두이노에서는 보통 16비트를 차지합니다. unsigned int: 부호 없는 정수형. 음수를 포함하지 않고, 같은 크기의 int보다 두 배의 양수 범위를 가집니다. long: 더 큰 크기의 정수를 저장하기 위한 타입. 아두이노에서는 32비트를 차지합니다. unsigned long: 부호..

[Python] 파이썬 실행파일(exe) 만들기(Pyinstaller, Batch file)

목차 Pyinstaller 설치하기 파이썬으로 작성한 코드를 파이썬 툴이 없는 환경에서 실행파일 만으로 실행하고 싶을 때 사용하는 방법입니다. 우선 실행 파일을 만들기 위해서는 pyinstaller 라는 라이브러리 설치가 필요 합니다. 아래와 같이 설치를 진행합니다. pip install pyinstaller 실행 파일 만들기(Exe file generation) 이번에 설치는 앞서 작성한 GPS파일(nmea)을 cvs 파일로 변환하는 예제 파이썬 코드를 변환할 생각 입니다. 해당 코드를 링크를 참조 하십시오(https://scribblinganything.tistory.com/625) 설치는 아래와 같이 간단한 명령으로 완료 됩니다. pyinstaller 파이썬파일명 제가 작성한 파일명은 nmea_to..

[아두이노] 파이썬 threading timer 로 주기적으로 LED 켜고 끄기(타이머, 인터럽트, Interrupt)

목차 [Arduino] Python threading timer 함수 이번 포스트에서는 파이썬의 스레딩(Threading)의 타이머(timer) 함수에 대해 알아보겠습니다. 타이머의 말 자체가 알려 주듯이 타이머는 정해진 시간(Time)이 지났을 때 사용자가 원하는 동작을 하게 도와주는 함수 입니다. Syntax는 아래와 같습니다. 인스턴스명 = threading.Timer(타이머시간, 실행시킬함수명) 인스턴스명.daemon = True 인스턴스명.start() 입력 값에 타이머 시간은 시간 단위이고 밀리초 (mili second)는 소수점 형식으로 표기하시면 됩니다. 실행 시킬 함수 명은 타이머가 시간이 되었을 때 구현할 함수 명을 입력 하시면 됩니다. 리턴 값을 인스턴스(Instance)에 입력 하시..

[아두이노] 파이썬 threading 함수로 통신하기 (threading, target, daemon

목차 [Arduino] 파이썬 threading 함수 사용법 thread 는 실이라는 의미가 있습니다. 파이썬(Python)에서 threading(쓰레드, 드레딩) 이란 CPU 칩이 여러개의 실로 구성되어 있고 한 줄 한줄 다른 일을 처리할 수 있는 것입니다. 일반적으로 코드를 작성하면 위에서 아래로 순차적으로 진행되는 데 하나의 작업이 진행되는 동안 다른 작업을 실행할 수 없습니다. 하지만 thread 를 사용하면 2개 3개 멀티플(Multiple) 한 동작을 동시에 할 수 있게 됩니다. threading 함수에서 사용하는 주인자는 2개 입니다. target : threading으로 동작 시킬 함수를 연결합니다. daemon : True 일 경우 메인 프로그램이 종료 시 threading 함수도 종료 ..

반응형