Raspberry Pi에서 GPIO 라인을 관리합니다. Raspberry Pi GPIO의 웹 기반 관리. Raspberry Pi에 고정 IP 주소 할당

1998년에 등장한 하이퍼텍스트 커피 메이커 제어 프로토콜 HTCPCP/1.0은 이제 당연히 잊혀졌습니다. 제작자가 넣은 아이디어를 되살리기 위해 Raspberry Pi로 제어되는 커피 메이커를 구현하겠습니다.

많은 커피 애호가들은 잠에서 깨어났을 때 따뜻한 커피를 기다리는 꿈을 꿉니다. 꿈은 "스마트 홈", 컨트롤러, 센서에 대한 대화로 겹쳐졌고 "놀기 위해"Raspberry Pi (RPi) 보드도 주문했습니다. 일반적으로 운명이 결정되었습니다. 1998년에는 인터넷을 통해 커피 메이커를 제어하는 ​​것이 정말 재미있어 보였지만, 요즘에는 직접 제어하는 ​​것이 가능해졌습니다. RPi와 같은 장난감을 사용하면 즐거움이 두 배가 됩니다. 그 배경에서 상자에 먼지를 모으는 Arduino Mega 2560은 어떤 이유에서인지 Wi-Fi, 실드 및 센서가 포함된 80년대와 90년대의 8비트 프로세서 세계에서 우연히 미래로 떨어진 희귀한 것처럼 보입니다. 첨부된.

하지만 커피를 마시러 부엌으로 돌아가자. 릴레이를 사용하여 커피 메이커를 켜고, RPi로 릴레이를 제어하고, Wi-Fi를 통해 브라우저에서 RPi에 액세스합니다. 잠에서 깨어나자마자 휴대전화의 브라우저를 사용하세요. 그리고 우리는 웹캠을 통해 그것이 어떻게 추출되는지 지켜봅니다. 또는 우리가 움직임을 감지하여 주방에 들어가거나 조명을 켜는 순간 커피가 추출되기 시작합니다. 진짜 괴짜는 SSH를 통해 침대에서 커피 메이커를 켤 수 있고, 정말 게으른 사람은 부엌에 들어가기만 하면 되며, 나 같은 간단한 사용자는 브라우저를 통해 켤 수 있습니다.

커피 메이커 선택

커피 메이커에는 거의 필요하지 않습니다. 종류 - 드립: 가격도 훨씬 저렴하고 커피는 내 취향에 따라 에스프레소보다 부드럽다. 그리고 가장 중요한 것은 최소한의 전자 제품입니다. 전체 제어 장치는 단일 기계식 스위치로 구성되어 커피 메이커에 전원을 공급하기만 하면 전원을 켤 수 있습니다. 집에서는 대용량 커피 메이커가 필요하지 않으며 고전력도 필요하지 않습니다. 전류가 낮다는 것은 부품 제어에 대한 수요가 적다는 것을 의미합니다. 이러한 유형의 커피 메이커에서는 준비 과정을 완전히 자동화하는 것이 불가능하지만 매일 저녁 물과 분쇄 커피를 다시 채워야 합니다.

소량 및 전력의 커피 메이커 선택은 작으며 대부분의 제안은 1리터 이상의 용량을 가지고 있지만 거의 즉시 Moulinex BCA 1.L1 Little Solea가 마음에 들었습니다. 전력 640W, 커피포트 0.6l.

우리는 모든 것을 함께 비틀어

RPi 보드의 첫 번째 개정판에는 퓨즈가 불량하여(그림 2) 거의 모든 USB 주변 장치를 추가 전원이 있는 USB 허브를 통해 연결해야 합니다. 이 문제는 이후 개정판에서 수정되었지만 전력 공급이 부족하기 때문에 여전히 USB 허브가 필요할 수 있습니다.

내가 시도한 두 모니터에는 기본 설정에서 화면 가장자리 주위에 검은색 테두리가 있었습니다. 이는 오버스캔 모드 설정으로 해결할 수 있습니다. 제 경우에는 구성 메뉴에서 이 기능을 끄면 해결되었습니다.

운영 체제

현재 주요 운영 체제는 부동 소수점 연산을 위한 하드웨어 보조 프로세서를 지원하는 Debian 기반의 Raspbian입니다. 다운로드 페이지에서는 해당 항목(Raspbian "wheezy" 필요)뿐만 아니라 Linux 기반의 다른 여러 가지 유틸리티도 다운로드할 수 있습니다.

카드 이미지를 디스크에 다운로드하고 압축을 푼 다음 Windows에서 모든 작업이 완료되면 Win32DiskImager 유틸리티(링크는 다운로드 페이지에 있음)를 사용하여 크기가 최소 2GB 이상인 SD 카드에 업로드해야 합니다. . 모든 SD 카드가 작동하는 것은 아닙니다. 호환되는 카드 및 기타 장비 목록이 있지만 이 목록에 있는 카드를 사용한다고 해서 특정 카드가 가짜가 아니라는 보장은 없습니다. 방금 카드에 업로드한 이미지에서 RPi가 부팅되지 않는 경우 가장 먼저 시도할 것은 SD 카드를 교체하는 것입니다.

RPi에 SD 카드를 설치하고 전원을 켜고 부팅하면(기본 사용자 이름 pi, 비밀번호 - raspberry) 초기 구성 메뉴가 표시됩니다. 여기서 파일 시스템을 2GB 이미지에서 전체 SD 카드로 확장해야 하며 SSH를 활성화합니다. 또한 키보드 레이아웃, 언어, 시간대를 설정하고 기본 비밀번호를 변경하는 것이 좋습니다.

RPi를 변경한 후 즉시 RPi의 안정성을 확인하면서 오버클러킹을 별도로 실험하는 것이 좋습니다. 그러나 속도 증가가 시각적으로 눈에 띄기 때문에 시도해 볼 가치가 있습니다. 다음 명령을 사용하여 언제든지 구성 메뉴로 돌아갈 수 있습니다.

$sudo raspi-config

초기 설정을 완료한 후 재부팅합니다.

$ sudo 재부팅

다음 단계는 패키지를 업데이트하는 것입니다. RPi 개발은 매우 활발하며 주요 업데이트가 자주 출시됩니다.

$ sudo apt-get 업데이트 $ sudo apt-get 업그레이드

이더넷 및 Wi-Fi 설정

제가 가지고 있던 D-Link DWA-140 B2 Wi-Fi 카드가 호환 장비 목록에 있었습니다. 연결하고 성공적으로 식별되었는지 확인했습니다.

$lsusb<..>버스 001 장치 006: ID 07d1:3c0a D-링크 시스템 DWA-140 RangeBooster N 어댑터(rev.B2) $ iwconfig lono 무선 확장. eth0에는 무선 확장이 없습니다. wlan0 IEEE 802.11bgn ESSID:off/any 모드:관리형 액세스 포인트: Not-Associated Tx-Power=20dBm 재시도 장기 제한:7 RTS thr:off 조각 thr:off 전원 관리:on

설명서에 따라 Wi-Fi를 구성할 수 있습니다.

SSH와 VNC

SSH 서버 시작은 초기 구성 메뉴에서 허용됩니다. Windows 시스템에서 액세스하려면 Android 휴대폰(Irssi ConnectBot)에서 Putty를 사용할 수 있습니다. 하지만 여기서는 맛과 색상에 관한 것입니다 ...

SSH가 충분하지 않고 RPi 데스크톱에 액세스해야 하는 경우(예: Motion으로 촬영한 사진을 로컬 컴퓨터에 복사하지 않고 보기 위해) TightVNC에서 vncviewer를 통해 얻을 수 있으며 androidVNC를 사용하여 Android에서 액세스할 수 있습니다. 이렇게 하려면 bit.ly 및 bit.ly의 권장 사항을 사용하여 VNC를 설치해야 합니다.

웹 캠과 모션

내 버전은 Logitech HD Webcam C525를 웹캠으로 사용합니다. 새 웹캠을 구입할 때 RPI 호환 장비 목록을 확인하는 것이 좋습니다. 일부 장비에는 추가 전원이 필요한 USB 허브가 필요할 수 있습니다. "작동 장치" 및 "작동하지 않는 장치" 링크를 사용하여 모션 호환성을 확인하는 것도 좋습니다. 카메라가 "작업 장치" 목록에 없다고 해서 작동하지 않는다는 의미는 아니지만 두 번째 목록에서 카메라를 구입할 가치가 전혀 없습니다.

