본문 바로가기
개발 공부/프로젝트

프로젝트 라즈베리파이를 이용해 서버에서 액츄레이터 제어

by momo'sdad 2023. 10. 20.

액츄레이터(LED, 물펌프, 산소발생기, 로봇컨베이어)

from flask import Flask, render_template, request
import requests as req
import time
import RPi.GPIO as gp

btn=req.get("get방식으로 받을 서버주소")
print(btn)
btn.text
print(btn.text)
act1 = btn.text[0]
act2 = btn.text[1]
act3 = btn.text[2]
act4 = btn.text[3]

gp.setmode(gp.BCM)
gp.setup(17, gp.OUT)
gp.setup(18, gp.OUT)
gp.setup(22, gp.OUT)
gp.setup(23, gp.OUT)

while(1) :


  gp.output(17, act1)
  gp.output(18, act2)
  gp.output(22, act3)
  gp.output(23, act4)

  delay(2000)
  
gp.cleanup()

--------------------------사용할 라이브러리------------------------

from flask import Flask, render_template, request # flask, request 라이브러리

import requests as req request 받을 라이브러리

import time delay를 사용할 time 라이브러리

import RPi.GPIO as gp GPIO핀을 사용할 gp 라이브러리

------------------------------------------------------------------------

서버응답코드

btn=req.get("get방식으로 받을 서버주소") # btn = 서버응답코드 200 이면 성공

print(btn)

btn.text # 서버에서 받은 내용 문자열 출력

print(btn.text)

------------ 받은 값을 인덱싱하여 act1~4(액츄레이터)까지로 저장 ------------

act1 = btn.text[0]

act2 = btn.text[1]

act3 = btn.text[2]

act4 = btn.text[3]

라즈베리파이의 GPIO핀번호

gp.setmode(gp.BCM) # BCM타입으로 핀번호 설정

------------------- 17, 18, 22, 23번 핀을 출력핀으로 설정-----------------

gp.setup(17, gp.OUT)

gp.setup(18, gp.OUT)

gp.setup(22, gp.OUT)

gp.setup(23, gp.OUT)

while(1) : # 무한루프로 서버값을 받아옴

gp.output(17, act1) # (act1의 값(0,1)에 따라 17번핀 출력)

gp.output(18, act2) # (act2의 값(0,1)에 따라 18번핀 출력)

gp.output(22, act3) # (act3의 값(0,1)에 따라 22번핀 출력)

gp.output(23, act4) # (act4의 값(0,1)에 따라 23번핀 출력)

delay(2000)

 

gp.cleanup() # 파이썬 프로그램 안에서 초기화했던 핀 설정들을 모두 '청소'(clean up)해주는 기능

반응형