2018.4월 현재 라즈비안 OS를 설치하기 위하여 최신의 NOOBS를 사용하면 Stretch OS가 설치된다.

라즈베리파이는 OS가 지속적으로 변경이 되고 있으며, OS의 버전에 따라 제공되는 기능의 동작이 틀려지고, 설정방법도 달라지고 있다. 따라서 자신의 라즈비안 OS가 어느 버전인지를 확안하고, 그에 따라 기능을 설정하여 주어야 한다.

라즈비안 OS 중 하나인 Jessie 버전을 설치하기 위해서는 NOOBS 2.4.2 버전 또는 NOOBS 2.4.3 버전을 사용하면 된다. 또한 라즈비안 OS 설치시 인터넷 연결을 하지 않은 상태에서 진행을 하여야 한다.

NOOBS의 특성상 인터넷이 연결되면, 인터넷에 연결하여 최신의 버전으로 설치한다. 따라서 NOOBS가 Jessie 버전을 가지고 있더라도 인터넷에 연결이 되어 있다면, 인터넷에서 다운로드를 하여 최신의 OS 버전인 Stretch가 설치가 된다. 따라서 Jessie 버전을 설치하려면 인터넷이 연결되지 않은 상태에서 OS 설치를 하여야 한다.

Posted by 세상을 살아가는 사람
,

5V GPIO I/O를 사용하는 아두이노 우노 보드에 대하여 ESP8266을 사용하는 방법을 기술한다.

기존에 기술한 것과 차이점은 아두이노 우노의 RESET 핀을 GND로 연결함으로써 아두이노를 dumy USB로 동작하게 함으로써 ESP8266의 Firmware를 업그레이드 할 때 용이하게 할 수 있다는 것이다.

SoftSerial을 사용하든 Hardware Serial을 사용하든 3.3V로 변환하지 않아도 된다는 것이 신기하기만 하다. 그 동안 동작을 잘 하지 않은 것이 ESP8266이 default로 115200bps로 동작하여 baud rate를 맞출 수 없어

동작이 잘 안되었던 것으로 판단이 된다. 따라서 9600bps로 Firmware를 업그레이 한다면 쉽게 사용할 수 있을 것 같다.


Posted by 세상을 살아가는 사람
,

이전 글에서 Firmware 업그레이드한 ESP8266 모듈을 사용하여 Station Mode 및 AP Mode로 동작함을 확인한다. 여기서도 아두이노 우노 보드가 3.3V GPIO I/O를 출력하는 것을 사용하였다. 5V GPIO I/O를 사용하는 것은 별도로 기술한다.






Posted by 세상을 살아가는 사람
,

ESP8266이 판매할 때 115200bps로 초기화 되어 있고, 아두이노와 연동하기 위해서는 9600bps로 동작하는 것이 좋다고 하여 Firmware를 upgrade 하고자 한다. 이에 대한 방법을 기술한다.

주의사항 : 여기서 사용한 아두이노 우노 보드는 3.3V로 GPIO I/O를 동작시킬 수 있도록 설정할 수 있는 것이다. 5V GPIO I/O로 동작하는 것은 별도로 기술한다.


Posted by 세상을 살아가는 사람
,

아두이노 우노보드에 WiFi 기능을 위해 WizFi250-H를 SPI로 연결하여 사용하고 있다.

프로젝트에서 Ubidots IoT cloud 플랫폼과 연동을 하려고 MQTT를 사용하는 방법을 기술한다.

아두이노 IDE 스케치 프로그램

mqtt_wizfi250_ubidots.ino




Posted by 세상을 살아가는 사람
,

OV7670카메라를 아두이노 우노 보드에 연결하여 실험을 해보았다.

http://arduino-makers.tistory.com/68를 참고하여 해 보았는데, 화질이 정말 좋지 않았다. terrible!!!

그래도 촬영은 되는 것 같다...

Posted by 세상을 살아가는 사람
,

라즈베리파이에서 카메라를 enable하고, PiCam을 연결한 상태에서 진행한다.

참고로 이 기능은 라즈비안 OS version이 Jessie 버전일 경우 동작한다. 현재(2018.4월) 라즈비안 OS는 Stretch로서 이 OS에서는 동작을 하지 않는다. 따라서 라즈비안 OS를 Jessie 버전으로 설치하여 동작을 확인할 수 있다.

1. Gstreamer 0.10 패키지 설치

  $ sudo apt-get install libglib2.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev gstreamer-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer-plugins-ugly

2.Gstreamer 0.10 서버 & 스크립트 다운로드

  $ wget http://gstreamer.freedesktop.org/src/gst-rtsp/gst-rtsp-0.10.8.tar.bz2

  $ bzip2 -d gst-rtsp-0.10.8.tar.bz2

  $ tar xvf gst-rtsp-0.10.8.tar

  $ cd gst-rtsp-0.10.8

3. 빌드

  $ ./configure

  $ make