$lsusb<..>버스 001 장치 007: ID 046d:0826 Logitech, Inc.

카메라에서 스크린샷을 찍어 카메라를 확인할 수 있습니다.

$ sudo apt-get 설치 uvccapture $ uvccapture -S80 -B80 -C80 -G80 -x800 -y600

snap.jpg 파일은 현재 디렉터리에 나타나야 하며(오류 메시지가 있는 경우에도) 이미지 뷰어를 사용하여 RPi에서 열 수 있습니다. Motion은 카메라의 신호를 모니터링하는 애플리케이션으로, 이미지의 상당 부분이 변경되었는지(즉, 프레임의 움직임 감지) 확인하고, 이 경우 이미지를 저장하고 외부 프로그램을 실행할 수 있습니다. 프로젝트 홈페이지.

$ sudo apt-get 설치 모션

모션이 자동재생되도록 허용하려면:

$ sudo nano /etc/default/motion # 모션 데몬을 활성화하려면 "yes"로 설정 start_motion_daemon=yes

외부 호스트에서 Motion 웹 인터페이스에 대한 액세스를 허용합니다.

$ sudo nano /etc/motion/motion.conf 웹캠_localhost 끄기 control_localhost 끄기

동일한 파일에는 동작 감지, 카메라 녹화 시작 및 종료, 동작 감지 시 외부 프로그램 실행에 대한 설정이 저장됩니다.

$ sudo nano /etc/motion/motion.conf # 모션 프레임 감지 시 실행되는 명령 (기본값: 없음) on_event_start sudo /home/pi/motion-det

/home/pi/motion-det - 모션이 감지되면 실행될 스크립트입니다. 포트를 관리하려면 루트 권한이 필요합니다. sudoers 목록에 사용자 Motion(motion)을 추가합니다.

$ sudo visudo

파일 끝에 다음 줄을 추가합니다.

모션 ALL=(ALL) NOPASSWD: ALL

콘솔에 정보 출력을 사용하여 실행합니다.

$ sudo 모션 -n

Motion이 실행 중일 때 브라우저에서 //:8080으로 설정을 변경할 수 있습니다.

대신 RPi의 실제 IP 주소를 대체해야 합니다. //:8081에서 카메라의 이미지를 볼 수 있습니다.

Firefox에서는 이미지가 올바르게 업데이트되지 않을 수 있습니다. Chrome에서는 모든 것이 정상입니다. RPi에 사전 설치된 브라우저에서는 이를 전혀 표시할 수 없습니다. 모션 감지를 구성하기 위한 구성 모드가 제공됩니다.

$ sudo 모션 -s

이 모드에서는 카메라 이미지를 볼 때 모션 감지 자체가 다른 색상으로 표시되며 설정 페이지에서 감지 매개변수를 조정할 수 있습니다.

카메라의 이미지는 /tmp/motion 디렉토리에 저장됩니다. 개별 이미지의 기본 형식은 jpg이고 비디오의 경우 swf입니다. 형식은 구성 파일에서 변경할 수 있습니다. 다음과 같이 파일 저장을 비활성화할 수 있습니다.

Output_normal 꺼짐 ffmpeg_cap_new 꺼짐

GPIO 포트 - 기능 및 제어

RPi에는 I/O 포트가 내장되어 있습니다. GPIO(General Purpose Input/Output), 즉 범용 입출력 포트라고 합니다. 엄밀히 말하면 간단한 PC에 액츄에이터를 연결하면 문제가 없지만 주방에 PC를 두는 것은 어떨까요? 이것이 바로 저렴하고 소형인 RPi의 장점입니다. 이는 액추에이터 옆에 쉽게 배치할 수 있습니다.

GPIO 포트는 3.3V 레벨에서 작동하지만 RPi 보드는 포트를 보호하지 않으며 실수로 5V가 단락되면 치명적일 수 있습니다.

포트 배선 및 다양한 프로그래밍 언어에서 액세스하는 예는 bit.ly/StAJXA에 나와 있습니다.

보드에는 Revision 1과 2의 두 가지 기본 버전이 있으며 배선과 포트 할당이 약간 다릅니다. 버전을 확인하려면 cat /proc/cpuinfo 명령을 입력하고 표에서 하드웨어 개정 코드를 찾아야 합니다. 개정 1과 2의 차이점에 대한 추가 정보가 있습니다.

계속 사용할 +5V 및 3.3V 전원 공급 장치, 접지(GND) 및 GPIO 4 포트는 두 버전 모두 동일한 핀에 배치됩니다. RPi 개발자는 포트가 올바르게 연결되지 않은 경우 포트 또는 전체 RPi가 태워질 위험이 있음을 반복적으로 지적합니다. 이러한 일이 발생하지 않도록 하려면 포트를 잘못된 동작으로부터 보호하는 것이 좋습니다. 포트 보호 체계(및 다양한 주변 장치 연결 예)를 볼 수 있습니다.

포트 액세스

포트를 관리하는 가장 쉬운 방법은 명령줄을 이용하는 것입니다. 포트 상태는 전압계로 확인할 수 있습니다. 모든 작업은 루트에서 수행됩니다.

$ sudo -i

포트 시작하기:

$ echo "4" > /sys/class/gpio/export

작동 모드 - 출력:

$ 에코 "아웃" >

출력 값:

$ echo "1" > /sys/class/gpio/gpio4/value $ echo "0" > /sys/class/gpio/gpio4/value

작동 모드 - 입력:

$ echo "in" > /sys/class/gpio/gpio4/direction

$ 고양이 /sys/class/gpio/gpio4/값

포트 작업을 중지합니다.

$ echo "4" > /sys/class/gpio/unexport

나중에 사용할 특정 포트를 제어하는 ​​스크립트를 준비해 보겠습니다.

$ sudo nano 스위치_gpio

#! /bin/bash PORT_NUM=$1 만약 [ $2. == "켜요." ]; then NEW_VALUE=1 else if [ $2. == "꺼져." ]; then NEW_VALUE=0 else echo "사용법: $0 PORT_NUM on|off" exit fi fi # 출력용 GPIO 포트 구성 if [ ! -e /sys/class/gpio/gpio$PORT_NUM ] then echo $PORT_NUM > /sys/class/gpio/export fi # 이전 상태 읽기 OLD_VALUE=$(cat /sys/class/gpio/gpio$PORT_NUM/value) if [ $OLD_VALUE == 1 ]; then OLD_VALUE_TEXT="on" else OLD_VALUE_TEXT="off" fi echo "out" > /sys/class/gpio/gpio$PORT_NUM/direction echo -ne "GPIO "$PORT_NUM"을 "$OLD_VALUE_TEXT"에서 "$2"로 전환합니다. .." echo $NEW_VALUE > /sys/class/gpio/gpio$PORT_NUM/value echo " 완료."

공연권:

$ chmod +x 스위치_gpio

그리고 확인해 봅시다:

$ switch_gpio 4 켜짐 $ switch_gpio 4 꺼짐

릴레이 모듈

릴레이 연결은 이 기사의 다이어그램에 따라 구현됩니다. 정상 위치에서 GPIO 포트의 출력이 논리 0 및 0 전위이면 트랜지스터가 닫히고 부하에 전압이 공급되지 않습니다. GPIO에 논리를 적용하면 저항을 통해 3.3V가 트랜지스터를 열고 전류가 흐르고 릴레이가 작동합니다. 다이오드는 릴레이가 꺼질 때 음의 서지를 제거하도록 설계되었습니다.

또 다른 릴레이가 사용되며(조금 나중에 자세히 설명) 다이오드가 있는 트랜지스터가 사용됩니다. 특성이 비슷합니다. 저항 R1(1kOhm), 다이오드 유형 KD522(1N4148), 트랜지스터 H547. 이 기사에는 아날로그를 선택하는 방법에 대한 권장 사항이 포함되어 있습니다. 또한 릴레이가 켜졌을 때 포트의 출력 전류를 확인하는 것도 좋습니다.


