丄帝De咗臂 发表于 2015-9-19 19:40:25

《智能家居DIY》智能路由器+网关+控制端解决方案(全开源)

《智能家居DIY》智能路由器+网关+控制端解决方案(全开源)
在智能设备、3D打印、物联网IOT很热门,智能家居协议还未形成统一,小米路由器、TP-LINK、极路由、360路由器等已经进入了智能时代,猜猜他们想干什么?成为路由器+家居控制中心,路由器是一天24小时都在运行,具备有成为家居控制中心的条件。


一、选择硬件板



在市面上有很多硬件板,如上图703n、RT5350、Raspberry(树莓派)、bananapi(香蕉派),我们要满足可以刷openwrt(具有Wifi的STA+AP、USB接口)。


经过研究,采用了性价比比较高的703n,改造成flash16M,内存64M,然后刷入openwrt系统。(采用其它板也可以,openwrt软件部分类式)
二、刷入openwrt系统


703n使用flash刷写器刷入openwrt固件(各种硬件开发板,刷入openwrt的方式不同)


使网页登陆openwrt(luci),如上图很像路由器系统网页设置,我们也可以修改成自定义的页面。
三、接上arduino+zigbee+nrf24l01


使用连usb连接(或如我们做成pcb板,直接插入openwrt板)


安装ch340、ftdi驱动(openwrt一条命令就可以安装)


这时openwrt可以和arduino串口通信(像电脑开发arduino一样简单)
编写串口通信代码可以使用lua、python、C代码编译、ipk编译(根据自己懂的语言开发)

如下python脚本:

print "ttyUSB0 ready..."
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1) #打开串口通信
#ser.write("lABC") #向串口发送字符
while True:
    data=ser.readline() #读取一行 读取1个字符read(1)
    print "serial data <<<"+data
    time.sleep(1)
ser.close()


然后再开发arduino+zigbee(串口通信,也兼容ble等)+nrf24l01(spi通信)代码,arduino开源有很多代码可以参考,zigbee自组网代码(可以跟我们联系要)。


四、云端服务器(手机端外网控制)


云端服务器可以使用java,aspx,php等语言,加上mysql,mssql,oracle等数据库,使用您善长的语言+数据库开发,API控制和保存数据记录。


云端主要实现与openwrt通信(可采用http、tcp、udp等)
http协议简单,但会有延时和耗cpu/ram资源,tcp长连接耗服务器资源,udp转发适合方案(但比较专业和深入)



五、终端


终端基础硬件,采用zigbee或arduino+nrf24(可含zigbee/ble等)做为与openwrt网关通信。



六、传感器,控制器


传感器上传数据到云端,供用户电脑手机查看分析报警等,如温度、湿度、pm2.5、气压、门磁、下雨、人体红外等。



控制器收到用户命令实现开关,控制家电类操作,如开灯、开门、开窗、电视、冰箱、空调等。


传感器数据流程:传感器-》终端无线-》网关无线-》云端服务器-》保存传感数据-》用户查看。
控制器数据流程:手机操作-》云端服务器-》网关-》网关无线-》终端无线-》开关命令。
原文:http://www.arduino.cn/thread-17433-1-1.html

大连林海 发表于 2015-9-20 16:19:32

看起来很不错的
页: [1]
查看完整版本: 《智能家居DIY》智能路由器+网关+控制端解决方案(全开源)