raspberry pi로 TCP/IP server 제작 및 HW control 하기
raspberrypi 개발 환경 셋팅.
login ID : pi
PW : raspberry
내부적으로 IP 및 nfs가 다 되어 있다면 서버를 아래와 같이 mount하여 사용하면 된다.
server : 192.168.0.26
raspberry : 192.168.0.12
mount 방법
sudo mount -t nfs 192.168.0.26:/home/younlea/project /home/pi/test_code/server_source/
echo server 및 client 제작
-> 제작 필요.
C++에서 raspberry pi Gpio 컨트롤 방법
http://hertaville.com/2012/11/18/introduction-to-accessing-the-raspberry-pis-gpio-in-c/
Shell 에서 setting
| 1 2 3 4 5 | pi@raspberrypi ~ $ sudo -i root@raspberrypi:~# echo ”4” > /sys/class/gpio/export root@raspberrypi:~# echo ”out” > /sys/class/gpio/gpio4/direction root@raspberrypi:~# echo ”1” > /sys/class/gpio/gpio4/value root@raspberrypi:~# echo ”0” > /sys/class/gpio/gpio4/value |
android client 개발
http://myandroidsolutions.blogspot.kr/2012/07/android-tcp-connection-tutorial.html
C로 raspberry pi gpio 컨트롤 http://www.rasplay.org/?p=3241
| 1 2 3 4 5 6 | sudo apt-get updatesudo apt-get upgrade sudo apt-get install git-core git clone git://git.drogon.net/wiringPi cd wiringPi ./build gpio -v gpio readall |
wiringPi를 사용해서 gpio 4번을 30초간 켜주고 꺼주기를 반복하는 프로그램 sample
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include |
build
$ gcc -o gpio gpio.c -lwiringPi
해야 할일 :
Raspberry pi
-
raspberry pi에서 running 할 TCP/IP server 제작 (완)
-
raspberry pi 에 wifi 동글 연결하여 ip setting (완)
http://elinux.org/RPi_USB_Wi-Fi_Adapters (raspberry pi와 연결되는 USB wifi 동글 목록 및 문제점 목록)
- Realtek
- RTL8188CUS USB-ID 0bda:8176, kernel oops in dmesg and freeze when pulled from USB. (B)
raspberry pi에 iptime N100mini 연결 방법 공유..
위와같이 해도 안된다면
dhclient wlan0 를 하면 자동으로 DHCP가 IP를 잡아줘야 하는데.. 이것도 안된다.. ㅡㅜ
결국 아래와 같이 HARD Coding을해서 해결…
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | pi@raspberrypi ~ $ sudo ifconfig wlan0 192.168.0.11 netmask 255.255.255.0 up pi@raspberrypi ~ $ ifconfig wlan0 wlan0 Link encap:Ethernet HWaddr 00:08:9f:da:ad:ae inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:2 errors:0 dropped:2 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:344 (344.0 B) TX bytes:288 (288.0 B) pi@raspberrypi ~ $ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=1.02 ms 64 bytes from 192.168.0.1: icmp_req=2 ttl=64 time=0.824 ms 64 bytes from 192.168.0.1: icmp_req=3 ttl=64 time=0.801 ms — 192.168.0.1 ping statistics — 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.801/0.884/1.028/0.104 ms pi@raspberrypi ~ $ arp -a ? (192.168.0.2) at 00:1c:c0:7a:88:39 [ether] on eth0 ? (192.168.0.1) at 00:26:66:e1:31:ac [ether] on eth0 |
문제는 최초 부팅시 WLAN을 못잡는다.
부팅후 sudo ifup wlan0를 꼭 해줘야 하는데.. /etc/rc.local을 넣어서 하게되면 이상하게 ssh도 막히고 난리다. ㅡㅜ
1.USB wifi 동글 driver 설치
-
dmesg grep usb 검색 (아니면 “lsusb”를 사용해도 된다.)
-> usb 1-1.3: Manufacturer : Realtek «확인
- apt-cache search Realtek
-> firmware-realtek 를 확인.
-> sudo apt-get install firmware-realtek
- IP setting
| -> sudo iwlist scan | less |
-> iwconfig
—-> sudo vim /etc/network/interfaces
| 1 2 3 4 5 6 7 8 9 10 11 | auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid ”공유기이름” wpa-psk ”비밀번호” |
—-> reboot
—->ifconfig
- raspberry pi 의 gpio control 하여 switch control
http://elinux.org/RPi_Low-level_peripherals


- HW swtich 땜질…- trangister 사용
-IRF520, BC547, 2n3904

Raspberry PI GPIO —— B에 연결
C를 Switch 위쪽에 연결
E를 스위치 아리에 연결하고 Raspberry PI GND에 연결…
이러면 스위치 컨트롤 잘된다.
IP time setting (완)
Android Phone
-
TCP/IP socket program (1차 버젼 완)
-
DNS ip 주소 변환 관련 코드 확인 필요.
-
bug fix 필요
초기 부팅시 wifi 자동으로 할당.
/etc/network/interface에서 wifi는 dhcp로 잡아주자.. 모 ap에서 확인하면 되니까…
초기 부팅시 server 자동 실행
/etc/init.d/rc.local 에서..
do_start 다음에 넣도록…
\