회로에 연결된 부하는 640W입니다. 이는 220V의 전압에서 전류가 640W / 220V = 2.9A가 됨을 의미합니다. 릴레이에 대한 또 다른 요구 사항은 두 개의 와이어가 동시에 닫히고 열리고 부하의 전원이 완전히 차단된다는 것입니다. 이러한 요구 사항에 적합한 옵션 중 하나는 5V에서 제어되고 최대 8A 250V AC로 전환할 수 있는 TRIL-5VDC-SD-2CM-R 계전기입니다.

접촉 프로토타이핑 보드에서 설치를 시작할 수 있습니다. 물론 심각한 작업에는 적합하지 않지만 이와 같은 작은 회로는 빠르게 조립하고 디버깅할 수 있습니다. 먼저 별도의 +5V 소스에서 전원을 공급하고 RPi에 연결하지 않고 모든 것을 확인하고 포트 연결을 저항과 +5V 버튼으로 교체하고 모든 전류를 측정하고 연결용 커넥터를 설치합니다. 메인 RPi 보드. 이러한 보드에 220V를 연결하는 것은 절대 불가능하므로 납땜 인두를 들고 인쇄 회로 기판으로 옮겨야 합니다.

메인 RPi 보드에 연결하려면 한 쌍의 커넥터와 플랫 케이블로 케이블을 조립하고 필요한 포트가 이미 라우팅되어 있고 주변 장치의 케이블에 전원이 공급되는 중간 보드에 연결할 수 있습니다. 더 이상 26선이 아닌 4선 깃털이 단 하나만 있습니다. 220V용 터미널 블록을 추가하여 첫 번째 옵션과 정확히 동일하게 조립된 회로 기판에 연결됩니다. 단면적이 0.75인 와이어를 사용하여 터미널 블록을 릴레이에 납땜합니다. 릴레이를 클릭하여 테스터로 회로의 기능을 주의 깊게 확인하십시오. 또한 토양을 희석할 수 있습니다. 그런 다음 단면적이 0.75인 터미널에 와이어를 연결합니다. 그 중 하나에는 플러그가 있고 다른 하나에는 와이어용 소켓이 있습니다.


다음으로 조심하고 조심하십시오. 50Hz 주파수의 220V는 전압입니다. 부주의하게 취급하면 RPi가 타는 것보다 결과가 훨씬 더 비극적일 수 있습니다. 릴레이 보드의 납땜 상태를 육안으로 확인하고 220V 전선이 터미널 블록에 단단히 고정되어 있는지 확인하십시오. 실수로 열린 라이브 접점을 건드리지 않도록 보드를 고정하거나 닫힌 케이스에 설치하는 것이 더 좋습니다. 우리는 시간을 들여 모든 단계에서 테스터와 지속적으로 확인합니다. 메인 RPi 보드에서 릴레이 보드를 분리하고 220에 연결합니다. 연기가 없습니다. 네트워크 연결을 끊고 메인 RPi 보드를 연결한 다음 220에서 다시 켭니다. 다시 연기가 없으며 RPi가 살아 있습니다. 릴레이를 클릭하면 소켓에 220이 표시됩니다. 릴레이와 220을 끄고 테이블 램프를 소켓에 연결하고 220을 적용하고 릴레이를 클릭합니다. 만세!

쌀. 5. 인쇄 회로 기판에 납땜된 릴레이 모듈의 두 번째 버전
중간 스위치 보드 포함

우리는 한숨을 쉬고 릴레이 보드를 케이스에 영구적으로 설치한 후 커피 메이커를 부하로 사용하여 최종 버전을 시험해 봅니다.

WEBIOPI를 이용한 포트 관리

웹을 통해 GPIO 포트에 액세스하는 가장 쉬운 방법은 WebIOPi를 설치하는 것입니다. 포트의 방향(입력/출력)을 시각적으로 설정하고, 입력 중 상태를 확인하고, 출력에 대한 값을 설정할 수 있는 애플리케이션입니다.

설치에 대해 자세히 설명되어 있습니다.

$ sudo apt-get apache2 php5 설치

작동하기 위해 WebIOPi는 다시 쓰기 모듈 및 구성 재정의(.htaccess)를 사용합니다.

$ sudo a2enmod 다시 쓰기 $ sudo nano /etc/apache2/sites-enabled/000-default

장에서 "AllowOverride None" 행을 "AllowOverride All"로 변경합니다.

옵션 인덱스 FollowSymLinks MultiViews AllowOverride All 주문 허용, 거부 모두 허용

sudoers 목록에 Apache 사용자(www-data)를 추가합니다.

$ sudo visudo

파일 끝에 다음 줄을 추가합니다.

www-데이터 ALL=(ALL) NOPASSWD: ALL

아파치를 다시 시작하십시오:

$ sudo /etc/init.d/apache2 재시작

$ wget //webiopi.googlecode.com/files/WebIOPi-0.3.tar.gz $ tar xvzf WebIOPi-0.3.tar.gz

파일을 적절한 디렉터리로 이동합니다.

$ sudo mv webiopi /var/www

기본 인터페이스는 //localhost/webiopi에서 사용할 수 있습니다.

RPi에서 직접 페이지를 열려면 Chromium이나 Midori에서 이 작업을 수행해야 합니다. NetSurf나 Dillo에서는 JavaScript 지원이 부족하기 때문에 작동하지 않습니다.

모든 것을 하나로 연결

웹을 통해 브라우저에서 포트를 제어하려면 WebIOPi 웹 인터페이스로 충분하며 필요에 따라 구성할 수 있습니다. 모션이 감지되었을 때 릴레이를 켜려면 아침의 지정된 시간(예: 8:00)에 모션 시작을 /etc/crontab에 추가하세요.

0 8* * * echo $(date)": "$(서비스 모션 시작) >> /var/log/motion_start.log

크론탭 /etc/crontab

Motion에서 실행될 스크립트를 만들어 보겠습니다.

$ 나노 /home/pi/motion_det

#!/bin/bash /home/pi/switch_gpio 4 켜짐 서비스 모션 중지 절전 1800 /home/pi/switch_gpio 4 꺼짐

공연권:

Chmod +x /home/pi/motion_det

이제 아침 8시에 모션이 실행되어 움직임을 감지하기 시작합니다. 모션이 감지되면 Motion_det 스크립트가 실행되어 GPIO 4 포트에 논리적 1을 출력하고 릴레이에 전압을 적용하고 커피 메이커를 켜고 모션을 중지하고 30분 동안 기다린 후 동일한 포트에 논리적 0을 출력합니다. , 부하를 끕니다.

결론

대부분의 구성 요소는 Chip and Dip에서 구입했습니다(하우징, 케이블 글랜드, 보드, 어댑터 등 포함). 가고, 보고, 만질 수 있는 좋은 선택을 갖춘 가게이지만, 싸지는 않고 훨씬 더 저렴한 곳도 있습니다. RPi가 배송될 때까지 오랜 시간을 기다리고 싶지 않은 사람들은 이미 Terraelectronics에서 25달러는 아니지만 이미 구매할 수 있습니다.

겨울 아침의 어둠을 피하기 위해 카메라 대신(또는 추가로) IR 모션 센서를 연결할 수 있습니다. 자동 에스프레소 메이커 사용법을 익혀두면 다음날 아침 커피를 리필할 걱정이 없습니다. ZygBee를 통해 릴레이를 연결하고 침실 램프와 같은 다른 액추에이터를 추가할 수 있습니다. 3G 모뎀을 연결하여 SMS를 통해 제어를 구현하거나 Asterisk 또는 Freeswitch를 설치하여 DTMF를 통해 일반 전화에서 제어를 구현할 수 있습니다. 또는 Android 및 iPhone/iPad용 애플리케이션을 작성할 수도 있습니다.

많은 옵션이 있으며 RPi의 출현으로 프로그래밍과 실제 세계 사이의 경계를 실험할 수 있는 능력이 극적으로 확장되었습니다. 예, 물론 내년 4월 1일에는 RFC 2324 표준에 대한 완전한 지원을 고려해야 합니다.

7. Raspberry Pi에 설치된 프로그래밍 도구 알아보기

Raspbian OS에서 프로그래밍을 배우기 위해 Python, Scratch, Node-RED, SonicPi 및 Wolfram Mathematica 패키지가 사전 설치되어 있습니다. Raspberry Pi 프로젝트가 몇 년 전에 만들어진 것은 프로그래밍과 물리적 컴퓨팅 학습을 가능한 모든 사람이 접근 가능하고 편리하게 만들기 위해서입니다! 그렇다면 RasPi에 사전 설치된 개발 도구를 세 단어로 표현하면 무엇입니까?

