OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » 【原创】[1.07更新云端交互]一次有遗憾的物联网DIY小样(“微信和传感器的激

共35条 1/4 1 2 3 4 跳转至

【原创】[1.07更新云端交互]一次有遗憾的物联网DIY小样(“微信和传感器的激情故事)

高工
2014-08-08 16:34:44    评分

前段时间在论坛上积分兑换了一个Arduino UNO和Ethernet叠加件

拿到手上耍了几天,还觉得不过瘾,正好手上有块ATMEL的B1-Xplained评估板

集成了不少传感器

就想着物联网不是很流行嘛

动手组装一个环境

给个文艺点的名字叫:“微信和传感器的鸡情故事"

来完成一个物联网的原型(只是撸主自己理解的物联网,也不知道是不是正确)

一路下来,累得够呛

撸主这人就是有点偏执,总是想办法要完成预定功能

所以这次捯饬爆发出了很多奇葩的思路

最终基本上完成了这个原型,但是也留下了许多遗憾

譬如远程控制,还达不到彻底通畅

这里只是贴出这次经历和想法

如果对有兴趣的筒子能够提供一些灵感,那自然是极好

目前这个主题主要是想分为三个模块:硬件篇、网络篇和编程篇

看情况进行调整吧


先说说为什么把这个贴子发到综合技术板块

撸主一路折腾下来,发现结合真实世界的需求

真正要做完一个物联网原型,其实涉及的领域会比较广泛

粗略一想,需要C、PHP、GET、POST、数据通信网、MySQL、webserver等等方面的常识

还是撸到这个版块吧


先放出些看得到摸得着的东西

传感器Yeelink数据界面:http://www.yeelink.net/devices/13082【失效】

Arduino数据界面:http://liaojingjing.3322.org:12580 【失效】(谁叫移不动每月收我们流量钱,还不给累积到下月,大家把流量戳回来)

微信:扫描关注,或者 搜索公众号   IoT实验室 【有效】。

 

基本上设备都会挂在公网上,但是不排除服务器宕机(比如昨晚至今早,yeelink估计在升级)

可能偶尔会设备断电,大部分时间应该都在。



参加了坛子里其他活动,更新可能会比较慢,但是一定会有个结果

就不占坑了,欢迎各位强力插入


序号 内容 传送门
1 制作综述
http://forum.eepw.com.cn/thread/259380/1#8
2 硬件篇 http://forum.eepw.com.cn/thread/259380/1#10
3 网络篇(一)数据的发布 http://forum.eepw.com.cn/thread/259380/3#21
4 网络篇(二)2个服务器
http://forum.eepw.com.cn/thread/259380/3#29
5       和云端的交互                       http://forum.eepw.com.cn/thread/259380/4#34


高工
2014-08-08 16:36:31    评分
2楼
沙发自留

院士
2014-08-08 16:40:59    评分
3楼
我抢个板凳,看后续内容,等待设成精华

专家
2014-08-08 16:41:13    评分
4楼
基情四射~!

高工
2014-08-08 16:49:33    评分
5楼
很多做到能点灯,就说是物联网了。

工程师
2014-08-08 16:50:21    评分
6楼
占个位子。。。

高工
2014-08-09 19:46:00    评分
7楼

老王赶紧的

让积分、射精、上首页啥的来得更猛烈些吧


高工
2014-08-09 20:01:32    评分
8楼

综述篇


最近物联网火得一逼

似乎什么小东西小制作小项目

只要扯上物联网,瞬间高大上

撸主按捺不住了

到底啥是物联网

光听人忽悠怎么能行

自己动手做一个



先上一个目前实现了的整体信号链拓扑:


这个拓扑结构基本上标清了撸主这个物联网小样的数据流向


绿色一组箭头表示B1-Xplained、Arduino UNO和Ethernet Shield所组成的数据采集终端(本帖以后简称采集终端)与安装有微信的用户终端进行数据交互的流程

通过Arduino建立本地web服务器,并通过3322.org动态域名,将B1-Xplained数据以网页形式发布到互联网
国内服务商互联互通做得真的很差劲,建议使用Yaler(无意广告,表打脸)
Sina SAE上调用PHP脚本,对Arduino发布的网页内容进行抓取
通过正则表达式匹配出其中传感器的数据,并保存
Tencent公众平台访问SAE,并获取这些数据,返回给终端设备并进行交互。


黄色一组箭头则是表示采集终端与用户终端通过Yeelink的数据交互流程

通过Arduino建立本地web服务器,并将B1板采集到的数据发送至Yeelink,同时yeelink对数据进行统计作图

并以网页的形式发布到互联网

用户终端则可以采用网页或移动智能终端APP的形式,通过yeelink与采集终端进行数据通信。


这次制作的小样,这两种数据管道同时使用

撸个视频,有动作有真相


视频地址:http://player.youku.com/player.php/sid/XNzUzMzk2NjQw/v.swf


高工
2014-08-11 12:19:13    评分
9楼

看样子大家伙都不是很关注这个啊

求喷


高工
2014-08-12 22:23:48    评分
10楼

硬件篇

今天来聊聊硬件

其实这个小样涉及的硬件实在是没啥好说道的

做个简单的介绍吧


目前的硬件主要分为两块:数据采集板和web服务器板

先说数据采集板

就是这货:



上传感器部分原理图


原理图上其实可以看出来

说是传感器,其实并不是

主要是利用ATMEL单片机AD外设,来获取温敏电阻(温度)、光敏三极管(光线)和可调电阻(电压),分压的AD值

再通过查表,显示对应的物理值

譬如NTC温敏电阻


再来看web服务器板

其实就是一块Arduino Uno R3和W5100叠加模块


先看Arduino Uno R3:

很便宜,40块的样子吧


W5100模块:

W5100值得说道说道

这货硬件集成TCP/IP协议栈

换句话说,使用它接入网络,可以不用了解TCP/IP的内容

只需要调用官方库函数即可

还记得大名鼎鼎的ENC28J60吗

想跑起它,还得让MCU开销协议栈

而W5100直接可以看做外部RAM

初始化、配置寄存器

立马就能使用

遗憾是自己不带MAC,要手动设定(真不知道能不能打上入网许可证)


看张合体



ok,数据采集终端的板子就是这么些了


他们是如何工作的呢?

先上个板卡级合体图:

熟悉Arduino Uno的筒子,应该一眼就能看出通信方式

没错,就是UART

考虑到B1-Xplained的采集速度灰常快,ms级

而Arduino Uno响应和发出互联网请求都是5s级

所以

通信协议设计得灰常简单,没加过多的考虑,连简单的校验都没有做

B1-Xplained完成一次数据采集,就发送7个字节的数据

第一个字节为字母S

接下来5个字节分别是 光照数据(2字节)、温度数据(1字节)、电压数据(2字节)

最后一个字节以字母E作为结尾

不断的循环发送

而Arduino在响应和发送互联网请求的间歇期

才会判读第一个字节是否为字母S,根据判读结果

决定存储还是丢弃接下来的5个字节

最后再把数据发布出去


这里值得注意的是

Arduino会在cleint和server之间进行切换

切换成cleint是为了和Yeelink进行数据交互:http://www.yeelink.net/devices/13082

而切换成server是为了在本地创建一个网页:http://liaojingjing.3322.org:12580



共35条 1/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]