1、嵌入式综合实践设计报告目录一、 树莓派简介 .3二、 配置树莓派 .31. 树莓派供电 .32. 手动对 SD存储卡进行写操作(windows) .33. 连接笔记本电脑显示器 .3三、 硬件电路连接 .7四、 DHT11简介 .7五、 获取 DHT11传感器温湿度 .8六、 安装本地 MYSQL.10七、 连接阿里云 RDS数据库 .11八、 上传数据到传感云 .13九、 Cron 实现定时功能 .14一、 树莓派简介Raspberry Pi(中文名为“树莓派”,简写为 RPi,或者 RasPi/RPi)是为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,其系统基于 Linux。随着
2、Windows 10 IoT 的发布,我们也将可以用上运行 Windows 的树莓派。自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。二、 配置树莓派1. 树莓派供电树莓派的供电装置与智能手机的充电器是一样的。基本规格为 DC 5V(直流电),至少达到 700mA 的输出电流,树莓派 2 的输出电流应该更大,比如 1.5A 或 2A。2. 手动对 SD存储卡进行写操作(windows)选择一张 4GB 以上的 SD 存储卡,SD 卡插入笔记本电脑卡槽(或者需要一个读卡器)。下载官方发行的
3、树莓派操作系统发行包(http:/www.raspberrypi.org/downloads),并解压到本地。用管理员权限打开 Fedora ARM Installer(http:/bit.ly/ISLPc4 下载),将下载的镜像写入 SD 存储卡。如下图:3. 连接笔记本电脑显示器 网络设置:SD 卡插入树莓派的 SD 卡插槽,把树莓派和路由器用网线连接。打开电脑“网络和共享中心”,点击“WLAN(*)”点击“属性”,点击“共享”,在“允许其他网络用户通过此计算机的 Internet 来连接”前打勾。 查找树莓派 IP 地址:打开“运行”(win+R 键),输入 cmd”,输入“arp -a
4、”,在下图中的 0x4 接口下的动态地址就为树莓派的 IP 地址。 下 载PuTTy,在 Host Name 中输入树莓派 IP, 登入树莓派:在下图页面中 login 处输入树莓派账号(pi),在 password 处输入密码(raspberry)。回车进入下图页面 树莓派的桌面环境配置:在上 putty 中输入 sudo apt-get update; sudo apt-get install tightvncserver。安装完成 vnc 服务后,在上图中继续输入以下命令:vncserver :1 (一定要创建连接端口)。在第一次运行时,会提示你创建密码。在连接时就需要此密码。下载 Re
5、alVNC(http:/),在下图中输入树莓派 IP:1(如 192.168.0.113:1。在下图中输入上面创建的密码进入树莓派桌面三、 硬件电路连接DHT11 与树莓派引脚图如下:具体电路连接如下 DHT11 的 VDD 连接树莓派 17 号管脚,GND 连接 20 号管脚,DATA 连接18 号管脚。实物图如下:四、 DHT11 简介数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。DATA 用于微处理器与 DHT11 之间的通讯和同步,采用单总线数据格式,一次通讯时间 4ms 左右,
6、数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为 40bit,高位先出。数据格式:8bit 湿度整数数据+8bit 湿度小数数据+8bi 温度整数数据+8bit 温度小数数据+8bit 校验和数据传送正确时校验和数据等于“8bit 湿度整数数据+8bit 湿度小数数据+8bi 温度整数数据+8bit 温度小数数据”所得结果的末 8 位。DHT11 发送响应信号,送出 40bit 的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11 接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT1
7、1 不会主动进行温湿度采集.采集数据后转换到低速模式。通讯过程如图所示五、 获取 DHT11 传感器温湿度采用 Python 语言实现温湿度的获取,每执行一次程序读取一次温湿度的值。采用putty 中的 nano 编辑器完成汇编。步骤如下: 登入树莓派,获取 root 权限 进入 nano 编辑器,编辑 Python 程序,程序如下:#! /usr/bin/env pythonimport RPi.GPIO as GPIO import time channel = 12data = j = 0GPIO.setmode(GPIO.BCM)time.sleep(1)GPIO.setup(chan
8、nel, GPIO.OUT)GPIO.output(channel, GPIO.LOW)time.sleep(0.02)GPIO.output(channel, GPIO.HIGH)GPIO.setup(channel, GPIO.IN)while GPIO.input(channel) = GPIO.LOW:continuewhile GPIO.input(channel) = GPIO.HIGH:continuewhile j 100:breakif k 8:data.append(0)else:data.append(1)j += 1print “sensor is working.“p
9、rint datahumidity_bit = data0:8humidity_point_bit = data8:16temperature_bit = data16:24temperature_point_bit = data24:32check_bit = data32:40humidity = 0humidity_point = 0temperature = 0temperature_point = 0check = 0for i in range(8):humidity += humidity_biti * 2 * (7 - i)humidity_point += humidity_
10、point_biti * 2 * (7 - i)temperature += temperature_biti * 2 * (7 - i)temperature_point += temperature_point_biti * 2 * (7 - i)check += check_biti * 2 * (7 - i)tmp = humidity + humidity_point + temperature + temperature_pointif check = tmp:print “temperature : “, temperature, “, humidity : “ , humidi
11、tyelse:print “wrong“print “temperature : “, temperature, “, humidity : “ , humidity, “ check : “, check, “ tmp : “, tmpGPIO.cleanup() 保存(Ctrl+O)并退出(Ctrl+X) 执行此程序(dht11.py):python dht11.py六、 安装本地 MYSQL 使用管理员权限运行 apt-get 获取最新的 MySQL 及 Python 编程接口(之后用于数据库编程):sudo apt-get install mysql-server python-mys
12、qldb安装过程中需要输入 root 管理员的密码,该密码之后用于访问数据库系统。在本地 MYSQL 创建库“test”,表“dht”和三个列“dht_tem”,“dht_hum”,“dht_time”。mysql -u root p ;登入本地 MySQLcreate database test ; 创建数据库”test”USE test ; 选择数据库”test”create table dht ;创建表“dht”CREATE TABLE dht(dht_tem DECIMAL(4,1), dht_hum DECIMAL(4,1),dht_time char(25) ;创建列“dht_tem”,“dht_hum”,“dht_time”完成后查看建好的表“dht”,如下图所示: 在之前的 dht11.py 中添加如下几段语句:import MySQLdbconn = MySQLdb.connect(host=localhost,port=3306,user=root,