Python을 소개할 필요가 없습니다. Python은 대학과 과학계에서 가장 인기 있는 프로그래밍 언어입니다. Python이 GPIO를 통해 센서와 작동할 수 있도록 라이브러리가 작성되어 사전 설치되어 있습니다. 일반적으로 pip 도구를 통해 말 그대로 수천 개의 Python용 라이브러리를 설치하여 물리적 컴퓨팅 및 과학적 컴퓨팅의 모든 실제 문제를 해결할 수 있습니다.
Python 언어 자체, IDLE 개발 환경이 포함된 버전 2 및 3 외에도 Raspbian OS에는 인기 있는 Minecraft Pi 게임의 특별 버전과 게임 제어용 Python 라이브러리가 사전 설치되어 있습니다. (소개는 및 참조)
Node-RED는 "사물 인터넷"을 만들기 위한 IBM의 오픈 소스 시각적 편집기입니다. 이를 통해 기성 모듈을 연결하여 사실상 프로그래밍 없이 "스마트 홈"과 같은 시스템을 위한 매우 복잡한 애플리케이션을 "조립"할 수 있습니다. (소개는 및 참조)
스크래치 언어는 아이들이 Drag&Drop 방식을 사용하여 애니메이션과 게임을 만들 수 있는 시각적 프로그래밍 툴킷입니다. (소개는 및 참조)
독특한 SonicPi 언어를 사용하면 음악을 프로그래밍할 수 있습니다. (소개는 참조)
Wolfram과 Mathematica는 세계에서 가장 완벽한 고급 기술 컴퓨팅 시스템입니다. 학교와 대학생 모두의 기술적 계산에 없어서는 안될 보조자가 될 것입니다. Windows용 제품은 유료이지만 Raspbian OS에는 모든 기능을 갖춘 무료 버전이 설치되어 있습니다.
(소개는 및 참조)
또한 Raspbian OS에는 Node.js, Perl 및 Ruby가 사전 설치되어 제공됩니다.
편리한 코드 작업을 위해 Raspberry Pi에는 구문 강조 기능과 Geany 개발 환경을 갖춘 최고의 편집기 중 하나가 사전 설치되어 있습니다.

8. 실패 후 Raspberry Pi 복원


새로 설치된 하드웨어나 소프트웨어가 호환되지 않아 시스템을 시작할 때 오류가 발생하는 상황이 발생할 수 있습니다. 예를 들어, Raspberry Pi 3 설정에는 Open GL 옵션이 있지만 실습에서 알 수 있듯이 이 옵션을 활성화하면 시스템 부팅 오류가 발생합니다.
경험에 따르면 Raspberry Pi에는 부팅 실패 후 여러 가지 복구 옵션이 있습니다.

1) Win32DiskImager를 사용하여 최신 microSD 카드 백업으로 롤백합니다.
Win32DiskImager 프로그램을 사용하여 시스템의 안정적인 버전 이미지를 더 자주 생성하면 오류가 발생하는 경우 시스템이 몇 분 안에 복원되는지 확인할 수 있습니다.

2) 카드 리더기를 사용하여 컴퓨터의 microSD 카드에서 구성 파일 config.txt를 편집합니다.
예를 들어 Open GL에 오류가 발생한 경우 config.txt 파일의 마지막 줄 "dtoverlay=vc4-kms-v3d"에 # 기호를 사용하여 주석 처리해야 시스템이 정상적으로 시작됩니다.

3) SSH 터미널을 통해 네트워크를 통해 Raspberry Pi에 원격 연결합니다.
예를 들어 Open GL을 켤 때 동일한 로딩 오류가 발생하는 경우 시스템 커널을 로딩한 후 SSH 서버가 백그라운드에서 시작되고 계속 작동하는 경우가 많습니다. SSH 터미널을 통해 Raspberry Pi 콘솔에 로그인하거나, 구성 파일(boot/config.txt)을 편집하거나, raspi-config를 실행하고 잘못된 옵션을 비활성화할 수 있습니다.

4) 시스템을 청소합니다.

패키지 캐시 제거:
sudo apt-get clean
고아 패키지를 제거합니다.
sudo apt-get 자동 제거
업데이트 패키지 목록:
sudo apt-get 업데이트
종속성을 수정합니다.
sudo apt-get -f 설치
패키지 설치가 중단된 경우 패키지를 다시 설치하세요.
sudo apt-get install --reinstall package_name

9. 라즈베리파이 원격제어(SSH/VNC)



다른 Unix 시스템과 마찬가지로 Raspberry Pi도 여러 가지 방법으로 원격으로 제어할 수 있습니다.
가장 간단한 방법은 SSH 프로토콜을 통해 콘솔에서 관리하는 것입니다. 이를 가능하게 하려면 Raspberry Pi 설정(sudo raspi-config)으로 이동하여 "Interfacing options" 메뉴 항목을 선택하고 다음 창에서 "SSH"를 선택한 후 시작 시 SSH 서버 활성화를 확인해야 합니다. 사용자 "pi"의 기본 비밀번호를 "raspberry"에서 영어 레이아웃에서 최소 8자를 포함하는 다른 비밀번호로 즉시 변경하는 것이 좋습니다.
그런 다음 무료 SSH 클라이언트 PuTTY를 다른 컴퓨터에 다운로드하여 실행하고 "호스트 이름(또는 IP 주소)" 줄에 Raspberry Pi의 로컬 IP 주소를 입력할 수 있습니다. 로그인 요청이 콘솔에 표시되고 그 뒤에 비밀번호가 표시됩니다. 모두 올바르게 입력했다면 Raspberry Pi 환영 메시지와 녹색 명령 입력 커서가 나타납니다. SSH 터미널을 통해 프로그램 설치 및 제거, 파일 복사, 이동 및 삭제, 시스템 콘솔 명령 및 스크립트(BASH, Python, Perl...) 실행, Raspberry Pi 구성 파일 작업 등을 수행할 수 있습니다. 즉, Unix 시스템 콘솔에서 사용할 수 있는 다양한 작업을 모두 수행합니다. SSH 터미널을 통해서도 작동하는 MC 파일 관리자와 같은 콘솔 편집기에서 많은 작업을 수행하는 것이 더 편리합니다.
콘솔에 대한 터미널 액세스 외에도 Raspberry Pi에는 그래픽 인터페이스에서 완전히 제어할 수 있는 기능이 내장되어 있습니다. 이를 위해 Raspberry Pi에는 무료 버전의 VNC 서버가 사전 설치되어 있습니다. 이전에 SSH 서버를 활성화했던 동일한 위치에서 자동 실행을 활성화할 수 있습니다. 다음 메뉴 항목 "인터페이싱 옵션" - "VNC"를 선택하고 서버 켜기를 확인해야 합니다. Raspberry Pi에 완전히 액세스하려면 무료 VNC 뷰어를 다운로드하여 실행한 다음 SSH의 경우와 마찬가지로 Raspberry Pi의 로컬 IP 주소를 입력해야 합니다. 인증 절차를 완료하면 마치 연결된 디스플레이 앞에 있는 것처럼 키보드를 누르고 마우스를 클릭하는 것처럼 Raspberry Pi로 이동하게 됩니다. VNC 클라이언트는 Raspberry Pi 자체보다 약간 느립니다. 메뉴는 거의 같은 속도로 열리며 그래픽 파일만 열었을 때 즉시 그려지지 않으며 약간의 지연이 발생합니다.
SSH 및 VNC를 통해 Raspberry Pi에 원격으로 연결할 때 장치를 로컬 네트워크 및 전원 공급 장치에만 연결하면 됩니다. 키보드, 마우스 및 모니터가 Raspberry Pi에 연결되지 않았을 수 있습니다. 라즈베리를 웹 서버나 IoT 서버(스마트 홈 센서 관리 서버)로 구성할 때 편리합니다.

그런데 기본적으로 VNC의 가상 화면 크기는 너무 작습니다(640x480픽셀). VNC를 통해 원격으로 연결할 때 편안한 화면 해상도(1024x768)를 설정하기 위한 작은 "해킹"은 다음과 같습니다.

