우리 는 이미 GSM과 Arduino를 사용하여 무선 게시판을 구축했기 때문에 무선 게시판에 익숙합니다. 하지만 오늘은 GSM을 무선 매체로 사용하는 대신 인터넷을 사용하여 웹 브라우저 에서 Raspberry Pi에 연결된 LCD로 메시지 를 무선으로 전송합니다. 웹 브라우저를 통해 메시지가 전송되므로 컴퓨터, 스마트 폰 또는 태블릿을 사용하여 전송할 수 있으므로 IoT 프로젝트 컬렉션에 하나 이상의 프로젝트를 추가합니다.
이 웹 제어 게시판 에서는 데모 용 로컬 웹 서버를 만들었습니다. 이것은 인터넷을 통한 글로벌 서버 일 수 있습니다. Raspberry Pi에서는 16x2 LCD를 사용하여 메시지를 표시하고 Flask를 사용하여 네트워크를 통해 메시지를 수신했습니다. Raspberry는 웹 브라우저에서 무선 메시지를 수신 할 때마다 LCD에 표시됩니다. 이 기사에서는 이에 대해 자세히 논의 할 것입니다.
필요한 구성 요소:
- Raspberry Pi 3 (모든 모델)
- Wi-Fi USB 어댑터 (Raspberry Pi 3를 사용하지 않는 경우)
- 16x2 LCD
- 브레드 보드
- Raspberry Pi 용 전원 케이블
- 전선 연결
- 10K 냄비
작업 설명 및 웹 페이지 만들기:
이 프로젝트에서 주요 구성 요소는 이 프로젝트의 핵심 이며이 프로젝트와 관련된 프로세스를 제어하는 데 사용되는 Raspberry Pi 입니다. 예: LCD 구동, 서버에서 "알림 메시지"수신 등
여기에서는 웹 브라우저에서 Flask를 사용하여 Raspberry Pi에 "Notice Message" 를 보내는 방법을 제공하는 웹 서버를 만들었습니다. Flask는 Python 용 마이크로 프레임 워크입니다. 이 도구는 내장 된 개발 서버 및 디버거, 통합 된 단위 테스트 지원, 보안 쿠키 지원 및 사용하기 쉬운 유니 코드 기반으로 애호가에게 유용합니다 .
우리는 한 텍스트 상자와 제출 버튼이있는 웹 페이지를 만들어 우리가 텍스트 상자에 우리의 "알림 메시지"를 입력하고 전송 버튼을 클릭하여 서버에 제출할 수 있습니다. 이 웹 응용 프로그램은 HTML 언어 를 사용하여 개발되었습니다. 이 웹 페이지의 코드는 아래에 나와 있으며 이해하기 매우 쉽습니다.
웹 제어 게시판 (Circuit Digest)
성공적으로 제출 된 알림: {{value}}
{% endif %}사용자는 일부 텍스트 편집기 (메모장)에서 위에 주어진 HTML 코드를 복사하여 붙여넣고.HTML 확장자로 파일을 저장해야합니다. 그런 다음이 HTML 파일을이 웹 제어 게시판에 대한 Python 코드 파일 (마지막에 제공됨)을 넣은 동일한 폴더에 넣으십시오. 이제 Raspberry Pi에서 Python 코드를 실행하고 웹 브라우저에서 IP_address_of_your_Pi: 8080 (예: 192.168.1.14:8080)을 열고 메시지를 입력하고 제출을 클릭하면 메시지를 제출하자마자 메시지가 표시됩니다. Raspberry Pi에 연결된 LCD. 마지막 에 데모 비디오 에서 전체 과정을 확인하십시오.
웹 페이지는 제목 (h1 태그) 웹 컨트롤 게시판 으로 텍스트 상자 와 제출 버튼이 있는 양식 을 포함하는 HTML 언어를 사용하여 생성됩니다. 형태 가 "변화"는 것입니다 액션 사용하여 코드에서 수행됩니다 이후 우리가 버튼을 클릭 제출하면, 방법. 슬라이더 와 블록 레이블이 "주의 메시지".
그 후에 서버를 통해 Raspberry Pi로 보낸 텍스트를 표시하는 선택적 행을 추가 할 수 있습니다.
{% if value %}
성공적으로 제출 된 알림: {{value}}
{% endif %}텍스트 상자의 값을 확인하고 텍스트 상자에 값이 있으면 웹 페이지 자체에 텍스트를 인쇄하여 사용자가 제출 된 메시지를 볼 수도 있습니다. 여기서 '값' 은 슬라이더 상자 또는 텍스트 상자에 입력 할 "입력 텍스트 또는 알림 메시지"입니다.
회로 설명:
이 무선 메시지 보드에 대한 연결 은 매우 쉽습니다. 브레드 보드 위에 일부 커넥터를 사용하여 LCD를 Raspberry Pi 보드에 연결하기 만하면됩니다. 사용자는 연결을 위해 제로 PCB를 사용할 수 있습니다. LCD의 RS, RW, EN 핀은 18, GND, 23 번 핀에 직접 연결됩니다. LCD D4, D5, D6, D7의 데이터 핀은 Raspberry Pi의 GPIO 24, 16, 20, 21에 직접 연결됩니다. 10K 포트는 LCD의 밝기를 제어하는 데 사용됩니다.
또한 Raspberry Pi 3가없는 경우 Raspberry Pi 3과 같은 내장 Wi-Fi가 없기 때문에 낮은 버전의 Raspberry Pi 용 USB Wi-Fi 어댑터를 사용해야합니다.
프로그래밍 설명 및 플라스크:
우리가 사용하는 파이썬 언어 여기에 프로그램을. 코딩하기 전에 사용자가 Raspberry Pi를 구성해야합니다. Raspberry Pi 시작하기 및 Pi에서 Raspbian Jessie OS 설치 및 구성에 대한 이전 자습서를 확인할 수 있습니다.
Raspberry Pi를 프로그래밍하기 전에 사용자는 주어진 명령을 사용하여 Raspberry Pi에 플라스크 지원 패키지를 설치해야합니다.
$ pip 설치 Flask
그 후에 Raspberry Pi의 Python 편집기에서 Python 프로그램을 실행할 수 있지만 그 전에 Program의 IP 주소를 Raspberry Pi의 IP 주소로 바꿔야합니다. ifconfig 명령을 사용하여 RPi 보드의 IP 주소를 확인할 수 있습니다.
Ifconfig
이 프로젝트의 프로그래밍 부분은 모든 작업을 수행하는 데 매우 중요한 역할을합니다. 우선 Flask에 필요한 라이브러리를 포함 하고 변수를 초기화하며 LCD 용 핀을 정의합니다.
플라스크 가져 오기 플라스크에서 플라스크 가져 오기 render_template, gpio import os로 RPi.GPIO 가져 오기 요청, 시간 app = Flask (__ name__) RS = 18 EN = 23 D4 = 24 D5 = 16 D6 = 20 D7 = 21………………..
LCD의 경우 def lcd_init () 함수를 사용하여 LCD를 4 비트 모드로 초기화하고 def lcdcmd (ch) 함수를 사용하여 LCD에 명령을 보내고 def lcddata (ch) 함수를 사용하여 LCD에 데이터를 보내고 def lcdstring (Str) 기능은 데이터 문자열을 LCD로 보내는 데 사용됩니다. 나중에 주어진 코드에서 이러한 모든 기능을 확인할 수 있습니다.
프로그램의 아래 부분은 Flask를 사용하여 웹 브라우저에서 Raspberry Pi로 메시지 를 보내는 데 사용됩니다. 여기에서 Flask를 사용한 프로그래밍에 대해 자세히 알아볼 수 있습니다.
@ app.route ("/") def index (): return render_template ('web.html') @ app.route ("/ change", methods =) def change (): if request.method == 'POST': # 웹 페이지에서 값 가져 오기 data1 = request.form lcdcmd (0x01) lcdprint (data1) return render_template ('web.html', value = data1) if __name__ == "__main__": app.debug = True app.run ('192.168.1.14', 포트 = 8080, 디버그 = True)
그래서 이것이 우리가 컴퓨터 나 스마트 폰에서 라즈베리 파이 LCD로 메시지를 보내고 웹을 통해 제어 되는 IoT 기반 무선 게시판을 만들 수있는 방법 입니다. 아래에서 전체 Python 코드 및 데모 비디오를 확인하십시오.