文件名称:使用开源硬件组建家庭云信息系统
文件大小:626KB
文件格式:ZIP
更新时间:2019-11-03 09:18:18
C++,源码
家庭云信息YunHome 本项目使用开源硬件组建家庭云信息系统,该系统可以从Internet获取各类常用信息(如天气预报等),并且在一个TFT显示屏上显示。 目前该项目使用两个硬件: 1. 一块Arduino Yun开发板(http://arduino.cc/), 你可以从Arduino 中国代理的天猫商店上购买到:http://xidikaiyuanshuma.tmall.com/ 2. 一块矽递 2.8" TFT触摸屏扩展卡,也可以从该商店购买到:http://xidikaiyuanshuma.tmall.com 硬件安装配置: 1. 将触摸屏扩展卡插入Arduino开发板,然后用Micro USB连接线连接电脑和Arduino。 2. 参照http://arduino.cc/en/Guide/ArduinoYun 的描述安装驱动程序和设置WiFi。 3. 下载并安装Ardunio IDE (http://arduino.cc/en/Main/Software), Arduino Yun要求1.5.5以上版本。 4. 运行IDE,Tools->Board->选择Ardiuno Yun;Port->选择Ardiuno Yun所在的端口。 5. Sketch->Import Library...,在弹出框选择本项目里面arduino-src/libraries/SeeedTFTv2目录;同样方式选择SeeedTouchScreen目录。 运行调试: 1. 运行样例程序: File->Examples->SeeedTFTv2->drawCircle,然后Verify, Upload,完毕后可以看到屏幕上出现不同颜色的圆形;同样方式可以测试其他样例程序。 Spacebrew服务器安装配置(如果仅作为测试,可以使用sandbox.spacebrew.cc,此步骤可以跳过) 服务器可使用任何托管或者云服务器,运行linux系统。服务器使用spacebrew(http://docs.spacebrew.cc/),本节以Ubuntu为例,介绍如何安装运行spacebrew. 1. 安装node.js(https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#ubuntu-mint-elementary-os): curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs 2. 安装ws: npm install ws 3. 安装forever module npm install forever-monitor sudo npm install forever -g 4. 安装git sudo apt-get install git 5. 克隆Spacebrew代码库 git clone https://github.com/Spacebrew/spacebrew.git 6. 运行Spacebrew cd spacebrew forever start node_server.js 7. 测试浏览器访问(替换为实际ip地址): http://spacebrew.github.io/spacebrew.js/spacebrew_button/index.html?server=&name=button2 8. 测试浏览器访问(替换为实际ip地址):http://spacebrew.github.io/spacebrew/admin/admin.html?server= 客户端(Arduino Yun)Spacebrew 安装 ArduinoYun 端采用开源库yunSpacebrew(https://github.com/julioterra/yunSpacebrew),安装测试方法: 1. 下载源代码 2. 拷贝python文件到yun: scp -r ./spacebrew root@arduino.local:/usr/lib/python2.7 3. 拷贝shell文件到yun: scp ./run-spacebrew root@arduino.local:/usr/bin 4. ssh到yun,修改文件权限: chmod 0755 /usr/bin/run-spacebrew 5. 导入arduino lib: 在Arduino IDE选"Sketch->Import Library...->Add Libaray...", 选择源代码目录"arduino/SpacebrewYun" 6. 测试: 在Arduino IDE选"File->Examples->SpacebrewYun->spacebrewBoolean" 7. 在sb.connect()行修改服务器地址参数为实际部署服务器的地址 8. 通过usb上传到arduino 9. 运行serial monitor查看log,等待片刻,如出现: onnected to: xx.xx.xx.xx,表示连接成功 10. 这时打开spacebrew admin界面,应该有"SpacebrewYun"的客户端出现,将其subscriber连接到任何可测试的publisher,用publisher 进行测试,观察serial monitor,会有相应log打印。也可以增加代码到handleBoolean(), 如 if(value) { digitalWrite(13, HIGH); } else { digitalWrite(13, LOW); } 将观察到LED在控制下开/关,在wifi连接下测试,延时小于1秒,效果非常理想。 项目测试 1. 将TFT显示屏插入Arduino Yun 2. 用Arduino IDE打开 main/YunHome/YunHome.ino, 编译并上传到Arduino 3. 在Arduino IDE打开 Serial Monitor 4. 浏览器打开测试bool消息页面:http://spacebrew.github.io/spacebrew.js/spacebrew_button/index.html?server=sandbox.spacebrew.cc&name=testButton 5. 浏览器打开测试string消息页面: http://spacebrew.github.io/spacebrew.js/spacebrew_string/index.html?server=sandbox.spacebrew.cc&name=testString 6. 浏览器打开spacebrew admin:http://spacebrew.github.io/spacebrew/admin/admin.html?server=sandbox.spacebrew.cc 7. 在admin界面上将看到YunHome应用和testButton, testString应用,testButton/testString的publisher连接到YunHome对应的subscriber 8. 测试testButton页面,点击按钮,显示屏幕显示“ON”,松开按钮,显示"OFF" 9. 测试testString页面,发送英文字符串,发送,屏幕显示对应的字符
【文件预览】:
YunHome-master
----ardunio-src()
--------libraries()
--------sketches()
----LICENSE(11KB)
----README.md(5KB)
----.gitignore(19B)