黑科技 | 巧用樹莓派 手把手教你DIY一個智能家居伺服器! Xuedot.Com

樹莓派 發現 - 學點兒網 - 學點兒 Xuedot.Com

人們從過去依靠互聯網單純獲取數字化信息,發展到希望在所有可以接入互聯網的地方依靠計算機和感測器遠程控制任意設備,從而直接改善自己的生活,「物聯網」技術就這樣應運而生,而樹莓派及其外圍設備以及感測器在這中間扮演著重要的角色,樹莓派好比人的大腦,感測器就像人的眼睛,而外圍設備好比人的四肢,利用它們搭建好各種軟硬體平台,才能使「物聯網」真正落到實處。

樹莓派(Raspberry Pi)是大家熟知的迷你計算機系統,看上去像一塊電路板,但具有完整的硬體結構,價格非常便宜。通過樹莓派,可以實現很多低成本的自動化應用形式,比如連接感測器昨晚門窗警報器、或是把一台傳統音箱無線化,通過軟體也可實現統一的方便管理,實現基本的智能家居體驗。

Raspbian操作系統介紹 發現 - 學點兒網 - 學點兒 Xuedot.Com

樹莓派的操作系統 Raspbian 的開發者是麥克·湯姆森和彼得·格林。該系統為官方推薦的操作系統。它巧妙地將 Paspberry 和 Debian 的名字合併成了一個單詞。Raspbian 是基於 Debian 的專為 Cotex-A 系列開發的能運行在樹莓派上的操作系統。

Debian 是另一種發行版 Ubuntu 的基礎,而 Ubuntu 是最為流行的 Linux 桌面系統,本系統擁有良好的社區支持。Raspbain 系統附帶著35000多個軟體包,並集成了輕量級的圖形界面 LXDE。Raspbian 提供了完善的功能,並且組織的非常好,能夠支持最新的硬體和軟體。

隨著樹莓派在極客社區中的廣泛使用,擁有上千萬台的銷量,樹莓派已經成為世界第三大計算平台,樹莓派是由樹莓派基金會開發的一款微型電腦,基金會只是設計電路圖,設計操作系統和維護社區,樹莓派的生產現在有 RS 和 element14 兩家工廠進行,所以樹莓派基金為桌面電腦打造了一款操作系統:Raspbian Pixel。

樹莓派3代b+系統安裝與簡單的搭建 發現 - 學點兒網 - 學點兒 Xuedot.Com

樹莓派3代b+,一套樹莓派大約三百塊,包括一些雜七雜八的零件,比如散熱片、風扇、內存卡、讀卡器、供電電源、亞力克板殼子等等。樹莓派配備的介面很多,HDMI介面、網線介面、4個USB介面、耳機介面,還有一排針形引腳,可以引線控制一些附加設備。樹莓派的具體配置如下:1.2GHZ CPU,1GB運存,可擴展的16GB存儲,帶藍牙、Wi-Fi功能。樹莓派雖然只有信用卡大小,但是內心卻非常的強大,電腦能做的事情,基本上它都能做,可謂雀雖小五臟俱全。

樹莓派兼容的系統有很多,官方原配的Raspberry系統,CentOS 7,Ubuntu,Win10等等。Raspberry系統Raspbian有一個弊端,它具有圖形桌面和一些不必要的服務,會佔用一部分CPU和內存資源,畢竟樹莓派只有1G的內存,為了儘可能為以後的應用程序余留足夠的資源,開發者可以選擇萬年不崩潰超級穩定的CentOS系統,整個系統只佔用了120M左右內存,0.3%的CPU。CentOS系統可以在centos官網搜索下載,最終下載的系統如右上圖:

下載完畢之後解壓出.img系統,然後準備燒制系統。首先需要把TF內存卡插在讀卡器上,然後連接電腦,電腦上下載Win32DiskImager這個軟體,打開軟體,選擇解壓好的系統,點擊Write寫入系統,直到寫入完畢。

寫好之後,直接將TF卡插進樹莓派卡槽,然後一定要使用網線連接路由器,連接完畢後,在路由器管理頁面找到樹莓派的IP,用Xshell遠程登錄這個IP,賬號默認root,密碼centos。

如果不想使用網線,那麼我們需要配置樹莓派的Wi-Fi模塊。

在Shell裡面輸入下面命令:

curl--location

github.com/RPi-Distro/f> /usr/lib/firmware/brcm/brcmfmac43430-sdio.bin

curl--location

