현재까지 발견된 위 책의 오탈자 정보와 오류, 그리고 보다 매끄러운 문장을 위해 수정한 내용을 알려드리며, 아울러 집필과 편집 시에 미처 확인하지 못하고 불편을 끼쳐 죄송하다는 말씀을 드립니다. 아래의 오탈자 사항은 추후 재쇄 시에 반영하도록 하겠습니다. 


이외의 오탈자 정보를 발견하시면 저자 운영 카페(http://cafe.naver.com/openiot)나 출판사(readers.jpub@gmail.com)로 연락주시면 고맙겠습니다. 



최종수정일자: 2016년 6월 14일

2쇄본 오탈자


19페이지 아래에서 두 번째 코드 박스와 그 아래 문장(저자 제공)

$ sudo rpi-update

$ sudo apt-get install pi-bluetooth


라즈베리 파이 3은 블루투스 모듈이 내장되어 있는데, 동작을 위해 펌웨어를 갱신하고 pibluetooth

패키지를 설치해야 한다. 그런 다음 재부팅한다.


==>


$ sudo apt-get update

$ sudo apt-get upgrade


라즈베리 파이 3은 블루투스 모듈이 내장되어 있는데, 동작을 위해 펌웨어를 갱신하고 pibluetooth

패키지를 설치해야 한다. 그런 다음 재부팅한다.


$ sudo rpi-update

$ sudo apt-get install pi-bluetooth



최종수정일자: 2016년 5월 11일

1쇄본 오탈자


120페이지 코드 4-5 제목에서(Khan 님 제공)

/etc/apache2/site-available/default 설정 파일 수정

==>

/etc/apache2/sites-available/default 설정 파일 수정


301페이지 첫 번째 코드에서(저자 제공)

$ sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update

$ sudo reboot

===>

$ sudo rpi-update

$ sudo reboot


292페이지 두 번째 문단 3번째 줄(저자 제공)

GPIO 포트의 3.3V, GND, 18번(GPIO24) 핀에 연결하면 된다.

==>

GPIO 포트의 3.3V, GND, 18번(GPIO24) 핀에 연결하고, VCC와 OUT 핀 사이에 풀업 저항(1K 옴)을 연결하면 된다.

 

298페이지 아래 코드 상자에서(저자 제공)

$ git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git

$ cd Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCD

==>

$ sudo apt-get install git build-essential python-dev python-smbus python-pip

$ git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git

$ cd Adafruit_Python_CharLCD

 

299페이지 제일 첫 번째 문단 전체와 첫 번째 코드(저자 제공)

DVK512 보드의 LCD1602 포트에 대한 호환성을 고려하여 Adafruit_CharLCD.py 파일을 편집하여 다음 라인을 수정한다.

def __init__(self, pin_rs=22, pin_e=11, pins_db=[23, 10, 9, 25], GPIO = None):

===>

Adafruit_CharLCD 모듈을 설치한다.

$ sudo python setup.py install

 

299페이지 코드 6-15의 4-5행(빈 행 포함)(저자 제공)

lcd = Adafruit_CharLCD(pin_rs=22, pin_e=11, pins_db=[23, 10, 9, 25])

lcd.begin(16,2)

===>

lcd = Adafruit_CharLCD(rs=22, en=11, d4=23, d5=10, d6=9, d7=25, cols=16, lines=2)


190페이지 네 번째 행(저자 제공)

먼저 의존 패키지들을 설치한다.

===>

먼저 앞서 PySide 정식 버전을 설치하였다면 다음 명령으로 제거해야 한다.

$ sudo apt-get remove python-pyside pyside-tools 

다음은 PySide를 설치하기 위한 의존 패키지들을 설치한다.


19페이지 마지막 문단 바로 위에 아래의 내용 추가(라즈베리 파이 3 출시로 인한 내용 보강)(저자 제공)

라즈베리 파이 3은 블루투스 모듈이 내장되어 있는데, 동작을 위해 펌웨어를 갱신하고 pi-bluetooth 패키지를 설치해야 한다. 그런 다음 재부팅한다.


$ sudo rpi-update

$ sudo apt-get install pi-bluetooth


85페이지 마지막 코드 박스의 중간 부분에 1줄 추가(저자 제보)

... global n

... m += 1

==>

... global n

... m = 0

... m += 1


121페이지 첫 번째 줄(저자 제보)

Apache 웹 서버를 재실행하고, 

==> 

Apache 웹 서버에서 CGI 모듈을 활성화하고 재실행한 후에 


121페이지 첫 번째 코드 박스의 1행(저자 제보)

$ sudo service apache2 restart

==>

$ sudo a2enmod cgi

$ sudo service apache2 restart


140페이지 코드 4-17(저자 제보)

#character-set-client-handshake = false --> 주석처리

default-character-set=utf8

 

bind-address        = <IP 주소>

==>

[mysqld]

...

#character-set-client-handshake = false --> 주석처리

init_connect = 'SET collation_connection = utf8_general_ci'

init_connect = 'SET NAMES utf8'

character-set-server = utf8

collation-server = utf8_general_ci

bind-address        = <IP 주소>

...

[mysql]

default-character-set = utf8

...


156페이지 코드 4-18의 3행(빈 행 포함)(저자 제보)

db = connect ("localhost", "pi", "raspberry", "test")

==>

db = MySQLdb.connect ("localhost", "pi", "raspberry", "test")


156페이지 코드 4-18의 7행(빈 행 포함)(저자 제보)

   student = cur.fetchone():

===>

   student = cur.fetchone()


157페이지 코드 4-19의 3행(빈 행 포함)(저자 제보)

db = connect ("localhost", "pi", "raspberry", "test")

==>

db = MySQLdb.connect ("localhost", "pi", "raspberry", "test")


157페이지 코드 4-19의 11행(빈 행 포함)(저자 제보)

   student = cur.fetchone():

==>

   student = cur.fetchone()


158페이지 코드 4-20의 3행(빈 행 포함)(저자 제보)

db = connect ("localhost", "pi", "raspberry", "test")

==>

db = MySQLdb.connect ("localhost", "pi", "raspberry", "test")


158페이지 코드 4-20의 13행(빈 행 포함)(저자 제보)

   student = cur.fetchone():

===>

   student = cur.fetchone()


159페이지 코드 4-21의 10행(빈 행 포함)(저자 제보)

db = connect ("localhost", "pi", "raspberry", "test")

===>

db = MySQLdb.connect ("localhost", "pi", "raspberry", "test")


321페이지 세 번째 코드 박스에서 두 줄 추가 및 마지막 명령 줄 수정(저자 제보)

$ cd code/mjpg-streamer

$ make USE_LIBV4L2=true clean all

$ make DESTDIR=/usr install

==>

$ cd code/mjpg-streamer

$ wget https://github.com/swkim01/RaspberryPiWithIOT/raw/master/ch7/input_uvc_patch

$ patch -p0 < input_uvc_patch

$ make USE_LIBV4L2=true clean all

$ sudo make DESTDIR=/usr install


321페이지 마지막 코드 박스에서(저자 제보)

$ mjpg_streamer -i "./input_uvc.so -d /dev/video0 -n -f 30 -r 1280x720" -o "./output_http.so -n -w ./www"

==>

$ mjpg_streamer -i "input_uvc.so -d /dev/video0 -n -f 30 -r 1280x720" -o "output_http.so -n -w /usr/www" 


65페이지 두 번째 코드 박스의 첫 번째 행(저자 제보)

pi@raspberrypi pi $ set ==> pi@raspberrypi ~ $ set


104페이지 세 번째 코드 박스에서(저자 제보)

$ sudo apt-get install git $ git clone https://github.com/swkim01/blastpy.git

==>

$ sudo apt-get install git 

$ git clone https://github.com/swkim01/blastpy.git


111페이지 두 번째 문단 첫 번째 행(저자 제보)

/var/www.html ==> /var/www/html 


218페이지 네 번째 문단 세 번째 행(저자 제보)

textEdit 위젯 ==> label 위젯


301페이지 아래에서 두 번째 코드 다음에 아래의 두 줄 추가(저자 제보, 리눅스 커널 업데이트로 인한  수정)

또는 리눅스 4.4 버전 이상인 경우

$ sudo cp waveshare-dtoverlays/waveshare32b-overlay.dtb /boot/overlays/waveshare32b.dtbo

 

301페이지 아래에서 첫 번째 코드 다음에 아래의 두 줄 추가(저자 제보, 리눅스 커널 업데이트로 인한  수정)

또는 리눅스 4.4 버전 이상인 경우

$ sudo cp waveshare-dtoverlays/waveshare35a-overlay.dtb /boot/overlays/waveshare35a.dtbo

 

302페이지 위에서 첫 번째 코드에서 두 번째 줄  삭제(저자 제보, 리눅스 커널 업데이트로 인한  수정)

$ sudo nano /boot/config.txt

dtparam=spi=on

dtoverlay=waveshare32b

==>

$ sudo nano /boot/config.txt

dtoverlay=waveshare32b

 

302페이지 위에서 두 번째 코드 중 두 번째 줄 삭제(저자 제보, 리눅스 커널 업데이트로 인한  수정)

$ sudo nano /boot/config.txt

dtparam=spi=on

dtoverlay=waveshare35a

==>

$ sudo nano /boot/config.txt

dtoverlay=waveshare35a


330페이지 코드 7-8의 5-6행(빈 행 포함)(저자 제보)

    diff0 = cv2.absdiff(i[0], I[1])

    diff0 = cv2.absdiff(i[0], I[1])

==>

    diff0 = cv2.absdiff(i[0], i[1])

    diff0 = cv2.absdiff(i[0], i[1])


369페이지 세 번째 코드 박스(저자 제보)

$ git clone https://github.com/swkim01/weather.git

==>

$ git clone https://github.com/swkim01/weather.git

$ cd weather


378페이지 세 번째 코드 박스(저자 제보)

$ apt-get remove libportaudio0

$ apt-get install portaudio19-dev

$ apt-get install libportaudio2

==>

$ sudo apt-get remove libportaudio0

$ sudo apt-get install portaudio19-dev

$ sudo apt-get install libportaudio2


381페이지 두 번째 코드 박스의 2행(저자 제보)

$ cd wavesahre-7inch-touchscreen-driver

==>

$ cd waveshare-7inch-touchscreen-driver


383 페이지 두 번째 코드 박스(저자 제보)

$ git clone https://github.com/swkim01/imu.git

==>

$ git clone https://github.com/swkim01/imu.git

$ cd imu


404페이지 본문 첫 번째 행(저자 제보)

/dev/ACM0 ==> /dev/ttyACM0 


409페이지 10.6절 제목 다음에 다음의 내용 추가(저자 제공)(참고로, 이 부분은 재쇄 시에도 반영되지 않습니다)

이제 라즈베리파이에서 다음과 같은 프로그램을 작성한다.


$ vi xbeetest.py

import serial

 

 

con = serial.Serial('/dev/ttyAMA0', 9600, timeout=3)

 

 

while True:

    msg = con.read(5)

    print msg

    if msg[:3] == 'REQ':

        print "Requested by Arduino"

        con.write("ACK"+'\r\n')


아두이노를 재부팅하고 다음과 같이 프로그램을 실행하면 아두이노로부터 XBEE 모듈을 통해 전송한 ‘REQ’ 요청 메시지를 수신하고 ‘ACK’ 확인 메시지를 송신하여 아두이노 LED를 켰다가 끄게 된다.


$ python xbeetest.py

REQ

Requested by Arduino


472페이지 마지막 코드 부분 박스를 지우고 아래 내용으로 변경(저자 제보)
$ cd nodemcu-firmware/pre-build/latest
$ esptool.py --port=/dev/ttyUSB0 write_flash 0x00000 nodemcu_latest.bin
==>
Nodemcu 펌웨어는 이제 웹브라우저를 열어서 https://github.com/nodemcu/nodemcu-firmware로 접속한 후에 releases 링크를 클릭하면 최근에 업로드된 펌웨어를 다운로드할 수 있다. 또 다른 새로운 방법은 http://nodemcu-build.com으로부터 온라인으로 커스터마이징된 펌웨어를 빌드하여 다운로드할 수 있다.

513페이지 첫 번째 코드 박스(저자 제보)

$ cd /usr/share/openhab 

==>

$ cd <openhab 설치 디렉터리> 


566페이지 첫 번째 코드 박스(저자 제보)

$ sudo tools/hciconfig hci0 up

$ sudo tools/hciconfig hci0 leadv

$ sudo tools/hciconfig hci0 noscan

==>

$ sudo hciconfig hci0 up

$ sudo hciconfig hci0 leadv

$ sudo hciconfig hci0 noscan


566페이지 두 번째 코드 박스(저자 제보)

$ sudo tools/hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39

F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 00 01 00 01 C8 00

==>

$ sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39

F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 00 01 00 01 C8 00


577페이지 본문 네 번째 문단(저자 제보)

빌드 디렉터리를 만들고, 빌드한 다음, 설치한다.

==>

빌드한 다음, 설치한다.


577페이지 두 번째 코드 박스(저자 제보)

$ wget http://mosquitto.org/files/source/mosquitto-1.4.2.tar.gz

$ cd mosquitto-1.4.2

==> 

$ wget http://mosquitto.org/files/source/mosquitto-1.4.2.tar.gz

$ tar xvfz mosquitto-1.4.2.tar.gz

$ cd mosquitto-1.4.2 

 

591페이지 세 번째 문단 삭제(저자 제보)

MQTT 메시지 전송을 위해 PubsubClient 라이브러리를 설치해야 한다. 다음 명령을 실행하여 PUbsubClient 라이브러리를 다운로드하고 설치한다.



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

댓글을 달아 주세요



티스토리 툴바