tag 标签: yeelink

相关博文
  • 热度 27
    2014-12-15 17:54
    1338 次阅读|
    0 个评论
    概述   工具: 物联网云平台Yeelink  DHT11温湿度传感器   W5500EVB 编译环境: Keil4 目的: 通过以太网实时监控远程某个位置的温度和湿度 在W5500EVB端连接LED灯,通过W5500与网络连接,并与物联网云平台Yeelink中添加设备建立连接;之后系统会将读取的温度和湿度上传到物联网云平台Yeelink,这样就可以随时通过网络观察温度和湿度变化。 物联网云平台Yeelink还提供了一个简单的手机,登陆 Yeelink账号,也可以随时随地的观察温度和湿度的变化。 一、物联网云平台 Yeelink 物联网云平台Yeelink在之前发的帖子里有简单的介绍,官方网站也有详细的介绍,在此就不再多讲了。如果有问题的可以回复我,谢谢。 图1是设备添加号以后自动生成的一个开关模型,点击它可以控制LED灯的亮灭。   图1 开关设备   二、W5500简介 韩国WIZnet公司生产的以太网控制芯片W5500整合了五层结构中的前四层,即物理层、数据链路层、网络层和传输层,并在内部利用硬件实现了TCP/IP协议栈。开发者无需专业的网络知识,使用W5500如同控制外部存储器一样简单,为用户提供了最简单的网络接入方法。全硬件TCP/IP协议栈完全独立于主控芯片,可以降低主芯片负载且无需移植繁琐的TCP/IP协议栈,便于产品实现网络化更新。   以太网控制芯片W5500具有以下特点: 1、W5500支持硬件TCP/IP协议,包括TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE和以太网的PHY和MAC层,TCP/IP协议的硬件实现,使得应用协议的实现更简单容易; 2、支持8个独立的SOCKET同时工作,可同时工作在不同的工作模式; 3、支持掉电模式,并支持网络唤醒,最大程度地减少功率消耗和发热; 4、支持高速SPI接口(SPI MODE 0,3),SPI的时钟最高可达到80MHz,极大地提高了网络通信的数据传输速率; 5、内部集成32KB存储器用于发送/接收缓存; 6、内嵌10BaseT/100BaseTX以太网物理层(PHY); 7、支持自动协商(10/100-Based全双工/半双工); 8、不支持IP分片; 9、工作电压为3.3V,但I/O信号口可承受5V电压; 10、具有多功能LED指示输出(全双工/半双工,网络连接,网络速度,活动状态等); 11、48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)。   三、系统设计 1. 电路设计 电路很简单,在W5500EVB板上有STM32最小系统电路,所有引脚引出,我们只要在任何一个未被占用的端口接入一个LED登就可以。好多爱好者可能没有这个板子,不过没关系。淘宝上有好多W5500的模块,通过SPI方式于你们自己的最小系统连接,再在程序中相应的引脚对应好,就可以方便控制 2. 程序分析 char postT ={42,96,164,52};//  api.yeelink.net  的ip地址 继续阅读:http://www.iwiznet.cn/blog/?p=6677
  • 热度 23
    2014-12-9 14:26
    1412 次阅读|
    0 个评论
    概述 工具:物联网云平台Yeelink  DHT11温湿度传感器   W5500EVB 编译环境:Keil4 目的:通过以太网实时监控远程某个位置的温度和湿度 在W5500EVB端连接DHT11温湿度传感器,并实时读取温度和湿度;通过W5500与网络连接,并与物联网云平台Yeelink中添加设备建立连接;之后系统会将读取的温度和湿度上传到物联网云平台Yeelink,这样就可以随时通过网络观察温度和湿度变化。 物联网云平台Yeelink还提供了一个简单的手机,登陆 Yeelink账号,也可以随时随地的观察温度和湿度的变化。 一、物联网云平台Yeelink Yeelink是一个免费的云平台,旨在利用无线网络、开源硬件和软件,智能手机和App共同打造一个家庭智能中心。图1为Yeelink云平台首页截图。点击“快速开始”,我们可以注册一个账号,登陆后,可以添加自己的设备和传感器。它将复杂的传感器以极简的方式组到同一个网络内,可满足智能家居的各种需求。通过Yeelink提供的数据接口,用户可以把自己的传感器通过互联网接入Yeelink云平台,从而实现随时随地获取传感器数据,为一些智能家居设备接入互联网提供了云平台支持。(http://www.yeelink.net) 图1 物联网云平台Yeelink首页 1. 登陆物联网云平台Yeelink,注册账号。注册账号以后,点击 账户》我的账户设置,可以看到有一个API KEY。   2. 根据开发指南添加设备 同大多数开源平台一样,Yeelink提供的API也是基于HTTP协议提交和接收数据。当我们在Yeelink上创建新的设备,并在设备上添加新的传感器后,会获得相应的设备ID和传感器ID,作为传感器在Yeelink平台上的唯一标识,我们可以使用Yeelink平台提供的URL,更新指定传感器的数据。有关于API文档的详细介绍请参考Yeelink网站,图2是与本节相关的设备添加介绍。 图2 添加设备信息 1)         点击管理设备,选择已经添加的设备,添加你的传感器,完成以后保存信息。 2)   保存以后会看到如图3所示内容。 URL:http://api.yeelink.net/v1.0/device/15855/sensor/27293/datapoints中提供了设备ID和传感器ID,这个会添加到程序中。 图3 设备添加显示页面 二、Yeelink平台API在线调试 1. 点击 API文档》在线调试,打开后在接口项添加生成的URL,在API Key项添加注册账户时生成的API KEY,请求方式选择GET模式,在Post中随意输入数据,如果您建立的设备可以运用,会得到正确回复,如图4所示。 图4  在线调试效果 Request显示了发送给网络的请求,主要注意请求方式,设备的ID号和API key,当然还有Yeelink平台的网址。Response显示恢复状态。   三、系统设计 1. 电路设计 以太网控制芯片W5500整合了五层结构中的前四层,即物理层、数据链路层、网络层和传输层,并在内部利用硬件实现了TCP/IP协议栈。开发者无需专业的网络知识,使用W5500如同控制外部存储器一样简单,为用户提供了最简单的网络接入方法。全硬件TCP/IP协议栈完全独立于主控芯片,可以降低主芯片负载且无需移植繁琐的TCP/IP协议栈,便于产品实现网络化更新。 以太网控制芯片W5500具有以下特点: 1、W5500支持硬件TCP/IP协议,包括TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE和以太网的PHY和MAC层,TCP/IP协议的硬件实现,使得应用协议的实现更简单容易; 2、支持8个独立的SOCKET同时工作,可同时工作在不同的工作模式; 3、支持掉电模式,并支持网络唤醒,最大程度地减少功率消耗和发热; 4、支持高速SPI接口(SPI MODE 0,3),SPI的时钟最高可达到80MHz,极大地提高了网络通信的数据传输速率; 5、内部集成32KB存储器用于发送/接收缓存; DHT11 是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。 DHT11 与单片机之间能采用简单的单总线进行通信,仅仅需要一个 I/O 口。传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。DHT11 功耗很低,5V 电源电压下,工作平均最大电流 0.5mA。 图5是DHT11跟W5500EVB的电路设计图,比较简单。图6是实物连接图,DHT11上的VCC连接3V3D引脚,GND对应相连,Dout输出连接PA2引脚。通过USB给W5500EVB供电,W5500EVB通过网线与路由器连接,电脑也通过网线与路由器连接,或者连接路由器建立的无线网。 图5 W5500开发板与DHT11的连接电路 图6 实物连接 2. 程序设计 本节将Yeelink上传数据的整个过程分为3个文件,main.c主文件实现W5500EVB上传数据的主流程,DHT11.c文件实现dht11对室内温湿度数据的采集,mcu_init.c文件实现W5500EVB的初始化。 为了使程序能方便地组建Yeelink所要求的JSON数据格式,我们把采集到数据直接替代这个字符串中的xx即可,其他的请求命令在上一节的在线调试结果中可以得到。 继续阅读:http://www.iwiznet.cn/blog/?p=6662
  • 热度 26
    2014-8-26 08:48
    1284 次阅读|
    0 个评论
    一、系统适用范围特点: 随着科技的发展,环境信息采集应用的领域也越来越广。冷库,仓库,大棚等场所都需要对其环境信息进行监控,以保证食品等货物的储存。对大面积农作物的机械自动化管理有着重要的意义。而对于大面积的自动化大棚管理,在缺少技术人员的情况下,很难对农作物的生长有科学的管理,而且邀请专家进行技术指导会比较麻烦,人力成本和代价较高。因此,我们基于W5500模块,接入温湿度采集和光照采集模块,进行对环境信息的监控,并上传至Yeelink平台。专家可以远程对上传的信息进行方便的查看,并给与大棚管理员合适的建议。也可以方便管理员对仓库的监控和管理。同时由于上传的信息公开化,因此可以作为交流平台,来对各个地方上传信息的人员相互间交流。 二、系统简介: 系统所包含有:W5500EVB(包含有STM32单片机)、DHT11温湿度传感器、GY-30光照传感器、路由器和Yeelink网络平台。通过手机、PC机等上网查看。系统的框架图如下: 如图所示,STM32作为MCU处理温湿度和光照传感器采集到的数据信息,并且控制W5500将信息通过路由器上传到Yeelink平台上。   三、各器件简介: 1、W5500简介 W5500 是一款全硬件 TCP/IP 嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案。W5500 集成了 TCP/IP 协议栈,10/100M 以太网数据链路层(MAC) 及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。 2、DHT11温湿度采集 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。 3、GY-30光强采集传感器特点 1)I2C总线接口(f/s模式支持) 2)光谱的范围是人眼相近 3)照度数字转换器 4)宽范围和高分解.(1-65535勒克斯) 5)低电流关机功能 6)50Hz/60Hz光噪声reject-function 7)1.8V逻辑输入接口 8)无需任何外部零件 9)光源的依赖性不大.(例如白炽灯.荧光灯.卤素灯.白LED.孙光) 10)是有可能的选择2类型的ICslave-address. 11)可调的光学窗口测量结果的影响 (它可以探测分钟.使用本功能0.11勒克斯,最大.100000勒克斯) 12)小测变异(+/-20%) 13)的红外线的影响很小 四、基本功能: 具有环境信息采集功能,可以采集环境的温度、湿度和光照强度。 具有联网功能,可以将采集到的环境信息直接上传到Yeelink云平台上。 具有网络查看功能,可以用任何联网设备,在互联网上查看采集点的信息。 五、核心代码及程序流程图: 核心代码 W5500EVB向Yeelink平台发送的一个http数据包,Yeelink平台是非常便捷的一个平台,通过这个平台,只需要把U-ApiKey内容换成自己需要的Apikey,就可以轻松实现上传数据和监测数据。http数据包代码如下: char  postH =temp_rh /10+0×30; Buffer =temp_rh %10+0×30; send(ch,(const uint8 *)Buffer,sizeof(Buffer)); i=i+1; } } else { temp=BH1750_Getvalue(); Buffer =temp/10+0×30; Buffer =temp%10+0×30; send(ch,(const uint8 *)Buffer,sizeof(Buffer)); i=0; } 程序流程图 六、项目总结: 本次项目完成了基本的环境信息采集功能,通过Yeelink平台观察采集到的数据,无论你在网页上还是手机客户端APP上,都能很好的监测数据,观察历史数据的走势。 通过本次项目,我学到了很多,W5500提供的全硬件TCP/IP协议栈实在是太方便了,你只需要编写片上处理程序就可以了,tcp/ip需要处理的协议它已经帮助你完成了。刚拿到w5500的开发板时,试着写了一些TCP,UDP,Smtp协议,都通过W5500EVB很轻松的实现了,这让我对网络协议有了一个更仔细的认识。然后我就开始把自己采集到的数据上传到Yeelink平台上,通过Wireshark抓包工具分析http报文,然后编写报文,最后终于成功实现了数据的上传。真心感谢Yeelink平台提供的强大功能,让我们这些爱好者能够轻松实现自己的想法,并分享给他人。 这次比赛比较遗憾的是一直想实现无线功能,就是通过W5500EVB+Zigbee无线模块+数据传感器+Yeelink平台,实现环境信息的无线采集。但是由于这学期学习比较紧张,没有投入足够的时间,所以就没在这里实现。不过这学期选的工程教育高级有这样的无线模块传输数据的项目,我可以好好研究一下Zigbee模块,算是弥补了我这次遗憾。   七、心得体会: 这次比赛基本上都是由我一个人完成的,工作量还是蛮大的。经过这次比赛,本人有一种想法分享给大家:做项目开始时,要做一个简单的规划,当然,这要根据自己的实际能力。在目标确定后,就不要轻言放弃,你只要不放弃,开始的方向有没有错误,最后一定会做出自己想要的结果的,那是的成就感不是别人能体会到的。   – 选自2013年WIZnet杯 以太网技术竞赛,三等奖陈超航作品   WIZnet中文官网:http://www.iwiznet.cn WIZnet官方微博:http://weibo.com/wiznet2012  
  • 热度 33
    2014-5-30 11:52
    1109 次阅读|
    0 个评论
    转自极客工坊:http://www.geek-workshop.com/thread-9951-1-1.html 采用了Microduino W5500以太网模块~功能是读取三个模拟口值,通过序列依次传到Yeelink 继W5100、W5200和W5300之后一款全新的全硬件TCP/IP协议栈网络芯片,这款芯片具有更低功耗与工作温度,及改良工艺,是嵌入式以太网的最佳选择方案; 规格 通信协议 支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE 支持8个独立端口(Socket)同时通讯 内嵌10BaseT/100BaseTX 以太网物理层(PHY) 支持自动协商(10/100-Based全双工/半双工) 工作特性 支持掉电模式 支持网络唤醒 支持自动应答(全双工/半双工模式) 更新速率 支持高速串行外设接口 内部32K字节收发缓存 接口特性 TTL 电平输入 单电源供电: 3.3V; 不支持IP分片 状态指示 两个用来表示连接、发送、接收、冲突和全/ 半双工状态的可编程LED 输出; 堆叠之后是这样: 程序部分参看原链接。   成功后可以看到: 用到的库:(需要删除原有的Ethernet库) 点击下载 W5500更多资料: http://www.microduino.cc/wiki/index.php?title=Microduino-W5500/zh
  • 热度 30
    2013-5-27 15:54
    1742 次阅读|
    0 个评论
    实验内容:很多朋友都有这样的想法,能不能通过网页,直接从任何一台计算机,控制和访问自己的单片机或者arduino板呢?这个有趣的功能,相信很多的电子爱好者都可能会想,这个功能如果能实现,是不是意味着就能在web页面,直接通过点击按钮,就能够通过互联网完成对arduino板上的资源甚至是挂接到arduino板上的设备的控制。好像听起来有点耳熟?这是不是就是当下很火爆的数字家庭概念吗?是的没错,如果arduino驱动的是继电器或者可控插座,那么,我们就能很容易的在web上控制普通家用电器啦,想象一下,下班之前,在电脑上登陆自己的yeelink账号,然后点击“热水器烧水”,回家就能洗上舒舒服服的热水澡啦!   硬件要求: Arduino主板 以太网板(参加下图模块的模样和与arduino的连接方式进行连接,并且从这个链接获取ENC的网络函数驱动库并安装即可: http://geek-workshop.com/forum.php?mod=attachmentaid=NDc1M3w4OTExYjg1M3wxMzM5MzM4Mzk1fDgwN3wyMDA%3D 原理介绍: 为了实现远程控制,为简便起见,我们先讲讲如何web遥控arduino UNO板上的LED灯开关。 yeelink平台提供了两种方式,一种是arduino/单片机通过直接socket网络连接的办法,连入平台上,保持和服务器的长连接,这种方法控制的实时性相对较强;另外一种办法是arduino作为客户端,定期的向服务器查询传感器(LED)的当前值,如果我们要改变arduino的状态(如点亮LED),只需改变当前传感器的值(其实是发送HTTP的post命令,更新一下当前的设备状态),则arduino在定时周期到的时候,发出(HTTP  get)命令来获取当前LED状态的时候,发现最近的值有变化(从0变为1)的时候,则相应的改变驱动LED的IO口状态,从而实习远程控制,这里注意,在arduino板上,如果是触发性的操作(只操作一次),则可以在get数据并操作好后,直接发送POST改变服务器上吗的传感器状态,保证不会在arduino端重复触发。 首先,照例我们要先申请到yeelink的API-KEY才可以进行: 如何免费获取API-KEY,和如何添加设备,请移步 快速入门 来开始吧。 第一步: 注册之后,增加一个开关类的传感器 第二步,获取这次插入的控制设备的设备号和传感器号:如下图来说,就是设备号=63,传感器号=57 第三步,好了,控制按钮安装完毕,下面,将第七个PIN和GND之间连上电阻和LED灯,下载下面的arduino程序,更改三个地方,就可以通过点击网页上的按钮,进行控制了。(居然这么简单???是的,就是这么简单…下面想想你能怎么玩更爽吧) arduino程序中需要修改的地方有 程序中需要改的地方是: 1.APIKEY: 这个需要更换成你自己账号的APIKEY 2.DEVICEID :这个需要换成设备号 3.SENSORID:这个需要换成传感器号 OK,就这些了,5分钟内学会如何做家庭电器控制,你行的! 另外,需要注意一点,下文中的ethernet shield是需要你家中的路由器开启DHCP功能的,如果没有开启,可以参考将 1. 代码中添加 byte ip ; // for yeelink api #define APIKEY “4bb08000082a070000e2e3c580000000″ //更换 yeelink api key #define DEVICEID 63 // 更换设备IDreplace your device ID #define SENSORID 57 // 更换传感器IDreplace your sensor ID // 分配MAC地址. byte mac = “api.yeelink.net”; // yeelink API的域名 unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds boolean lastConnected = false; // state of the connection last time through the main loop const unsigned long postingInterval = 3*1000; // delay between 2 datapoints, 30s String returnValue = “”; boolean ResponseBegin = false; void setup() { pinMode(7, OUTPUT); Wire.begin(); // start serial port: Serial.begin(57600); // start the Ethernet connection with DHCP: if (Ethernet.begin(mac) == 0) { Serial.println(“Failed to configure Ethernet using DHCP”); for(;;) ; } else { Serial.println(“Ethernet configuration OK”); } } void loop() { // 如果发现有网络数据如何处理 if (client.available()) { char c = client.read(); // Serial.print(c); if (c == ‘{‘) ResponseBegin = true; else if (c == ‘}’) ResponseBegin = false; if (ResponseBegin) returnValue += c; } if (returnValue.length() !=0 (ResponseBegin == false)) { Serial.println(returnValue); if (returnValue.charAt(returnValue.length() – 1) == ’1′) { Serial.println(“turn on the LED”); digitalWrite(7, HIGH); } else if(returnValue.charAt(returnValue.length() – 1) == ’0′) { Serial.println(“turn off the LED”); digitalWrite(7, LOW); } returnValue = “”; } // if there’s no net connection, but there was one last time // through the loop, then stop the client: if (!client.connected() lastConnected) { Serial.println(); Serial.println(“disconnecting.”); client.stop(); } // if you’re not connected, and ten seconds have passed since // your last connection, then connect again and send data: if(!client.connected() (millis() – lastConnectionTime postingInterval)) { // read sensor data, replace with your code //int sensorReading = readLightSensor(); Serial.print(“yeelink:”); //get data from server getData(); } // store the state of the connection for next time through // the loop: lastConnected = client.connected(); }   // this method makes a HTTP connection to the server and get data back void getData(void) { // if there’s a successful connection: if (client.connect(server, 80)) { Serial.println(“connecting…”); // send the HTTP GET request: client.print(“GET /v1.0/device/”); client.print(DEVICEID); client.print(“/sensor/”); client.print(SENSORID); client.print(“/datapoints”); client.println(” HTTP/1.1″); client.println(“Host: api.yeelink.net”); client.print(“Accept: *”); client.print(“/”); client.println(“*”); client.print(“U-ApiKey: “); client.println(APIKEY); client.println(“Content-Length: 0″); client.println(“Connection: close”); client.println(); Serial.println(“print get done.”); } else { // if you couldn’t make a connection: Serial.println(“connection failed”); Serial.println(); Serial.println(“disconnecting.”); client.stop(); } // note the time that the connection was made or attempted: lastConnectionTime = millis(); } 原文来自Yeelink :http://blog.yeelink.net/?p=94 感谢阅读!     与我们更多交流: WIZnet邮箱: wiznetbj@wiznettechnology.com WIZnet中文主页:http://www.iwiznet.cn WIZnet中文博客:http://blog.iwiznet.cn WIZnet企业微博:http://e.weibo.com/wiznet2012
相关资源