프로그래밍 298

[Python] 라즈베리파이 GPIO 제어하기 - 기초

개요 라즈베리파이에서 GPIO를 제어하는 방법을 알아보겠습니다. 패키지 설치 라즈베리파이에서 GPIO를 제어하기 위해서는 "RPi.GPIO" 패키지가 필요합니다. 다음과 같이 "RPi.GPIO" 패키지를 설치할 수 있습니다. $ pip install RPi.GPIO GPIO 제어 간단 출력 예제 다음은 GPIO를 이용한 간단한 출력 예제입니다. import time import RPi.GPIO as GPIO LED = 3 # LED 제어용 GPIO 핀 DELAY = 0.3 # GPIO를 BCM 칩 기준으로 GPIO.setmode(GPIO.BCM) # LED 를 위한 핀을 출력으로 설정 GPIO.setup(LED, GPIO.OUT) try: while True: # LED 켜기 GPIO.output(LED..

[Python] 엑셀 파일의 특정 영역의 자료들 수정하기

개요 이번 글에서는 엑셀 파일을 열어서 특정 영역의 자료들를 수정하는 방법을 알아보겠습니다. 기초적인 내용은 앞 글을 참고하시기 바랍니다. "새로운 엑셀파일을 만들고 데이터 입력하기":https://hbesthee.tistory.com/2242 "엑셀 파일을 열고, 배열 데이터 입력하기":https://hbesthee.tistory.com/2243 특정 영역에 대한 자료 입력 방법 아래 코드는 (B2 = 2, 2) ~ (C4 = 4, 3) 특정 영역의 데이터를 주어진 데이터로 수정하는 예제입니다. import openpyxl # 엑셀 파일 열기 workbook = openpyxl.load_workbook('example.xlsx') # 이전에 만든 시트 선택 sheet = workbook['create1..

[Python] 엑셀 파일을 열고, 배열 데이터 입력하기

개요 이번에는 지난 글 ([Python] 새로운 엑셀파일을 만들고 데이터 입력하기)에 이어 엑셀 파일을 열고 특정 위치에 배열 데이터를 입력하는 것에 대하여 알아 보겠습니다. 엑셀 파일 열기 엑셀 파일을 열기 위해서는 openpyxl.load_workbook() 함수를 이용합니다. from openpyxl import load_workbook # 엑셀 파일 열기 workbook = load_workbook('example.xlsx') 열어 놓은 엑셀에 새로운 시트를 만들려면, "create_sheet()" 함수를 이용합니다. new_sheet = workbook.create_sheet('create1') 배열 데이터 입력 방법 1차원 배열을 시트의 "append()" 함수를 이용하면, 손쉽게 입력할 수 ..

[Python] 새로운 엑셀파일을 만들고 데이터 입력하기

개요 파이썬으로 엑셀 파일을 다루기 위해서는 "OpenPyXL" 패키지를 이용합니다. 이번 글에서는 새로운 엑셀 파일을 만들어서 자료를 입력하는 것에 대하여 알아 보겠습니다. "OpenPyXL" 패키지 설치 다음과 같이 "OpenPyXL" 패키지를 간단하게 설치합니다. $ pip install OpenPyXL 엑셀파일을 생성하기 엑셀파일을 생성하기 위해서는 "Workbook" 객체를 생성하면 됩니다. from openpyxl import Workbook # 엑셀 객체 생성 workbook = Workbook() # 활성화된 시트 선택 sheet = workbook.active # 엑셀 파일 저장 workbook.save('example.xlsx') 위 예제와 같이 "openpyxl.Workbook()"를..

[javascript] TamperMonkey - @run-at

문제점 및 증상 TamperMonkey 확장에서 자바스크립트로 youtube 다운로드 버튼을 추가 생성하려할 때 다음과 같은 오류가 발생하며 버튼이 생성되지 않는 경우가 종종 있었습니다. Error youtube download: TypeError: Cannot read properties of null (reading 'insertBefore') at userscript.html?name=Download%2520button%2520for%2520Youtube%2520Downloader.user.js&id=a7dc5884-6ccc-4756-9ef9-6da5ae0b320b:90:7 at Proxy. (userscript.html?name=Download%2520button%2520for%2520Youtub..

프로그래밍 2023.01.07

[Python] libf77blas.so.3: cannot open shared object file

문제점 및 증상 파이썬 프로그램을 실행하였더니, 다음과 같은 오류가 발생하였습니다. pi@raspberrypi:~/work/ $ python3 test_tracking.py Traceback (most recent call last): File "test_tracking.py", line 13, in ... File "/home/pi/.local/lib/python3.7/site-packages/scipy/linalg/misc.py", line 3, in from .blas import get_blas_funcs File "/home/pi/.local/lib/python3.7/site-packages/scipy/linalg/blas.py", line 213, in from scipy.linalg impo..

[nodejs] 구글 2FA 인증을 통한 SMTP 메일 발송 오류 해결기

문제점 및 증상 꽤 오래된 라즈베리파이를 이용하여 서비스에서 구글 메일 발송시 다음과 같은 오류가 발생하는 상황을 해결해 나간 과정을 정리해 둡니다. transporter.sendMail: Error: { Error: certificate is not yet valid at Error (native) at TLSSocket. (_tls_wrap.js:1092:38) at emitNone (events.js:86:13) at TLSSocket.emit (events.js:185:7) at TLSSocket._finishInit (_tls_wrap.js:609:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:439:38) code: 'ECONNECTION', comman..

[Python] numpy.core.multiarray failed to import

문제점 및 증상 새로 설치한 라즈베리파이에서 "opencv"를 이용하여 영상 이미지 처리 관련 프로그램를 실행하였을 때, 다음과 같은 오류가 발생하였습니다. RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd Traceback (most recent call last): File "/opt/flpd/flpd_server.py", line 5, in from cv2 import VideoCapture File "/home/flpd/.local/lib/python3.9/site-packages/cv2/__init__.py", line 181, in bootstrap() File "/home/flpd/.lo..

[Python] libcblas.so.3: cannot open shared object file: No such file or directory

문제점 및 증상 새로 설치한 라즈베리파이에서 "opencv"를 이용하여 서비스를 실행하였을 때, 다음과 같은 오류가 발생하였습니다. flpd@raspberrypi:/opt/flpd $ python flpd_server.py Traceback (most recent call last): File "/opt/flpd/flpd_server.py", line 5, in from cv2 import VideoCapture File "/home/flpd/.local/lib/python3.9/site-packages/cv2/__init__.py", line 181, in bootstrap() File "/home/flpd/.local/lib/python3.9/site-packages/cv2/__init__.py", ..

Let’s Encrypt SSL 인증서 만료 메일 주소 변경 방법

개요 "Certbot"을 이용하여 Let’s Encrypt에서 최초 SSL 인증서를 발급 받을 때(계정을 만들 때) 이메일 주소를 제공한 경우, 인증서가 갱신될 때 만료 통지를 자동으로 보냅니다. 만료 이메일은 SSL 인증서가 만료되기 20일 전에 발송하고, 통지는 만료되기 10일과 1일 전에 각각 발송합니다. 만료 메일 주소 변경 여러 이유로, 만료 메일을 받을 이메일을 변경해야할 수도 있는데, 그럴 경우에 다음과 같이 이메일 주소를 변경할 수 있습니다. certbot update_account --email yourname@example.com "certbot/certbot" 도커를 이용할 경우에는 다음가 같이 만료 이메일 주소를 변경할 수 있습니다. docker run -it --rm --name ..

728x90