用树莓派做魔镜

用树莓派来做魔镜

 

一部分内容的转载声明:我是参照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

输入以下内容

Phpinfo();

?>

保存后在浏览器中输入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

 

七、网页安装:

这是我使用的源码

源码来自:

https://github.com/HelloWk/MagicMirror

 

原作者是用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+总要的吧,毕竟屏幕这么贵!!!

 

 

再附加一张老外的成品图,以显示这个项目的逼格还是有那么一点点的


不过我们的网页代码和他还是不太一样的,这个只是让你们看看,做得好的是怎么样的!!!

就是要花点钱
有钱了,就都不是问题,/摊手/

 用树莓派做魔镜_第1张图片

 

 

你可能感兴趣的:(python,树莓派,魔镜)