Python 12

Raspberry Pi에서 유량센서(YF-B10-S)로 유량계산하기

안녕하세요.   이전 글에서 유량센서(YF-B10-S) 제품에 대해서 확인해 보았습니다. 이번 글에서는 실제로 어떻게 값을 구할 수 있는지, Raspberry Pi를 이용해서 확인해 보겠습니다.     YF-B10-S(유량센서) 확인해 보기안녕하세요.  사이드 프로젝트로 유량파악해서 ModbusTCP로 전달이 필요하다는 요청을 받았습니다. 우선 유량을 확인할 수 있는 센서를 확인해 보겠습니다.  파이프 규격과 재질에 따라 가격과remnant24c1.tistory.com  1. 유량센서 테스트 환경  - 라즈베리 파이 CM4 - YF-B10-S 유량 센서 (하네스 SM 3핀 Female 커넥터 장착) - 10kΩ 풀업 저항 (NPN 출력 신호 안정화용) - 점퍼 와이어 혹은 연결 커넥터 하네스 커넥터(SM..

아두이노 나노(Arduino Nano) 33 IoT Web Server에서 데이터 JSON으로 출력하기

안녕하세요.   아두이노 나노 33 IoT로 웹서버를 만들어 보았다면, 아두이노 IoT에서 취득한 센서 정보를 어떻게 가져갈까 고민을 하게 될 겁니다. 그래서 웹 데이터를 Json형태로 바꿔 출력해 주고 다른 응용프로그램에서 웹주소로 접속해서 Json으로 가져오면 되겠다 생각하였습니다.  아두이노 IoT에서 가스 센싱 한 값을 Json으로 인코딩하고 웹서버로 출력해 주고 파이썬에서 JSON 데이터로 읽어오는 테스트를 하였습니다.   이전 "아두이노 나노(Arduino Nano) 33 IoT 고정 아이피 설정 방법"에서 SimpleWebServerWIFI 예제에 JSON 코드를 추가하는 형태로 하였습니다. 1. JSON사전 준비   이미 JSON 사용해보았다면 이 과정은 넘어가도 좋습니다. "툴->라이브러..

Embedded/Arduino 2024.07.03

PyQt5에서 failed to execute script 에러가 발생 시 해결방법 찾기

안녕하세요.  이번에 시리얼 데이터를 화면에 출력해해 주기 위해서 어떤 GUI 툴을 사용해 볼까 하다가 PyQt5를 테스트해 보았습니다.   PyQt 설치하고 하는 것은 문제가 없었는데, 실행파일을 만들고 배포하기 위해 실행파일을 만들면서 에러가 발생하여 해결한 내용이 있어 조금 도움이 될까 해서 공유드립니다.   1. 개발 환경    참조 사이트를 참고하여 최신 PyQt5 설치   개발 툴은 파이참(PyCham)을 설치하고 아나콘다(Anaconda)도 설치해서 필요한 Library를 가져오는 형태를 취하였습니다.   2. 문제 발생 내용   시리얼 통신 소스를 Run(Ctrl + Shift + F10)으로 실행할 경우 에러 발생하지 않고 실행됨  pyinstaller로 실행파일을 만들어 exe파일 실행..

Programming/Qt 2024.06.27

[Python] 필요할 때 찾아보는 연산자(비트연산자, 비교연산자)

안녕하세요.   연산자 확인 2번째 내용으로 나머지 비트연산자와 비교연산자를 확인해 보았습니다. 기존 사용하는 언어와 Python에서 사용하는 것에 차이가 있는지 확인해 보는 시간이 되었으면 합니다. 1. 비트 연산자     단순 비트 연산을 한다면 쉽지만, NOT 연산자를 사용할 때는 한 번쯤 값이 맞는지 출력해 보고 진행해야 합니다. bin(~0b0011) 이라고 하면 출력이 '0b1100' 될 것 같지만 그렇게 되지 않았습니다.  '-0b1101' 로 -가 붙고 +1이 되는 것을 알 수 있습니다. 정확한 것은 모르겠지만, 2의 보수처럼 처리하려고 보이려고 느껴집니다. 비트연산할 때 뒤에 & 연산을 더해주면 생각했던 것과 같이 반전된 결과를 확인할 수 있습니다.   bin(~0b0011 & 0b111..

Programming/Python 2024.06.12

[Python] 필요할 때 찾아보는 연산자, 복합연산자, 우선순위, 시프트 연산자

안녕하세요.  파이썬(Python)을 주 언어로 사용하고 있다면 이미 다 알고 있을 내용이라고 생각됩니다. 그러나 C/C++ 언어나 다른 언어를 사용하고 있다면 파이썬도 다 되는 것인가 혹은 '이거 맞아'라고 확인할 때 보려고 남겼습니다. 1. 기본 연산자   2. 복합 연산자   3. 산술 연산자 우선순위   4. 시프트(Shift) 연산자   도움이 되었으면 합니다.감사합니다.  1. 파이썬으로 다시 배우는 핵심 고등 수학

Programming/Python 2024.05.04

[Python] 거듭제곱, 인수분해 구하는 방법

안녕하세요. “모두의 인공지능 기초 수학” 내용 중 중학교 수학에서 배우는 거듭제곱과 인수분해하는 방법을 파이썬 프로그래밍으로 확인해 보았습니다. 그리고 간단하게 UI를 추가한다면 중학교 수학 답을 알려주는 프로그램으로도 가능해 보였습니다. 1. 거듭제곱 구하는 방법 - 밑 ** 지수로 표현해서 구할 수 있습니다. - 예를 들어 4 ** 3을 하면 4x4x4 이므로 64가 됩니다. - 추가로 거듭제곱 구하는 방법은 책의 뒷부분에도 나오는데, 내장 함수 pow() 함수와 math.pow() 함수를 사용할 수 있습니다. - 내장 함수 pow의 경우 인자가 (base, exp [, mod] )이며 추가로 나머지 연산할 수 있도록 되어 있습니다. 그리고 특징은 base와 exp은 정수형이어야 합니다. 예시에서는..

Programming/Python 2024.03.14

[Python] SymPy 라이브러리를 이용한 방정식 계산방법

안녕하세요. “모두의 인공지능 기초 수학” 도서를 보면서 나중에 사용하면 좋겠다는 생각나는 것들을 실습해 보면서 남겨보려고 합니다. 이 도서에서의 주피터 노트북(Jupyter Notebook)으로 테스트했다고 했으나 현재 다른 Python IDE(Pycharm)를 사용하고 있어서 다른 IDE로 테스트하였습니다. SymPy 라이브러리를 사용하면 수학 시간에 계산하기 힘든 방정식 x, y 값을 구할 수 있습니다. 그러나 수학 시험은 과정도 중요하게 생각하기 때문에 바로 답이 나오는 것은 좋지 않을 수 있지만, 급하게 풀어야 할 방정식이 있다면 바로 사용해도 좋을 듯합니다. 1. 라이브러리 설치 - Python IDE Prompt 창에서 아래와 같이 프로그램 설치를 합니다. > pip install numpy..

Programming/Python 2024.03.12

AT COMMAND로 HTTP 연결시 문제

안녕하세요. CAT.M1 IoT 모뎀을 이용해서 제품 개발하는 중에 AT COMMAND 명령을 통해서 HTTP 연결을 시도해 보았습니다. TCP로 연결은 되었으나 HTTP 구조로 데이터를 전달하려니 문제가 발생했습니다. 첫 번째는 종단을 알려주는 문자를 모르는 듯했습니다. \r\n\r\n\r\n 끝에 6바이트를 붙임으로써 문장의 끝을 알려주는 것이 해결되었습니다. 두 번째로 HTTP1.1 마지막에 호스트가 없다고 리턴 값을 받았습니다. HTTP1.1과 Host: 주소 사이에도 구분해 줄 수 있는 \r\n 2바이트를 추가해 주어야 정상적으로 http response 값을 받을 수 있었습니다. 그러나 모뎀 버퍼가 1500 까지다 보니, 한 번에 웹페이지 전체를 받지 못했습니다. 통째로 받으려면 조금 다른 방..

IT 2024.03.06

[Python] 실제 온도 데이터를 반영한 기간별 온도 가상의 온도 데이터 생성해 보기

안녕하세요. 이번에는 1년 치 가상의 온도데이터를 생성 테스트를 하려고 했는데, 간단하게 Random 함수를 사용하면 되지? 생각했는데, 이렇게 하면 여름에 마이너스 온도가 나오거나 추운 겨울에도 플러스 온도가 나오는 문제가 발생합니다. 그래서 현실온도 데이터를 기반으로 해서 1년 치 혹은 특정 시기의 온도와 비슷하게 가상의 데이터가 생성될 수 있게 Python 코드로 작업해 보았습니다. 기본 아이디어를 GPT에서 틀을 생성하고 나머지 부분들 기능 추가 및 수정 진행했습니다. 어떻게 시작하면 될까라는 부분에 있어서는 GPT의 도움을 받아 보는 것도 나쁘지 않아 보입니다. 그러나 아직까지는 코드를 생성한 후 확인하고 사용해야 할 것 같습니다. 가끔 중간중간에 버그나 수정해주어야 할 부분들이 있기 때문에 자..

Programming/Python 2024.02.23

[인공지능 기초수학] 평균변화율 1

안녕하세요. 인공지능을 하기 위해서 수학기초가 필요합니다. 그래서 길벗에서 나온 책(모두의 인공지능 기초 수학)을 따라 해보며 확인 겸 정리해 보았습니다. 1. 평균변화율 미분은 변화율을 구하는 것으로 x가 변하는 양에 대해 y가 얼마나 변하는지 구하는 변화율로 평균변화율과 순간변화율이 있습니다. 1) 순간변화율 : 순간의 찰나의 변화에 대한 변화율을 구하는 것을 미분이라고 하고, 그 찰나의 변화율을 순간변화율 혹은 미분 계수라고 합니다. 2) 평균변화율 : 함수 y = f(x)가 있을 때 (y의 증가량 = ∆y) / (x의 증가량 = ∆x)을 의미 (예로 x가 2에서 9까지 증가했다면 평균변화율은 ∆x = 9 - 2 = 7 이 됩니다 x가 a에서 b로 변할 때 일반화하면 아래와 같습니다. 다른 방식으로..

Programming/Python 2023.10.30

[Jetson Nano] Jetson Nano에 OpenCV 빌드 및 설치 확인해 보기

안녕하세요. Jetson Nano에서 영상처리를 하는 소프트웨어를 테스트해 보기 위해서 먼저 OpenCV를 설치를 해보았습니다. 어려운 것은 아닌데, 빌드하는 시간이 조금 오래 걸립니다. 그래도 영상처리 프로그램 테스트를 위해서 소스버전으로 설치를 진행해 보았습니다. 1. Jetson Nano에 OS(Ubuntu 18.04) 설치 - Jetson Nano를 사용하기 위해서 SD Card에 Ubuntu를 설치해주어야 합니다. 그 내용은 NVIDIA 사이트를 참고하시면 스텝별로 따라 할 수 있습니다. https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#intro Get Started With Jetson Nano Develop..

Embedded 2023.10.18

[Python] OMP: Error #15: Initializing libiomp5md.dll ... 에러 해결하기

안녕하세요. 개발환경 PyCharm에서 Python 소스로 Yolo 테스트하기 위해서 코딩을 했습니다. 그런데 잠깐 창만 나타났다가 에러 나면서 종료가 되었습니다. 참고 사이트에서 말한 것 처럼 각종 라이브러리를 설치하고 해서 그런 것 같기도 한데 가상환경을 생성해서 하는데도 에러가 발생을 하네요. 1. 오류 내용 OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized. OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can..

Programming 2023.09.26