什麼是終極玩法?
可能很多人買了樹莓派只是裝了個系統,就放在家裏吃灰了。
我之前也只是簡單的裝個 shairplay 拿它來當 airplay 的 server,用iPhone 控制它放音樂。
前一段在 name.com 買了個域名,修改 A 記錄的設置特別快(幾乎秒生效)。
而且發現住處的電信寬帶是有公網 IP 的,然後決定給樹莓派綁個域名,這樣就可以在任何能上網的地方訪問它了。
然後你就可以在樹莓派上裝各種傳感器、攝像頭、紅外遙控,並在任何地方獲取到傳感器的數據,或者遙控操作家裏的各種電器。
今天先講第一步:搭建平台
需要準備的東西
- 樹莓派(裝好 raspbian 系統)
- 自己的域名
- 有公網IP的寬帶和能設置DMZ的路由器
具體方法
-
設置路由器
進入路由器的設置頁面,設置 DMZ 指向內網樹莓派所用的IP地址,這樣樹莓派就可以暴露給外網了。 -
設置DNS
去域名服務商哪裏添加一條A記錄,指向路由器的共網IP(可以在路由器的設置頁看到)
-
上面的設置生效後,你已經可以從公網訪問你的樹莓派了。為了防止IP地址變化我在樹莓派上用crontab每小時跑一次下面的腳本。作用是當公網IP改變時向我的郵箱發郵件。
checkIP.sh 內容:
#!/bin/bash IP=`wget -q -O - http://www.biranchi.com/ip.php` SCRIPTSHOME=$(dirname $0) IPLOG=$SCRIPTSHOME/last.ip source $SCRIPTSHOME/checkIP.conf SUBJECT='IP Address' DEPS=`which sendemail` if [[ $DEPS = "" ]]; then echo "The program 'sendemail' is currently not installed. You can install it by typing:" echo "sudo apt-get install sendemail" exit 1; fi if [ ! -f "$IPLOG" ]; then touch $IPLOG fi LASTIP=`cat $IPLOG` if [[ "$LASTIP" != "$IP" ]]; then M="Current IP $IP was $LASTIP" echo $M echo $IP > $IPLOG sendemail -u $SUBJECT -s $SMTP -t $TO -f $FROM -m $M -xu $USERNAME -xp $PASSWORD -o tls=yes else echo "Current IP $IP didn't change" fi exit 0同級目錄下還需要一個 checkIP.conf 文件:
#SMTP Config SMTP=smtp.qq.com FROM=integ@integ.me USERNAME=integ@integ.me PASSWORD=XXXXXX #Send email to TO=812797963@qq.com然後在crontab里加一個每小時執行一次的任務:
$ crontab -e #添加每小時一次的任務 0 * * * * /home/pi/checkIP.sh
然後當你的郵箱收到改變IP的通知時,去域名商那裏改下IP。
通過上面的努力,我們成功把樹莓派變成了能在公網訪問到的服務器。
恭喜你,平台搭建到此已成功結束,下一篇會講如何用樹莓派和攝像頭做些好玩的東西。