github.com/RPi-Distro/f> /usr/lib/firmware/brcm/brcmfmac43430-sdio.txt

systemctl reboot

等待重啟完畢後,重新用Xshell連接樹莓派,執行下面命令:

nmcli d #執行這條命令,如果有wlan Wi-Fi這樣的字眼出現,表示Wi-Fi驅動安裝成功。

nmcli d wifi #查看周圍的wifi,記下需要連接Wi-Fi的SSID。

nmcli d wifi connect yourSSID password yourpassword #連接wifi,替換yourSSID和yourpassword。

nmcli d show wlan0 #查看wlan0的狀態,記下WiFi下的IP。

如果WiFi狀態正常,這個時候便可以拔掉網線,然後用Xshell重新連接樹莓派WiFi的IP。

當然,如此這樣還是不夠的,比如在命令行輸入date命令,你會看到時間是錯的,因為centos默認的是UTC時區,下面需要更改時區,改為中國時區。

首先執行命令:

rm /etc/localtime #刪除原來的時區文件

sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #把中國時區鏈接過去

無須重啟,輸入命令date發現直接生效。

到這裡基本上系統算是安裝完畢了,下一步的目標是做一個鬧鐘和空調遙控器,而且能夠用手機隨時遠程控制室內設備。

鬧鐘設定

在ssh的命令行輸入下面的命令:

yum install alsa* #安裝關於音樂播放器的各種包

modprobe snd-bcm2835 #向內核加入音效卡模塊,使其識別音效卡

aplay -l #列出當前的音效卡,如下圖

我們看到,樹莓派只有card 0這一個音效卡,當然如果有其他音效卡,比如USB音效卡,他會列出來card 1、card 2等等。

下面,我要讓aplay播放一首歌,目前由於MP3的版權問題,暫不支持Mp3,但是可以支持常用的如wav格式的音樂。首先下載一個wav格式的音樂到/home文件夾下,我下載的是bjdldrz.wav這個音樂,之後的敘述統一用這個文件,大家可以隨意更改,然後輸入下面的命令:

aplay –D hw:0,0 /home/bjdldrz.wav #在這裡,hw:0,0表示音效卡為0號,device為0號。

但是這個一次只能播放一個音頻,如果想播放一個之後再用命令行播放一個,輸入下面的命令:

aplay -Dplug:dmix /home/bjdldrz.wav

但是這個一次只能播放一個音頻,如果想播放一個之後再用命令行播放一個,輸入下面的命令:

aplay -Dplug:dmix /home/bjdldrz.wav

這個播放是持續佔用SSH的命令行的,播放時候不能執行其他命令了,除非新開一個窗口,如果不想持續佔用命令行窗口,即後台播放,可以在命令後面添加&。

aplay –D hw:0,0 /home/bjdldrz.wav &

聲音是播放了,但是音量特別低,怎麼調高音量呢?有一個簡單的方法,輸入命令:

alsamixer –c 0 #

這個時候會顯示一個圖形界面,如下圖:

現在音量是79,按鍵盤的上和下就能調節音量。

當然,這裡還有一個方法可以調節音量,具體執行命令如下:

amixer -c 0 controls #

這個時候會列出一些音效卡參數,如下圖:

再執行命令:

amixer-c 0 cset numid=1,iface=MIXER,name=』PCM Playback Volume』300 #300

這個可以根據自己情況調節,一般是不超過400。

到這裡聲音大小可以調節了,而且音樂也可以播放了,那就進一步做一個鬧鐘吧,設置每天早上7點半自動播放音樂,美滋滋。

設置鬧鐘首先需要了解一下sh腳本(關於腳本的開發,隨後慢慢講解),我們在home文件夾下直接vim新建一個play.sh,寫入下面的內容:

#!/bin/bash

aplay-D hw:0,0 /home/bjdldrz.wav &

然後輸入:wq保存退出,並賦予它執行許可權:

chmod 777 play.sh

這樣play.sh就可以運行了,然後我們把它加入到鬧鐘裡面(上一節可是講過一定要把時區設置成中國時區,不然你設置的鬧鐘的時間是UTC時間,可能會大半夜叫醒你哦)。執行下面的命令:

crontab-e

這個時候會顯示出一個編輯頁,在編輯頁寫入下面內容:

30 7 * * * nohup /home/play.sh > /dev/null 2>&1 &

編輯完畢後,保存退出,然後就開始美滋滋睡大覺等著音樂鬧鐘叫醒你吧!

