Week15
Week15, 12/20 LSA
1061
, Project
, NCNU
, RaspberryPi
tags: 樹莓派大補帖
硬體設備
- Raspberry Pi 3 Model B
- MicroSD card
- (Option) MicroSD 轉 SD card
- (Option) 讀卡機
- USB to TTL 線
- (Option) 電源供應用 micro usb
系統燒錄
目前使用
Raspbian - 左邊是桌面版(提供圖形化介面)、右邊是CLI版(無圖形化介面)
選用
NOOBS - 多系統,左邊是完整版(可以離線安裝)、右邊是Lite版(需要網路)
格式化記憶卡
此步驟可以直接用
MacOS
開啟磁碟工具程式並選取記憶卡後點選清除,格式記得設定
MS-DOS (FAT)
Windows
檔案總管右鍵點選記憶卡選擇格式化,將格式設定成
MS-DOS (FAT)
燒錄軟體
燒錄軟體使用Etcher
(傳送門),支援MacOS及Windows,挺好用的 👍
安裝方式
1. 下載、安裝 Etcher
2. 打開,選擇Raspbain安裝檔、記憶卡
3. 按下Flash!
等待完成
TTL設定與連接
打開剛剛燒錄好的記憶卡,找到config.txt
打開在最底下新增
# Enable uartenable_uart=1
完成後將記憶卡插入Raspberry Pi並且接上電源,紅色指示燈為電源、黃色指示燈為記憶卡讀取,如果紅色燈閃爍代表供電不穩。
Raspberry Pi可利用micro usb及GPIO 5V供電,要注意的是GPIO沒有防電流過載,所以請小心使用
在做下面的動作之前,先當個接線生把對應的GPIO接上,再將USB連到電腦
Linux
sudo apt install minicom
sudo minicom -D /dev/ttyUSB0
:::info 如果沒有畫面的話按一下Enter :::
MacOS
- 安裝PL2303HXD Driver,安裝後會重新開機
- 接上TTL USB後打開終端機輸入
ls /dev/cu*
,如果顯示包含/dev/cu.usbserial
代表驅動及TTL有接到電腦 - 在終端機輸入
screen /dev/cu.usbserial 115200
連樹莓派 - 下方沒有出現其他訊息像R/W busy等...且終端機全黑的話(也有可能顯示系統載入的訊息),可以直接輸入帳號密碼進入系統
Windows
- 安裝Putty (或用3M RFID Reader光碟裡面的putty0_6.exe也可以)
- 安裝PL2303HXD Driver
- 到裝置管理員看TTL是連線到USB的第幾號COM
- 打開Putty,
Connection Type
選擇Serial,然後在Serial Line
輸入剛剛看到的COM,Speed
打115200即可連線 - 在畫面中輸入帳號密碼進入系統
:::info 預設帳號密碼 帳號:pi 密碼:raspberry :::
設定Wi-fi連線
以下都在黑黑的畫面中進行,而且只能用鍵盤控制
- 輸入 sudo raspi-config 後輸入密碼到下列畫面
- 選擇
Network Options
並按下enter進入 - 選擇
Wi-fi
進入 - 輸入SSID按下enter確認後再輸入密碼(如果沒有密碼可以直接enter完成設定)
- 選finish回到指令列
- 最後可以在輸入
ifconfig
看一下有沒有網路連線,並且記住那個IP
開啟並建立SSH連線
開啟SSH
- 一樣輸入 sudo raspi-config
- 選擇
5 Interfacing Options
進入 - 選擇
P2 ssh
進入 - 選
YES
- 訊息顯示SSH開啟選擇確認離開
- 選finish回到指令列
之後可以拔除TTL線並且使用SSH連線
建立SSH連線
MacOS
- 打開終端機並且輸入
ssh pi@剛剛看到的IP
- (第一次連線時) 詢問是否建立ECDSA key,輸入
yes
建立- 輸入密碼
raspberry
連線成功會長得像下面圖片
Windows
- 打開Putty
Connection Type
選sshHost name
打剛剛的IP- 按Open即可開啟連線,之後輸入密碼即可使用
修改時區
- 輸入
sudo raspi-config
- 選擇
4 Localisation Options
- 選擇`I2 Change Timezone
- 選擇
Asia
- 選擇
Taipai
:::info 如果未來使用語音辨識服務需要將語言/時區設定至該語言 :::
修改軟體源
讓Raspbian不再連線至國外下載
- 備份原設定檔
sudo cp /etc/apt/sources.list /etc/apt/sources.list.$(date +%F)
修改套件庫來源
改成就在隔壁的 ubuntu-tw 站
這的步驟是將
/etc/apt/sources.list
中的字串http://raspbian.raspberrypi.org/raspbian/
替換為http://ftp.ubuntu-tw.org/mirror/raspbian/raspbian/
[color=teal] 2018/12/26 更新清除原有的 Cache
sudo apt-get clean all
- 享受快速的更新
sudo apt-get update
修改語言設定 (Not sure)
- 若 ~/.bashrc 裡有
LANGUAGE=en_US:enLANG=en_US.UTF-8
先刪掉後在~/.bashrc 裡加上
export LC_ALL="en_US.UTF-8"
- 執行
sudo locale-gen en_US.UTF-8sudo dpkg-reconfigure locales
自動寄信至信箱
傳送檔案至樹莓派
scp `檔案` pi@`樹莓派IP位址`:`路徑`
Python 寄信程式
這個程式會放在Pi上,如果是需要放在危險環境的可參考叡可可筆記
import subprocessimport smtplibimport socketfrom email.mime.text import MIMETextimport datetime# Send to which IP addressto = '寄到哪個e-mail帳號'# Using specific gmail accountgmail_user = '你的Gmail帳號'gmail_password = '你的Gmail密碼'# SMTP commandsmtpserver = smtplib.SMTP('smtp.gmail.com', 587)smtpserver.ehlo()smtpserver.starttls()smtpserver.ehlosmtpserver.login(gmail_user, gmail_password)today = datetime.date.today()# Linux Specific shell commandarg='ip route list'p=subprocess.Popen(arg,shell=True,stdout=subprocess.PIPE)data = p.communicate()split_data = data[0].split()ipaddr = split_data[split_data.index('src')+1]my_ip = 'Your ip is %s' % ipaddrmsg = MIMEText(my_ip)msg['Subject'] = 'IP For RaspberryPi on %s' % today.strftime('%b %d %Y')msg['From'] = gmail_usermsg['To'] = tosmtpserver.sendmail(gmail_user, [to], msg.as_string())smtpserver.quit()
將寄信加入開機程序中
:::warning
建議先安裝vim,方便編輯sudo apt install vim
按 I 可以開始編輯
按 ESC 後按 :
打 wq
再按下 Enter 即可存擋離開
:::
sudo vim /etc/rc.local
- 在
printf ...
那行底下加上
python 檔案路徑 (通常為 /home/pi/檔案名稱.py) &
3. 存擋離開
4. 重開機測試
sudo reboot
5. 樹莓派關機 sudo shutdown -h now