1. 程式人生 > >用樹莓派做魔鏡

用樹莓派做魔鏡

用樹莓派來做魔鏡

一部分內容的轉載宣告:我是參照http://www.tuicool.com/articles/IFnQn2U這個網站做得,並加以修改,完成了這次大作業

一、材料

樹莓派、原子鏡(我們是用貼膜的,材料還沒到,暫時不知道效果怎麼樣)、顯示器(顯示屏+對應的驅動板)、HDMI線(HDMI轉VGA)、8G及以上容量記憶體卡、Raspbian系統、Dht11溫度感測器

二、使樹莓派顯示中文

1.更新軟體包(過程會很慢 耐心等待):

sudo apt-get update

apt-get upgrade

2.安裝字型

sudo apt-get install ttf-wqy-zenhei

3.重新整理字型檔快取

sudo fc-cache

4.字型配置

sudo dpkg-reconfigure locales

5.用上下鍵和空格鍵選擇下列內容然後回車(這些還是很有必要選的,不然後面的中文很可能輸不出來!!!)

en-GB.UTF-8 UTF-8

zh_CN.GB2312

zh.CN.GB18030GB18030

zh_CN.GBK GBK

zh_CN.UTF-8 UTF-8

在出現的選單裡選擇zh_CN.UTF-8,回車確定

6.安裝中文拼音輸入法

sudo apt-get install scim-pinyin

7.設定時間

sudo dpkg-reconfigure tzdata

先選擇Asia,回車,再選擇ShangHai,回車

8.重啟

sudo reboot

三、螢幕設定

如果你想讓魔鏡為縱向模式,所以需要將螢幕順時針旋轉90度。

樹莓派的BIOS設定儲存在系統啟動分割槽中。在這分割槽中,有一個config.txt檔案,載有所有設定。要旋轉顯示器,在這檔案內加上以下兩行程式碼:

1.螢幕旋轉90°

display_rotate=1

2.允許HDMI支援熱插拔

hdmi_force_hotplug=1

四、瀏覽器下載

有些人原裝的瀏覽器就是chromium,就不用下載了,直接用原來那個就好了

這一步是給沒有chromium瀏覽器的人看的

我試了很多網上的指令都不能執行,還好我的搭檔這次大作業比較認真,找到了這個下載chromium的教程:

http://video.tudou.com/v/XMTc4OTczNjEyMA==.html#?qq-pf-to=pcqq.c2c

在樹莓派中找到視訊教程中的網站進行下載就好了

五、配置伺服器

1.安裝Apachce

sudo apt-get install apache2

sudo apt-get install apache2-doc

sudo apt-get install apache2-utils

2.PHP

sudo apt-get install php5

sudo apt-get install libapache2-mod-php5 php5-xcache

3.建立一個PHP網頁()

sudo nano /var/www/html/index.php

輸入以下內容

<html>

<?php

Phpinfo();

?>

</html>

儲存後在瀏覽器中輸入http://locahost並回車,出現以下介面即為成功

(如果是apache頁面請用以下命令刪除/var/www/html目錄下的index.html檔案)

rm -rf /var/www/html/index.html

在這之前,我使用了一個老外的教程,但是一直沒有成功,這次不成功也對我這一步造成了重大的影響,就是我沒有把之前下載的nginx給解除安裝掉,導致我即使把index.html刪了也沒用

所以一定要把之前同類型的軟體都給解除安裝掉,否則會對實驗結果造成影響!!!

六、Chromium的開機自啟及全屏執行並指向特定頁面

1.在/home/pi/.config目錄裡建立一個autostart資料夾

mkdir /home/pi/.config/autostart/

2.在/home/pi/.config/autostart目錄裡建立並編輯my.desktop檔案

nano /home/pi/.config/autostart/my.desktop

3.輸入以下內容

[Desktop Entry]

Type=Application

Exec=chromium-browser –disable-popup-blocking–no-first-run–disable-desktop-notifications –kiosk

nano編輯器Ctrl+O鍵是寫入檔案(儲存檔案)會提到是否儲存,請按回車鍵

Ctrl+X退出編輯器

4.在Chromium中設定開啟瀏覽器是開啟指定頁為:http://localhost

5.滑鼠不移動時自動隱藏游標

sudo apt-get install x11-xserver-utils unclutter