家居智能機器人控制

隨著樹莓派越來越強大,通過樹莓派開發心中的智能家居系統也越來越簡單。樹莓派3版本有1G內存,1.2GHZ頻率,擁有操作系統的樹莓派預留了40個可以驅動各種感測器和驅動器的 I/O 介面,所以使用樹莓派作為機器人的控制器足以應對。樹莓派和其他機器人的控制器有著本質的不同,因為樹莓派有完善的操作系統,其他的只有控制系統,並且對 Python 語言支持的非常的好。所以使用 Python 語言可以快速地在樹莓派上開發軟體去控制機器人的感測器。樹莓派還有能夠運行人工智慧相關演算法的優勢,比如可以在上面運行 SVM,能簡單的對數據進行分類,將樹莓派作為機器人的大腦是未來的一種趨勢。

樹莓派打造的機器人主要是利用GPIO介面去控制機器人的驅動和各種感測器,因為樹莓派有操作系統,所以使用Python可以開發控制軟體,現在有很多的庫文件支持。樹莓派的多個可編程的 GPIO(General Purpose Input/Output)介面,可以用來驅動各種外設,如感測器,步進電機等。目前在樹莓派上流行的 GPIO 開發環境主要有兩種,Python GPIO 和基於 C 語言的 wiringPi。目前比較推薦 Python GPIO,因為 Python 不僅上手簡單,而且其解釋語言的特性使得程序不用編譯,對代碼做了任何修改之後就能直接運行,極大方便了調試。

機器人分成四大部件:機器人控制系統,這部分有人稱為是機器人大腦部分。機械部分,機器人都是要執行一定的任務的,這部分任務就是機械部分完成的。感知部分,機器人要不斷的感知周圍環境,並且通過感知進行信息或者數據的傳輸。驅動部分,機器人通過驅動部件鏈接機械和感測器,從而驅動機械部件執行一定的任務。

步進電機和超聲波感測器都是協助樹莓派實現功能的重要外設。編寫的這些程序通過一定的工具燒進樹莓派的TF卡中,通過 Python 編寫相應程序後,可以驅動步進電機在不同時間正轉和反轉,從而帶動相關連接部件的轉動。

超聲波感測器是利用超聲波的特性研製而成的感測器。而安裝了超聲波感測器的智能機器人,在樹莓派的控制下可以識別放在周圍的障礙物,前後移動超聲波測距儀,將收集的信號傳輸回到數據處理中心,數據處理中心會顯示測得的距離,完全可以實現小車壁障的功能。

Shield系列連接擴展器

為解決某些樹莓派產品並不具備全面的網路連接功能,Sixfab公司於是推出了基於樹莓派的Shield系列連接擴展器,讓人們可以更自由地打造智能家居環境。

Sixfab Shield系列共有五種型號,包括4G/LTE、3G、GSM/GPRS、GPS及Xbee標準,至於樹莓派的兼容性,則包括RPi A、RPi 2、RPi 3及Zero,應用系統則支持Arduino、Linux、macOS、Windows及Android,能夠充分滿足不同用戶的需求。

有了Sixfab Shield,樹莓派愛好者可以更加方便地定製自己的系統和應用需求,不再僅僅局限於Wi-Fi和藍牙連接,而是可以實現任何位置的無線控制,亦可以通過GPS數據實現IFTTT式的規則。所有Sixfab Shield都採用了micro USB介面與樹莓派計算機連接,非常方便,另外也可實現一些其他應用形式,比如連接筆記本作為一個4G Modem,或是實現智能手機與電腦的點對點連接等等。Sixfab Shield每個模塊的價格在19至99美元不等,約合人民幣130至672元。

延伸閱讀:

i生活 | 不怕雪天,DIY自行車防滑招數!

學點兒DIY | 自製簡易數碼複印機、掃描儀 屌炸天

學點兒DIY | 純手工給老婆大人做個電子錶,這狗糧很有技術含量!

學點兒DIY | 真~達人!自製攝影小燈箱,讓你的照片變身商業大片

i健康 | 【醫療】急救手冊 生活必備 人手一份(四十餘種生活急救知識)

weidian.com/s/316910540 (二維碼自動識別)

我是廣告:專業製作微信朋友圈10秒鐘視頻,讓朋友用不一樣的重新認識你!添加微信/QQ:271202419。精彩,在10秒之內綻放!


推薦閱讀:

TAG:DIY | 树莓派RaspberryPi | 智能家居 |