4. 서버 실행 (스트리밍 시작)

  $ cd examples

  $ raspivid -t 0 -h 720 -w 1280 -fps 25 -b 2000000 -vf -hf -n -o - | gst-launch -v fdsrc ! h264parse ! gdppay ! tcpserversink host=127.0.0.1 port=5000 | ./test-launch "( tcpclientsrc host=127.0.0.1 port=5000 ! gdpdepay ! avdec_h264 ! rtph264pay name=pay0 pt=96 )"

  수행되는 process 확인 : $ ps -ef | more -> pi 계정으로 다음과 같이 3개의 process가 실행된다.

[출처] Gstreamer 설치하기|작성

 라핀트

  수행되는 네트워크 관련 상태를 확인해 본다. $ netstat -an | more

  - port 8554, 5000가 동작함을 다음과 같이 확인할 수 있다.

5. 확인

  - PC에서 다음 팟 플레이어를 설치하고, 실행한다.

  - Control-U를 누르고 주소 열기를 실행하고 rtsp://라즈베리파이IPaddress:8554/test


참조 : http://blog.naver.com/lapint/220330786481

Posted by 세상을 살아가는 사람
,

BCM2835 Hardware를 사용한 라즈베리파이 3(?)에서 pi 카메라를 연결하여 동작 실험을 하고 있다.

1. 라즈베리파이를 최신의 버전으로 업그레이드를 한다.

$ sudo apt-get update

$ sudo apt-get upgrade

2. 우선 카메라를 카메라 I/F에 연결하고, $ sudo raspi-config를 사용하여 카메라 기능을 enable 시키고 재부팅을 한다.

  - 카메라 케이블은 파란색 부분이 이더넷 잭이 있는 쪽으로 연결

3. 카메라 촬영

  $ raspistill -o image.jpg


4. 동영상 촬영

  - $ raspivid -o video.h264

  - HDMI port를 사용하여 모니터로 동영상 촬영된 것을 보기 : $ omxplayer video.h264

    + 터미널로 동영상이 출력되지 않고, HDMI 케이블에 연결된 모니터로 출력된다.

5. 동영상 스트리밍 서버를 구현하기 : mjpg-streamer 구현

  $ sudo apt-get install git cmake libjpeg8-dev imagemagick -y

  $ sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

  $ git clone https://github.com/liamfraser/mjpg-streamer

  $ cd mjpg-streamer/mjpg-streamer-experimental/

  $ make clean all

  $ sudo nano mjpg.sh    // /home/pi 디렉토리에 파일 생성

export STREAMER_PATH=$HOME/mjpg-streamer/mjpg-streamer-experimental

export LD_LIBRARY_PATH=$STREAMER_PATH

$STREAMER_PATH/mjpg_streamer -i "input_raspicam.so -d 200" -o "output_http.so -w $STREAMER_PATH/www"

$ sh mjpg.sh

- 크롬 브라우저에서 확인 : http://hostname:8080/stream.html

- 혹시 8080 port가 이미 사용 중이라면 port 관련 부분을 변경해 준다.


Posted by 세상을 살아가는 사람
,

라즈베리파이 모델이 여러가지가 있고, 또 Open Hardware라서 여러 벤더들이 있다.

라즈베리파이 모델 3라고 하여, 보드에 WiFi와 BLE과 내장되어 있는 것이 있는데, /proc/cpu_info를 해보니

CPU가 BCM2835 였다. 보통 BCM2709인데, 이상하게 이놈은 BCM2835였다. 아니면 BCM2836엔데...

그래서 webiopi가 동작하지 않는다. 프로그램에서 CPU 정보를 읽어 처리를 하는데, 정상적인 CPU가 아니기 때문에 비정상적인 처리를 하는 것이다. 그러므로 구매할 때 내장된 CPU 정보를 꼭 확인해 보는 것이 필요하다.

Posted by 세상을 살아가는 사람
,

라즈베리파이를 이용해서 JSP tomcat 서버를 구동하려고 한다.

이때 Tomcat의 포트번호를 default 8080에서 80으로 변경하여 적용하는 방법을 기술한다.

리눅스나 윈도우에서는 포트번호 1024 이하는 일반 사용자가 사용하지 못하도록 binding 자체를 못하도록 하고 있다. 따라서 tomcat conf 디렉토리에서 server.xml을 변경하여 port 번호를 8080에서 80으로 변경하더하고 동작을 하지 않는다.

대신 포트번호는 8080 그대로 유지한채 iptables를 변경하여 port redirect를 수행하여 80 포트번호로 접속을 요구하면 8080 포트가 대신 동작을 하게하여 해결할 수 있다.

다음의 명령어를 라즈베리파이 터미널에서 수행하여 줌으로써 동일한 효과를 얻을 수 있다.

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

참고 : http://stackoverflow.com/questions/10450045/why-does-tomcat-work-with-port-8080-but-not-80


Posted by 세상을 살아가는 사람
,