七、網頁安裝:

這是我使用的原始碼

原始碼來自:

原作者是用FTP上傳的,但是我試了試不太行,我就直接用電腦上git上下載好,然後U盤傳輸

簡單粗暴!!

把MagicMirror裡面的檔案拷到/var/www/html這個資料夾,並且把MagicMirror裡面的檔案直接放出來,這個殼也不要了

八、魔鏡配置檔案:

接下來的教程

九、新聞訂閱

十、溫度感測器

直接去原來的網站看吧,基本都是對的了:

http://www.tuicool.com/articles/IFnQn2U


唯一可能會有問題的是,python要求縮排的,這個網址的程式碼,沒有縮排會導致執行不出來(應該是網頁的原因)


我在下面有吧dht11.py的程式碼貼出來,可以直接複製來用一下!!!

第九步驟弄完以後,我出現了變不了中文的情況,這個難受了我很久


結果還是被我的搭檔破解了:

到瀏覽器中找編碼形式,形式之間轉一轉,然後再轉會UTF-8的形式,reboot過以後,發現就可以了,原理我也不懂,只能說緣分來了

擋也擋不住!

我順便把dht11的py檔案排好版給你們,省得基礎差的,結構都找不出來。。。

#!/usr/bin/python

 

import RPi.GPIO as GPIO

import time

 

channel = 17

 

while True:

       data= []

       j= 0

       GPIO.setmode(GPIO.BCM)

 

       time.sleep(1)

 

       GPIO.setup(channel,GPIO.OUT)

       GPIO.output(channel,GPIO.LOW)

       time.sleep(0.02)

       GPIO.output(channel,GPIO.HIGH)

       GPIO.setup(channel,GPIO.IN)

 

       whileGPIO.input(channel) == GPIO.LOW:

              continue

       whileGPIO.input(channel) == GPIO.HIGH:

              continue

 

            while j < 40:

                 k = 0

            while GPIO.input(channel) == GPIO.LOW:

                 continue

 

            while GPIO.input(channel) == GPIO.HIGH:

                 k += 1

                 if k > 100:

                        break

                 if k < 8:

                        data.append(0)

                 else:

                        data.append(1)

                 j += 1

 

            print "sensor is working"

            print data

 

            humidity_bit = data[0:8]

            humidity_point_bit = data[8:16]

            temperature_bit = data[16:24]

            temperature_point_bit = data[24:32]

            check_bit = data[32:40]

 

            humidity = 0

            humidity_point = 0

            temperature = 0

            temperature_point = 0

            check = 0

 

            for i in range(8):

                 humidity += humidity_bit[i] *2 ** (7 - i)

                 humidity_point +=humidity_point_bit[i] * 2 ** (7 - i)

                 temperature += temperature_bit[i] * 2 ** (7 - i)

                 temperature_point +=temperature_point_bit[i] * 2 ** (7 - i)

                 check += check_bit[i] * 2 **(7 - i)

 

            tmp = humidity + humidity_point + temperature + temperature_point

 

            if check == tmp:

                 f =file("/var/www/html/th/wth.th","w+")

                 li =['{"temperature":%s,"humidity":%s}' % (temperature,humidity) ]

                 f.writelines(li)

                 f.close()

 

            time.sleep(10)

 

            del data[:]

            j = 0

 

            GPIO.cleanup()

我本來還想加點語音識別的功能的,給大作業提提分數

魔鏡魔鏡,誰是世界上最帥的人

是你呀,主人

但是,實力有限,實在寫不出來

看看網上都是要手動控制時間的長短的,這樣就達不到爸爸魔鏡的效果了

如果有大神實現語音識別功能了,一定要私信給我,感動!!!


晒晒醜圖吧,我們直接用電腦做的,螢幕買不起
也沒有裝裱過,畢竟樹莓派也是學校提供的,用完還得還回去,很難受

講道理這個魔鏡真的要做完,成本還挺高的,大一點的魔鏡1200+總要的吧,畢竟螢幕這麼貴!!!

 

再附加一張老外的成品圖,以顯示這個專案的逼格還是有那麼一點點的


不過我們的網頁程式碼和他還是不太一樣的,這個只是讓你們看看,做得好的是怎麼樣的!!!

就是要花點錢
有錢了,就都不是問題,/攤手/