편집을 위해 Raspberry Pi 구성 파일을 열어 보겠습니다.
sudo nano /boot/config.txt
주석 처리를 해제하고(왼쪽의 # 기호 제거) 다음 줄을 약간 수정해 보겠습니다.
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=16

10. LAMP 인터넷 개발자 소프트웨어 키트 설치

인터넷이 미래라고 믿는 사람이 나뿐만이 아니기 때문에 젊은 프로그래머의 컴퓨터에는 인터넷 프로그래밍, 웹 사이트 생성 및 관리의 기본을 배울 수 있는 기회를 제공하는 소프트웨어 패키지가 설치되어 있어야 합니다. Linux OS의 인터넷 개발자 환경에 대해 일반적으로 인정되는 표준은 Apache 웹 서버, MySQL SUDB 및 PHP 프로그래밍 언어(LAMP)로 구성된 프로그램 세트입니다. 데이터베이스 관리를 쉽게 하려면 PHPMyAdmin 소프트웨어를 설치하는 것이 좋습니다(모든 프로그램은 무료로 배포됩니다). Raspberry Pi 오프사이트의 단계별 지침에 따라 30분 만에 LAMP와 가장 널리 사용되는 콘텐츠 관리 시스템(CMS) Wordpress가 Raspberry에 설치되고 작업용으로 구성되었습니다. 나는 이 과정이 나보다 더 오래 걸리지 않도록 설명과 함께 단계별 지침을 제공합니다.


1. Apache2 서버 설치(<1 мин)
sudo apt-get 설치 apache2 -y
Apache 작동 확인
링크2 http://192.168.0.100
사이트 폴더 보기
CD /var/www/html
ls -al

2. PHP 5 설치(1분)
sudo apt-get 설치 php5 libapache2-mod-php5 -y
sudo 서비스 apache2 다시 시작
테스트 페이지 만들기
sudo rm index.html
sudo nano index.php

PHP 작동 확인 중
링크2 http://192.168.0.100

3. mysql 5 설치(3분)
sudo apt-get 설치 mysql-server php5-mysql -y
sudo 서비스 apache2 다시 시작

Apache 사용자에게 권한 할당
sudo chown -R www-데이터: .

MySQL 데이터베이스 생성
mysql -uroot -ppassword
mysql> 데이터베이스 wordpress 생성;

Apache 모드 재작성 활성화
sudo a2enmod 다시 쓰기

.htaccess에서 설정을 지정하는 기능 활성화
sudo nano /etc/apache2/sites-available/000-default.c onf

다음 코드를 추가해보자

< VirtualHost *:80 >
< Directory "/var/www/html" >
모두 무시 허용
< /Directory >

4. PHPMyAdmin 설치(3분)
sudo apt-get 설치 phpmyadmin

5. 워드프레스 설치

워드프레스 다운로드

CD /var/www/html/

워드프레스 포장 풀기

sudo tar xzf wordpress-4.7.2-ru_RU.tar.gz

sudo mv wordpress/* .

sudo rm -rf wordpress-4.7.2-ru_RU.tar.gz

Wordpress 설치 및 설정
브라우저에서 현재 주소(예: http://192.168.0.100) 또는 http://localhost 주소로 이동합니다.
해당 필드에는 이전에 생성한 데이터베이스 사용자의 이름, 주소(localhost), 로그인 및 비밀번호, 사이트 이름, 사이트 관리자의 로그인 및 비밀번호가 표시됩니다(“root”와 같은 간단한 이름은 사용하지 마십시오). 및 "admin"인 경우 이메일과 숫자 및 대소문자를 포함하여 8자 이상의 비밀번호를 만드십시오.
데이터 입력을 확인한 후 몇 초 후에 Wordpress가 설치되고 사용할 준비가 됩니다! cyr3lat, wp-edit, hyper-cache, wp-db-backup 등과 같은 필수 플러그인 세트는 나중에 Wordpress Administrator 콘솔 플러그인 페이지의 검색 양식에 해당 이름을 입력하기만 하면 설치할 수 있습니다.
이제 Raspberry Pi는 인터넷 개발자의 홈 웹 서버가 될 준비가 되었습니다.

11. 파이썬 소개

객체 지향 해석 프로그래밍 언어 Python은 Guido van Rossum의 노력 덕분에 네덜란드 수학과 컴퓨터 과학의 중심지에서 80년대 후반과 90년대 초반에 등장했습니다.
처음에 이 언어는 개발자 생산성과 코드 가독성을 높이는 데 중점을 두었습니다.
Python은 높은 기능성을 갖춘 최소한의 구문이 특징이며, 모든 주요 프로그래밍 패러다임을 지원하고, 동적 타이핑, 자동 메모리 관리, 예외 처리, 멀티스레딩 및 모듈성을 지원합니다.
현재 Python은 과학 계산을 위한 보편적인 환경으로 활발히 사용되고 있습니다. Blender와 같은 많은 인기 있는 3D 그래픽 프로그램은 Python을 사용하여 프로그램의 표준 기능을 확장합니다.
Python은 Dropbox, Google, Facebook, Instagram과 같은 많은 대기업에서 사용됩니다.
Python 구문의 특징은 코드 블록이 들여쓰기되어 Python에 시작/끝 문이나 중괄호가 없다는 것입니다. 또한 Python에는 ";"와 같은 명시적인 줄 종결자가 없습니다. 펄처럼요.
Python의 매력적인 측면 중 하나는 풍부한 표준 모듈 라이브러리입니다. 표준 라이브러리 외에도 다양한 분야의 수많은 Python용 애플리케이션 라이브러리가 있습니다. Python은 웹 애플리케이션 개발을 위한 소프트웨어 프레임워크를 개발했으며, 그 중 가장 널리 사용되는 것은 Django입니다.
Python에는 크로스 플랫폼 GUI 프로그램을 만들기 위한 tkinter 라이브러리가 함께 제공됩니다. Python에는 모든 주요 GUI 라이브러리에 대한 확장 기능도 있습니다.
게임 제작(Pygame), 멀티미디어 작업, 3D 모델링, 그래픽 처리, 플로팅 및 천문학적 계산(Astropy)을 위한 Python 확장이 있습니다.
Python 패키지 설치 및 업데이트는 PyPI(Python Package Index) 인터페이스를 통해 수행됩니다. 모듈은 import 명령을 사용하여 프로그램 시작 시 활성화됩니다.
Python은 원래 Raspberry Pi의 기본 프로그래밍 언어로 의도되었습니다. devboard의 이름에 상징적 어미 "Pi"가 있는 것은 우연이 아닙니다.
Raspberry Pi에 연결된 외부 센서를 사용하기 위해 RPi.GPIO와 같은 여러 라이브러리가 Python용 Raspberry Pi에 작성되어 사전 설치되어 있습니다.
Python과 함께 표준 IDLE 애플리케이션 개발 및 테스트 인터페이스와 편리한 Geany 편집기가 Raspberry Pi에 사전 설치되어 있습니다.
초등학생도 이해할 수 있는 Python 언어를 익히기 위한 가이드와 Raspberry Pi에서 IoT 애플리케이션을 만들기 위한 미리 만들어진 예제가 인터넷에 많이 있습니다.
인터넷에 있는 대부분의 예제는 Python 2.x 버전용으로 작성되었으며 이는 3.X와 호환되지 않습니다. 따라서 두 버전의 Python이 모두 Raspberry Pi에 사전 설치되어 있습니다. 또한 Python 3.X에는 코드를 버전 2.x에서 3.X로 변환하는 “2to3” 프로그램(스크립트)이 포함되어 있습니다.

그 결과, 주말 동안 몇 개의 온라인 튜토리얼과 영어로 된 스마트 전자책 한 권을 읽은 후 지정된 URL이 있는 사이트 페이지에서 가장 인기 있는 단어의 빈도를 계산하고 나중에 "첨부"하는 작은 프로그램을 작성했습니다. Tkinter 라이브러리를 기반으로 한 시각적 인터페이스입니다. 그래픽 인터페이스로 애플리케이션을 이렇게 쉽고, 빠르고, 즐겁게 만들어본 적이 없습니다...

(Python의 기본에 대한 소개는 및를 참조하세요.)

12. Python 및 GPIO 작업, LED 깜박임

Python 언어의 기본 구문과 기본 명령 세트에 익숙해진 후 물리적 컴퓨팅으로 가는 결정적인 단계는 겉으로는 간단해 보이는 문제인 "LED 깜박임"을 해결하는 것입니다.
전 세계의 많은 학생, 학생 및 성인 "괴짜"가 IoT 프로그래밍 여행을 시작한 것은 바로 이 단계에서였습니다.
이를 위해 먼저 여러 라디오 구성 요소를 구입해야 했습니다. 100~300옴의 여러 쌍의 저항(설명서에 제안됨)과 다양한 색상의 여러 LED(빨간색, 파란색 및 흰색 사용)가 필요했습니다. 적합한 라디오 판매점을 검색하던 중 우리 도시에서 라디오 부품을 판매하는 특정 지점이 한 곳뿐이라는 사실이 밝혀졌습니다. 부품 비용은 낮은 것으로 나타났습니다 (개당 3-5 루블).
LED와 저항기로 구성된 간단한 회로를 조립하는 동안 브레드보드에 연결된 40핀 케이블이 가장자리를 따라 빨간색 줄무늬로 표시되지 않고 여러 색상의 케이블로 구성되어 있음을 발견했습니다. 인터넷에서 브레드보드와 Raspberry Pi 3에 대한 이러한 케이블의 연결 다이어그램을 찾을 수 없습니다. 연결 방법을 이해하기 위해 GPIO 회로를 열고 디지털 테스터로 케이블 접점을 테스트해야 했습니다.
또한 케이블을 브레드보드에 연결하기 위한 "빗"에는 브레드보드 전력선으로 출력하기 위한 탭이 없는 것으로 밝혀졌기 때문에 빗의 접지를 브레드보드의 마이너스에 연결해야 했습니다.
LED의 긴 핀(+)이 21개의 GPIO 포트에 연결되고 짧은 핀(100Ω 저항을 통해)이 접지(-)에 연결되도록 회로를 조립한 후 Raspberry Pi 3를 출시했습니다. VNC를 통해 연결됩니다.
웹사이트 http://edurobots.ru/에 설명된 대로 IDLE3에서 깜박이는 LED flashpi.py용 프로그램을 만들어 /home/pi 폴더에 저장했습니다."
IDLE3에서 F5를 사용하여 프로그램을 실행했는데(LXTerminal에서 "sudo python3 flashpi.py" 명령을 사용하여 프로그램을 실행할 수도 있음)... LED가 켜지지 않았습니다.
모든 접점과 회로의 올바른 조립을 확인한 후 문제는 하드웨어가 아니라 시스템의 소프트웨어 부분에 있다는 것을 깨달았습니다. Raspberry Pi 3의 전자책 중 하나의 예에서 다음 명령 대신에 밝혀졌습니다.
GPIO.setmode(GPIO.BOARD) GPIO.setmode(GPIO.BCM) 명령으로 포트를 초기화해야 합니다. 코드를 편집하고 프로그램을 실행한 후 Enter 키를 누르면 드디어 LED가 밝게 켜졌습니다!
Enter 키를 다시 누르면 LED가 꺼집니다. 다른 키를 누르면 프로그램이 종료되고 GPIO 포트 작업이 올바르게 완료되었습니다.
다음은 작업 프로그램의 코드입니다("__"는 공백으로 대체됩니다. 이는 Python에서 필요한 들여쓰기입니다).

GPIO를 사용한 사이클 종료 작업에서

내 인생에서 불이 켜진 LED에 대해 이렇게 행복했던 적은 없었습니다! 그리고 나는 오랫동안 전혀 행복하지 않았습니다! 조만간 1000만 라즈베리파이 구매자가 되었으면 하는 바램대로, 드디어 "LED를 깜박였습니다!" 게다가 프로그래밍 방식으로 "깜빡"했습니다!

결론 - 젊은 사이버네틱스에 대한 이별의 말

Raspberry Pi 3 싱글 보드 컴퓨터를 구입하기로 결정한 후 소프트웨어 "깜박이는 LED"까지 3개월 간의 길고 흥미진진한 여정이 헛되지 않았으면 좋겠습니다.
그는 나에게 Unix와 피지컬 컴퓨팅이라는 새로운 세계를 소개하는 동시에 그곳에 들어가고 싶어하는 모든 사람(초등 학교 교사와 고등학생)을 위한 단계별 가이드를 준비하고 더 발전할 수 있는 플랫폼을 만들었습니다. 물리적 컴퓨팅, 웹 프로그래밍 및 시스템 관리. 가격은 2,000루블이 조금 넘는 Raspberry Pi 3를 기반으로 합니다. 홈 웹 서버와 멀티미디어 센터, 일상적인 작업을 자동화하기 위한 흥미로운 솔루션, 스마트 홈 개념을 위한 솔루션을 포함하여 보다 복잡한 IoT 시스템을 만드는 것이 가능해졌습니다.
개인적으로 43세의 나이에 익숙하지 않았던 Python 프로그래밍 언어와 우리가 일반적으로 사용하는 것과는 다른 새로운 운영체제를 마스터하는 것은 즐겁고 보람찬 모험이었습니다.
나는 처음에 딸의 생일을 맞아 교육용 PC와 유망한 연구 도구로 사용하기 위해 브레드보드, 무선 구성 요소 및 16개 센서 세트와 함께 구성 및 테스트된 Raspberry Pi 3 컴퓨터를 딸에게 줄 계획이었습니다. 지역 체육관의 컴퓨터 과학 동아리. 나는 관심 있는 어린이와 올림피아드 참가자들의 과외 컴퓨터 과학 수업에서 Raspberry Pi를 구입하고 구현하는 데 도움을 주기로 컴퓨터 과학 교사와 동의했습니다. 나처럼 라즈베리 파이가 내 딸과 체육관에 있는 아이들에게 연구와 발전에 강력한 자극을 주고 현대 기술의 도움으로 자신과 주변 세계를 더 나은 방향으로 변화시킬 수 있는 새로운 기회를 열어주기를 바랍니다. 기술.

그림 1. 시스템 하드웨어 블록 다이어그램

시스템의 하드웨어를 설치하는 과정을 설명하는 것은 시간이 많이 걸리지만 매우 간단합니다. 먼저 연장 코드를 사용하여 전원 공급 장치를 벽면 콘센트에 연결하고 연장 코드 소켓을 잘라야합니다. 전선을 벗겨내고 나사로 전원 공급 단자에 고정합니다. 다음으로, USB 케이블에서 A형 커넥터를 잘라내고 전선을 전원 공급 장치의 해당 핀에 연결하여 라즈베리 파이를 전원 공급 장치에 연결한 다음 마이크로 USB 커넥터를 RPi의 전원 커넥터에 삽입합니다. 그런 다음 유연한 케이블의 두 코어 양쪽 끝을 벗겨서 전원 공급 장치 및 릴레이 블록의 GND 및 JDVcc로 표시된 해당 터미널에 연결해야 합니다. 마지막으로 JDVcc라고 표시된 핀을 Vcc라고 표시된 핀에 연결하는 점퍼를 제거해야 합니다. 이 덤퍼를 제거하지 않으면 RPi의 3.3V 핀에 5V의 전압이 적용되어 컴퓨터가 파손될 가능성이 높습니다.

이제 모든 단자에 전원이 공급되었으므로 그림 2와 같이 유연한 케이블을 사용하여 릴레이 모듈의 IN1-IN8 핀을 해당 GPIO 핀에 연결합니다. 이 기사에서 제시하는 코드는 IN1-IN7이 있는 경우를 위해 설계되었습니다. 핀은 GPIO1-GPIO7 핀에 연결됩니다. 이러한 핀을 다르게 연결하기로 결정한 경우 이에 따라 코드를 수정해야 합니다.

Raspberry Pi GPIO 핀아웃은 그림 2에 나와 있습니다. Raspberry Pi I/O 포트는 3.3V에서 작동하고 릴레이 모듈은 5V에서 작동합니다. 그러나 릴레이는 광커플러를 사용하여 Raspberry Pi GPIO 핀에서 절연됩니다. 옵토커플러는 Vcc 핀에서 3.3V 전압을 공급받을 수 있습니다. 릴레이 모듈의 Vcc 핀은 Raspberry Pi GPIO 커넥터에서 3.3V 전압을 공급받을 수 있습니다. 릴레이 모듈의 Vcc 및 JDVcc 단자를 단락시키는 점퍼를 제거했는지 확인하십시오.릴레이가 올바르게 작동하려면 JDVcc 핀에 5V가 공급되어야 합니다. 문제의 릴레이 모듈은 활성 상태에서 접점을 엽니다. 따라서 릴레이를 켜려면 IN1-IN8 단자를 접지해야 합니다.

그림 2. 라즈베리 파이 GPIO 핀아웃

경고: 시스템 하드웨어 구성 요소를 연결할 때는 각별히 주의하십시오. 감전의 결과는 다음과 같습니다. 치명적인!

나머지 확장 케이블을 플러그로 정리하고 와이어를 릴레이 모듈의 해당 터미널에 고정합니다. 또한 나중에 시스템을 벽면 콘센트에 연결할 케이블의 와이어를 릴레이 모듈의 해당 단자에 연결합니다. 모든 시스템 하드웨어는 필통이나 유사한 용기에 넣을 수 있습니다. 시스템 하드웨어 작업을 마친 후 릴레이 모듈 터미널에서 전선을 분리했다가 다시 연결하지 않으려면 인클로저에 대해 미리 생각해 보십시오. 또한 케이블 장력을 제한하기 위해 여러 개의 나사식 케이블 클램프를 섀시의 해당 구멍에 삽입했습니다(그림 3).

그림 3. 시스템 하드웨어 설치

소프트웨어 환경

Raspbian 운영 체제 이미지를 설치하여 소프트웨어 환경을 만들기 시작했습니다. 운영 체제 이미지 설치를 시작하기 전에 HDMI 이미지 전송을 지원하는 디스플레이, USB 커넥터가 있는 키보드 및 마우스, 이더넷을 통해 시스템에 연결할 네트워크 케이블을 준비해야 합니다. Wi-Fi 어댑터를 사용하여 시스템에 연결할 수도 있습니다. 처음으로 시스템을 부팅하려면 http://www.raspberrypi.org/documentation/installation/installing-image의 지침에 따라 부팅 가능한 SD 카드를 만드세요. 시스템을 처음 부팅하는 동안 설치 프로그램은 운영 체제를 구성하고 해당 이미지의 데이터를 메모리 카드의 사용 가능한 전체 공간에 배치합니다. 처음 부팅한 후에는 표준 사용자 계정 자격 증명(사용자 이름 "pi" 및 암호 "raspberry")을 사용하여 로그인할 수 있습니다.

시스템 업데이트는 로그인 성공 후 즉시 수행해야 하는 현명한 작업입니다. Raspbian 운영 체제 이미지는 Debian 배포판의 소프트웨어 패키지를 기반으로 하며 소프트웨어 패키지 관리자로 aptitude 애플리케이션을 사용합니다. 또한 Python, pip 및 git이라는 소프트웨어 패키지가 필요합니다. 또한 시스템 관리 프로세스를 단순화하기 위해 Webmin을 설치하는 것이 좋습니다. Webmin 설치 지침은 http://www.webmin.com/deb.html에서 제공됩니다("Webmin APT 저장소 사용" 섹션의 권장 사항을 따르십시오).

Sudo apt-get 업데이트 && sudo apt-get dist-upgrade sudo apt-get install python python-pip git git-core

그런 다음 Wi-Fi 어댑터를 사용하여 연결을 설정해야 합니다. 자세한 지침은 http://www.raspberrypi.org/documentation/configuration/wireless에서 확인할 수 있습니다. wicd-courses 옵션을 사용하는 것이 좋습니다. 이 시점에서 sudo raspi-config 명령을 사용하여 Raspberry Pi 설정을 변경할 수 있습니다. 이 명령을 입력하면 GPU와 공유되는 RAM 용량, CPU 속도 매개변수, 부팅 중 GUI 사용 모드와 같은 매개변수 값을 설정할 수 있는 편리한 그래픽 인터페이스에 액세스할 수 있습니다. 프로세스 및 기타.

또 다른 유용한 도구는 Cloud 9 IDE입니다. Cloud 9 IDE를 사용하면 웹 브라우저를 통해 Raspberry Pi 수준에서 코드를 편집할 수 있습니다. 이 IDE를 사용하면 웹 브라우저 내의 명령줄 인터페이스에 대한 액세스도 제공됩니다. 웹 브라우저를 떠나지 않고도 모든 코드를 개발하고 실행할 수 있습니다. Colud 9 IDE에는 특정 버전의 NodeJS 프레임워크가 필요합니다. 지원되지 않는 프레임워크 버전을 사용하면 Cloud 9 서버가 지속적으로 충돌하여 사용자가 낙담할 수 있습니다. Raspberry Pi 컴퓨터에 NodeJS 프레임워크를 설치하는 방법에 대한 지침은 http://weworkweplay.com/play/raspberry-pi-nodejs에서 제공됩니다.

소프트웨어

나는 HTML5, CSS3 및 JavaScript 기술을 사용하여 내 시스템의 사용자 인터페이스를 만들기로 결정했습니다. 언급된 세 가지 기술의 조합은 사용자 인터페이스를 만드는 강력한 도구입니다. JavaScript 프로그래밍 언어를 사용하면 간단한 API를 사용하여 서버와 상호 작용할 수 있습니다. 또한 JQuery, Bootstrap 등 JavaScript 프로그래밍 언어용 라이브러리가 많이 있으므로 가장 적합한 라이브러리를 선택할 수 있습니다. HTML5는 웹 브라우저가 연결을 유지하고 해당 연결을 통해 통신할 수 있도록 하는 WebSocket API를 제공합니다. 따라서 WebSocket API는 게임 및 채팅과 같은 동적 및 스트리밍 애플리케이션을 구현하는 데 특히 유용합니다. 계단식 스타일 시트 CSS는 HTML 페이지의 다양한 요소에 스타일을 지정하는 데 유용합니다. 올바르게 사용하면 특정 이벤트가 발생할 때 페이지 요소의 스타일을 변경하여 동적 사용자 인터페이스를 만들 수 있습니다. 이 프로젝트에서는 이벤트를 처리하기 위해 JQuery 프레임워크, 그리드에 버튼을 배치하기 위해 Bootstrap CSS, WebSocket API 기반의 데이터 교환 메커니즘을 구현하기 위해 JavaScript 프로그래밍 언어를 선택했습니다.

도서관

Raspberry Pi 수준에서 실행되는 서버 애플리케이션은 Raspberry Pi 보드의 GPIO 핀 상태를 제어해야 합니다. 또한 GUI 데이터를 전달하기 위한 HTTP 인터페이스와 명령 및 상태 데이터가 포함된 메시지를 전달하기 위한 WebSocket 인터페이스를 제공해야 합니다. 이러한 특정 기능을 갖춘 바로 설치할 수 있는 서버 애플리케이션이 없기 때문에 Python 프로그래밍 언어를 사용하여 자체 서버 구현을 만들기로 결정했습니다. Python 프로그래밍 언어를 사용하여 설명된 서버 애플리케이션의 개발을 단순화하기 위해 Raspberry Pi GPIO 인터페이스 작업, HTTP 서버 생성 및 WebSockets 인터페이스 작업을 위한 메서드 구현이 포함된 모듈을 사용할 수 있습니다. 나열된 모든 모듈은 할당된 작업을 수행하도록 설계되었으므로 최소한의 코드를 개발해야 했습니다.

그러나 언급된 모듈은 Python 인터프리터에 포함되어 있지 않으므로 별도로 설치해야 합니다. 우선, Raspberry Pi GPIO 커넥터 핀의 상태를 제어하는 ​​모듈이 필요합니다. 특정 커넥터의 핀 상태를 변경하는 가장 간단한 방법은 https://pypi.python.org/pypi/RPi.GPIO에서 사용할 수 있는 RPi.GPIO 라이브러리를 사용하는 것입니다. 다음 명령을 사용하여 해당 모듈을 설치할 수 있습니다.

Sudo pip 설치 RPi.GPIO

RPi.GPIO 모듈 작업에는 어려움이 없습니다. 에서 이 모듈을 사용하는 예를 찾을 수 있습니다. 모듈 작업의 첫 번째 단계는 해당 코드를 프로젝트 코드로 가져오는 것입니다. 그런 다음 작동 모드를 선택해야 합니다. GPIO.BOARD 상수 또는 GPIO.BCM 상수를 작동 모드 식별자로 사용할 수 있습니다. 작동 모드 선택에 따라 모든 후속 명령에서 핀 번호를 참조할 때 BCM 칩 또는 I/O 커넥터 핀이 사용되는지 여부가 결정됩니다. 다음으로, 해당 커넥터의 핀이 입력 또는 출력에 사용되는지 표시해야 합니다. 이제 의도한 목적에 맞게 이 커넥터의 핀을 사용할 수 있습니다. 마지막으로 cleanup() 메서드를 호출하여 GPIO 핀을 재설정해야 합니다. 목록 1은 RPi.GPIO 모듈을 사용하는 간단한 예를 보여줍니다.

목록 1. RPi.GPIO 모듈 사용

Import RPi.GPIO as GPIO # 모듈 코드를 프로젝트 코드 GPIO.setmode(GPIO.BOARD)로 가져옵니다. # 번호 지정이 커넥터 핀을 식별하는 데 사용됨을 나타냅니다. GPIO.setup(0, GPIO.IN) # 채널이 채널임을 나타냅니다. 0은 입력에 사용됩니다. GPIO.setup(1, GPIO.OUT) # 채널 1이 출력에 사용됨을 나타냅니다. var1=GPIO.input(0) # 채널 0의 상태를 읽습니다. GPIO.output(1, GPIO.HIGH ) # 채널 1에 논리 1을 설정합니다. GPIO.cleanup() # GPIO 커넥터 핀의 상태를 재설정합니다.

이 기사에서는 웹 인터페이스를 통해 Raspberry Pi 마이크로컴퓨터의 입력/출력(GPIO)을 제어하는 ​​방법을 살펴보겠습니다. 이를 통해 인터넷을 통해 다양한 장치를 제어할 수 있습니다.

이 프로젝트의 특징:

– GPIO 값을 읽기 위해 Raspberry Pi에서 실행되는 서버 프로그램

– MySQL 데이터베이스를 사용하여 GPIO 상태 저장

– Apache2 웹 서버를 사용하여 웹 브라우저를 통해 GPIO 제어

따라서 Raspberry Pi에 가장 먼저 설치해야 할 것은 다음과 같습니다.

– 아파치 웹 서버

– MySQL 서버

– phpMyAdmin (러시아어 버전이 있습니다)

왜냐하면 Raspberry Pi 마이크로컴퓨터는 Linux 시스템에서 실행되므로 인터넷에는 이러한 모든 패키지를 설치하는 방법에 대한 러시아어 설명이 가득합니다. 그러므로 우리는 이것에 대해 깊이 생각하지 않을 것입니다. Raspberry Pi에 대한 좋은 지침이 있지만 영어로 되어 있습니다. 읽어보세요.

전체 루트 액세스

전체 루트 액세스 권한을 얻으려면 터미널에 명령을 입력해야 합니다 sudo -i, 사용자를 루트로 세션으로 전송합니다.

이미 루트 계정을 활성화한 경우 더 건너뛸 수 있습니다. 그렇지 않은 경우 sudo -i 명령 후에 루트 사용자의 비밀번호를 설정해야 합니다. 이 작업은 다음 명령을 사용하여 수행됩니다. passwdroot.그런 다음 비밀번호를 2번 입력하세요. 이제 SSH 세션을 닫고 루트로 다시 로그인할 수 있습니다.

데이터베이스 설정

작업을 단순화하기 위해 phpMyAdmin 셸에서 MySQL을 사용하여 모든 작업을 수행합니다.

프로젝트 파일 다운로드

영어 원본 기사(웹사이트 cxem.net에 대한 A.V. Koltykov 번역)

Raspberry Pi를 구입하면 전원 공급 장치나 운영 체제도 함께 제공되지 않는 회로 기판만 구입하게 됩니다. 이 글은 Raspberry Pi를 사용하여 시작할 수 있도록 설정하는 방법에 대한 아이디어를 제공하기 위한 것입니다.

라즈베리 파이(Raspberry Pi)는 다양한 주변 장치를 연결하는 데 사용할 수 있는 포트가 많은 미니 컴퓨터입니다. HDMI 포트를 통해 별도의 모니터를, USB 커넥터를 통해 키보드와 마우스를 연결할 수 있으며, 라즈베리파이에도 이더넷 포트가 있어 라즈베리파이 프로젝트에서 인터넷을 사용할 수 있다.

이 가이드는 Raspberry Pi를 노트북이나 데스크탑에 연결하여 Raspberry Pi를 위한 별도의 장치가 필요하지 않도록 하는 일련의 단계를 안내합니다.

하드웨어와 소프트웨어

  • 1개;
  • 1개의 이더넷 케이블;
  • 노트북 또는 데스크탑 PC 1대;
  • 1 x SD 카드(최소 크기 4GB);
  • 1 x 마이크로 USB 케이블(라즈베리 파이에 전원 공급용)

계속하기 전에 다운로드해야 할 몇 가지 소프트웨어가 필요합니다. 다음은 무료로 다운로드할 수 있는 소프트웨어 및 링크 목록입니다.

  • 라즈비안 OS: Raspberry Pi를 구매할 때 SD 카드에 사전 설치된 운영 체제를 구매하거나 https://www.raspberrypi.org/downloads/에서 zip 파일을 다운로드할 수 있는 옵션(일부 매장에서는)이 있습니다. SD 카드에 쓰기 위한 Raspbian OS 이미지가 포함되어 있습니다.
  • SD포매터: SD 카드 협회에는 SD 카드를 포맷하는 데 사용할 수 있는 아주 좋은 소프트웨어가 있습니다. https://www.sdcard.org/downloads/formatter_4/index.html을 방문하여 운영 체제에 맞는 SDFormatter를 다운로드하세요.
  • Win32DiskImager: Raspbian OS를 SD 카드에 구우려면 유용한 Win32DiskImager 유틸리티가 필요합니다. 여기에서 다운로드할 수 있습니다.
  • : Raspberry Pi를 컴퓨터에 연결할 때 Raspberry Pi의 IP 주소를 확인해야 합니다. http://www.advanced-ip-scanner.com/ 이 프로그램을 다운로드하세요.
  • 퍼티: PuTTy는 Raspberry Pi에 연결하는 데 사용되는 SSH 클라이언트입니다. 여기(http://www.putty.org/)에서 다운로드할 수 있습니다.
  • VNC: 그리고 마지막은 VNC 서버입니다. 여기(https://www.realvnc.com/download/)에서 다운로드할 수 있습니다.

이 소프트웨어를 모두 다운로드한 후 압축을 풀고 설치하세요.

운영 체제 설치

  1. SD 카드를 카드 리더기에 삽입하고 드라이브에 어떤 문자가 할당되었는지 확인하십시오.
  2. Win32DiskImager를 엽니다. 관리자 권한으로 실행해야 할 수도 있습니다.
  3. 압축을 푼 Raspbian OS의 이미지를 선택합니다.
  4. 장치 드롭다운 목록에서 SD 카드에 할당된 문자를 선택합니다. 다른 드라이브의 데이터가 손상되지 않도록 올바른 드라이브 문자를 선택했는지 확인하십시오.
  5. 딸깍 하는 소리 써 내려 가다(쓰다) 그리고 완료될 때까지 기다립니다.
  6. Win32DiskImager를 닫고 SD 카드를 제거한 후 Raspberry Pi에 삽입합니다.

참고: 운영 체제를 굽고 나면 SD 카드에 몇 메가바이트밖에 남지 않은 것을 알 수 있습니다. 이는 파티션이 생성되고 나머지 여유 공간이 숨겨지기 때문입니다. Raspberry Pi에 연결하면 이 문제를 해결할 수 있습니다.

이더넷 포트를 통한 공유 인터넷

SD 카드가 준비되면 라즈베리 파이에 삽입하세요. USB 전원 케이블을 연결하세요. 또한 이더넷 케이블을 사용하여 Raspberry Pi와 노트북을 연결합니다.

Raspberry Pi를 인터넷 액세스가 가능한 라우터에 연결하는 경우 이 단계를 건너뛸 수 있습니다.

Raspberry Pi에 할당된 IP 주소 확인

간단합니다. Raspberry Pi가 컴퓨터의 이더넷 네트워크에 (직접 또는 라우터를 통해) 연결되어 있는지 확인하세요. 모든 것이 제대로 작동하면 보드의 LED가 깜박이는 것을 볼 수 있습니다.


PuTTy를 통해 Raspberry Pi에 연결

엄청난! 계속하기 전에 지금까지 수행한 작업을 살펴보겠습니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: