Python 5

Flask 백엔드 서버 Synology NAS 배포기

간단한 웹서비스 백엔드 서버를 만들일이 있는데 한동안 자바스크립트로만 코딩하다보니 이번에는 Flask로 가볍고 빠르게 만들고 싶었다. 주요 기능은 주기적인 이미지 thumbnail 변환과 디렉토리의 파일 수 및 txt 파일 값 읽고 처리하기 이미지 파일과 짧은 영상 파일을 client 호출에 따라 전달 로그인, 회원가입, 가입승인, 사용자 권한 설정 및 사용자 삭제 등과 같은 기본적인 CRUD 1번 기능은 APScheduler 라이브러리를 사용해서 cron job을 만들고, PIL을 사용해서 thumbnail 만드는 작업이다. cron은 os에서 세팅하는 것이 더 안정적이고 서버 상태와 독립적으로 실행되는 장점이 있겠지만, Synology NAS의 os에서 실행하는 것은 가급적 배제하는 것이 NAS 안정..

Python/Flask 2023.08.23

PWM 주파수 조절발생기 SY-LD213과 라즈베리파이 시리얼 통신하기

라즈베리파이와 주파수 조절 발생기 SY-LD213를 시리얼 통신으로 연결하기 SY-LD213은 디바이스마트에서 파는 PWM 주파수 조절발생기이다. 고가의 function generator를 쓸 필요까지 없는 간단한 PWM 신호가 필요할 때 요긴한데, 우선 저렴해서 좋다. aliexpress에도 비슷한 종류의 제품이 많은데, 우선 바로 사서 해볼 수 있는 디바이스마트에서 구매했다. 가격차이도 별로 안나고. 전압 입력, VIN+에 라즈베리파이에서 공급 전원을 넣어주고, VIN- 에는 라즈베리파이의 그라운드 핀을 연결해주면 된다. 나는 라즈베리파이 전원공급을 파워서플라이를 통해서 했기 때문에 라즈베리파이 power 핀과 ground를 서로 연결했다. 핀 번호로는, 4: 5V PWR 6: GND 8: UART0..

PySerial을 이용한 RS485, modbus-RTU 통신

1. 모드버스 Modbus는 산업용 자동화 및 프로세스 제어 시스템에서 널리 사용되는 통신 프로토콜이다. 1979년 Modicon에서 개발되었으며, 간단하고 안정적인 구조로 인해 여러 장비 및 시스템 간 통신에 이상적이다. Modbus 프로토콜은 주로 마스터/슬레이브 구조로 동작하며, 마스터는 데이터 요청을 보내고 슬레이브는 응답을 제공한다. Modbus 프로토콜에는 두 가지 주요 변형이 있다. Modbus RTU (Remote Terminal Unit): 이진 형식의 프레임을 사용하는 시리얼 통신 프로토콜로, 주로 RS-232 또는 RS-485 인터페이스를 통해 통신 Modbus TCP/IP: 이더넷 기반의 통신 프로토콜로, Modbus RTU의 데이터 패킷을 TCP/IP 패킷으로 캡슐화하여 이더넷 네..

몰라도 괜찮지만 알아도 괜찮은 몇가지 문법/표현[0]

파이썬을 쓰다보면 영어 문장 읽듯 그냥 편하게 쓸 수 있다는 점이 참 좋다. 그런데 가끔은 그렇게 일일이 말하듯 쓰기 보다는 간결하게 쓰고 싶은 생각이 드는데, 그럴 때 사용하면 좋을 몇가지 문법/표현을 소개한다. 1. Conditional Expression (조건 표현, 삼항 연산자) 자바스크립트에서 삼항 연산자는 아래와 같이 심플하게 구현된다. let age = 19 let status = age >= 18 ? "Adult" : "Minor" 파이썬에서는 아래와 같이 가능한데, JS보다는 문장으로 읽힌다. age = 19 status = "Adult" if age >= 18 else "Minor" 읽어보면, status는 Adult이다. 만약 age가 18보다 크거나 같다면. 아니라면 Minor고...

Python/Basics 2023.04.09

Flask로 간단한 웹 서버 만들기

Flask는 Python 웹 프레임워크로, 가볍고 간단하면서도 확장성이 높아 인기가 많은 웹 프레임워크다. Flask로 간단한 웹 서비스를 만들어 봤었고 이것에 대해서 조금 더 기능을 설명하면서 기록하기 위해 작성해본다. Flask 설치 Flask를 사용하기 위해서는 먼저 Flask를 설치해야 해야 한다. pip 으로 Flask를 설치한다. pip install flask Hello World 페이지 만들기 간단한 Hello World가 표시되는 웹 페이지를 만들어볼 수 있다. from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app..

Python/Flask 2023.04.07
728x90