10371| 1
|
《智能家居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、气压、门磁、下雨、人体红外等。 控制器收到用户命令实现开关,控制家电类操作,如开灯、开门、开窗、电视、冰箱、空调等。 传感器数据流程:传感器-》终端无线-》网关无线-》云端服务器-》保存传感数据-》用户查看。 控制器数据流程:手机操作-》云端服务器-》网关-》网关无线-》终端无线-》开关命令。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed