用Arduino监控的自动咖啡壶

用Arduino监控的自动咖啡壶

博客
Arduino实现仪器放大仪对压力感应器读取数据,这样的理论能用来做什么呢?当然可以让你隔着房间就获知DoES Liverpool咖啡壶中装了多少咖啡!一个“咖啡壶”就可以做到! 关于咖啡机器的内容已经在网络上有先例了;第一个网络摄像机的灵感是,1991至2001年间在剑桥大学电脑实验室安装了Trojan房间咖啡监控器。所以利用DoES Liverpool,通过咖啡机器,壶和水的重量测量,我们可以进行咖啡容量的在线记录。 在厨房的咖啡机下面放置了浴室磅秤,并将其与Arduino Ethernet连接来测重,计算机器上咖啡杯数量,并将其数据传送至Xively。所有磅秤的测量电子器件都可以忽略,通过INA125仪器放大仪,Arduino读取磅秤每个角的压力传感器阻值变化,来测量咖啡机里面的水量。关于连接仪器放大仪和Arduino的细节,已经在GitHub中的ArduinoInstAmp库中列出,我之前有写过。   来自DoES Liverpool 咖啡壶的即时动态(刷新页面进行更新) 用于咖啡壶的电路和我之前描述过的INA125的压力传感器读取相同。唯一增加的是一个常见的接地按钮,连接到引脚2上,把LED与电阻(一头连的引脚5)的正极相连。代码在github.com/DoESLiverpool/CoffeeBot/上。                               用于咖啡壶背面与Arduino的连接         在磅秤里面的远程压力传感器需要一个连接器                              压力传感器的惠斯通电桥布置                       INA125P的仪器放大器连接 一个普通的接地按钮输出 为了使得到的信息不在电脑前也可以利用起来,磅秤的远程监控器会将最新的杯子数量上传到Xively,并将结果显示在DoES主空间的刻度盘上。如果能通过网络连接获取到咖啡量,信息的可用性就没有了,因为你离机器太远了。使用咖啡壶的优先条件是,你看不到它,但还是在同一座楼里(为了保证是内网)。 机器中咖啡量的采集是一个很有趣的事,在起床之前就可以知道是不是有咖啡可以喝,数据被采集后就可以有更多实际应用了。每天消耗的咖啡杯平均数,可能在你下午做咖啡的时候就会给你指导,就知道最后一壶做多少杯了。跟踪杯子数量意味着你需要买多少咖啡豆,这样就可以让他们保持新鲜了。 DoES咖啡使用的最新及历史信息都会在 xively.com/feeds/106284 显示出来,用于咖啡壶运转的Arduino的全部代码及监控器信息都会在 github.com/DoESLiverpool/CoffeeBot上提供。 文章来源:http://www.deferredprocrastination.co.uk/blog/2013/coffeebot-monitoring-with-arduino/  
Read More
开源硬件的舞者–WIZnet

开源硬件的舞者–WIZnet

博客
小编寄语: 续前篇,在《芯跳不止》中,作者在系列之(十八)中提及:暗香疏影--WIZnet(微知纳特)为开源硬件的舞者。的确,在以太网典型应用领域里,WIZnet的确以独特的全硬件协议栈称得上是这个领域中的独步舞者!并在开源硬件平台方面倡导继承了分享精神,让越来越多的嵌入式终端实现了远程传输及自动化控制功能,就像文中提到“为未来炫丽的物联网时代舞动着婀娜的姿彩”,在半导体细分市场上迈出了勇敢开拓的一步。 闲云繁影日悠悠,物转星稀几度秋。看到忙碌收获的人们舞动着手中的工具犹如赛场上美丽的舞者,那曾是记忆里幸福深刻的画面似乎时刻让我感觉着舞者的荣耀与自豪,谁可曾知道播种时的心思与痛楚,灾害乃至是危机时的蹒跚与历练,收获时仅存的喜悦而且要马上面对荒凉和虚无,如果不是精心的料理哪会有丰收的喜悦与欢庆?如果不是经历过长期的沉淀于积累哪会有婀娜的舞姿?如果不是长期的坚持与执着哪会有竞技场上的鲜花与喝彩?接触到微知纳特才知道在电子行业硬件领域有这么一位舞者。在网络产业化及商业化的背景下,越来越多的嵌入式设备也需要实现联网,但是由于嵌入式系统中主控芯片及存储介质等资源相对匮乏,导致操作系统必须‘瘦身’甚至大部分都需要实现无嵌入式操作系统,于是乎一些轻量软件协议栈应运而生。面对这样的问题韩国釜山大学的计算机网络研究室提出了:既然软件代码占用系统资源,那为什么不用硬件来实现的课题。 于是针对相对较为固定的TCP/IP协议栈,该研究室提出了使用硬件逻辑门电路来实现软件协议栈的构想。留美经济学博士Y. B. Lee与釜山大学计算机网络研究室共同推动该项成果实现产学研转化,并于1998年注册成立微知纳特,2001年成功推出了业界第一款针对网络通讯的TCP/IP协议栈的ASSP芯片W3100,这款ASSP产品的硬件逻辑已经实现了TCP/IP协议栈应用层以下的部分,极大地卸载了主控芯片的资源开销,使得即是使是普通的8位单片机都能非常轻松地实现高性能以太网功能,只需要将这款ASSP产品作为一个外设RAM使用就好,将需要传输的数据丢给它的片上RAM,然后就会自动被封包通过以太网发布出去,同样接收到的网络包也会自动被解包成原始数据传输给主控芯片。这样大大的降低了网络项目开发及拓展的门槛和难度以及开发周期,使得TCP/IP技术变得简单和易用。之后又推出了像W3150A+(05年),W5100(06年),W5300(08年),W7100A(09年),W5200(11年),W7200(11年)系列产品以满足不同客户的诉求。微知纳特潜心研发全硬件TCP/IP技术十余年,而且是一直在持续和专注的在所属的领域不断的推陈出新,其经历过的彷徨和磨难我们不曾得知,但这份坚持与执着却让我时刻感觉着力量和一种舞者的精神。 是因为接触微知纳特也进而接触了开源硬件,开源硬件是继Linux,Android等软件开源之后,一场由Arduino等开源硬件平台牵头的硬件开源风暴正在悄无声息中席卷全球。微知纳特是为数不多的半导体原厂提倡硬件产品开源,作为开源硬件的重要参与和倡导者,Makers(创客)这一新兴的群体,已经利用全硬件网络嵌入式平台开发出了各种各样新奇的应用制作,不久后的将来也许我们会看到奇特各异的电子硬件艺术品,它们不仅能够为我们带来电子产品硬件功能上的满足,更能为我们带来电子产品视觉上的冲击和享受,开源硬件如同开源软件一样也许是时下最为时髦的话题,焕发着勃勃生机,它也终将会影响和改变着硬件产品的生态供应链,重塑硬件产品有效购买群体和营销范畴,重塑电子产品市场和长尾价值导向,开拓出一片开源硬件产品活跃的新蓝海。不是所有的付出都会得到应得的回报,也不是所有的舞者都能舞动青春,但只要是一个坚持与执着的舞者就是一个真正的舞者,也有充分的理由相信他们舞动的不仅仅是优美的姿态,更是一种精神一种信仰,而且这样开源硬件传递的更是一种分享的精神升华和共享的信仰理念。 十几年来微知纳特始终专注为广大客户提供优秀的全硬件网络解决方案及客户服务,在嵌入式因特网设备领域里拥有多种暗香疏影的应用,在舞动开源精神的同时分享着美丽的红舞鞋:新款代号W5500,全硬件TCP/IP协议处理支持TCP/IP协议:TCP, UDP, ICMP, IGMP, IPv4, ARP, PPPoE;内嵌10/100Mbps以太网物理层,全功能10/100以太网MAC&PHY;高速SPI接口(80MHz)便于与任何MCU连接;微知纳特全球化的产品忠诚的为行业应用提供定制化的技术支持和解决方案,让更多舞者的信仰可以传递。未来已扑面而来,也始终相信会有更多的中小企业加入其中,逐鹿资本和市场并在行走的征程中暗香疏影,成为新时期的弄潮儿,在开源硬件领域中,在新生代的电子工业行业中,在未来充满奇幻的物联网世界里,微知纳特的暗香疏影为物联系统的网络组建提供了一种新的方法与新的视角,也在物联网硬件设备的研发与全新解决方案的构建中成长为一个真正的舞者。 WIZnet(微知纳特)标识 WIZnet(微知纳特)集成电路顶端标记 附件:WIZnet(微知纳特)创新历程 1998年微知纳特由留美经济学博士Y. B. Lee在韩国创办,专业研发以太网芯片采用全硬件TCP/IP协议栈技术; 2001年微知纳特推出业界第一款网络通讯TCP/IP协议栈的专用标准产品(Application Specific Standard Parts,ASSP)芯片W3100,2011年服役10年的W3100停产; 2005年微知纳特推出全硬件TCP/IP协议栈+以太网MAC芯片W3150A+; 2006年微知纳特推出全硬件TCP/IP协议栈+以太网MAC和PHY芯片W5100; 2008年微知纳特推出高性能全硬件TCP/IP协议栈+以太网MAC和PHY芯片W5300; 2009年微知纳特推出集成8051内核+全硬件TCP/IP协议栈+以太网MAC和PHY单片以太网控制芯片W7100A; 2011年微知纳特推出增强型TCP/IP协议栈+以太网MAC和PHY芯片 W5200; 2011年微知纳特推出集成Cortex-M3内核ARM+全硬件TCP/IP协议栈+以太网MAC和PHY单片以太网控制芯片W7200; 2013年微知纳特推出低成本实用型TCP/IP协议栈+以太网MAC和PHY芯片W5500。
Read More

从集成电路分销看开源硬件

博客
小编寄语: 幸获郑州恒迈巨集半导体有限公司出品的《芯跳不止》一书,作者张立恒同时是国际电子商情等知名博客的博主,凭借他在集成电路分销领域的近10年经验,总结了今年半导体行业的起起伏伏的发展及心路历程,眼光独到,以江湖划分的方式,为读者展现了一个集成电路市场发展的江湖俯瞰图。同时,也以一个分销商的眼光,真实的撰写了经营电子分销的这一路成长。让人受益匪浅。 同时,本章中将WIZnet比喻为开源硬件的舞者,也从此角度谈起了开源硬件,我们看看文中的精彩片段: “盖闻圣人迁徙无常,就变而从时,见末而知本,观指而睹归”,身为电子分销行业从业人员目睹这2013年的行业迁徙之路:传播方式开始由以往的杂志广告以及行业展会迁徙至更精准的在线研讨会或者是电子社区以及在线互动平台;销售方式开始由以往分散的传统分层销售迁徙至互联网在线电子商务网站小批量目录式销售结合线下批量联络;沟通渠道开始由以往单向单线的联络方式迁徙至微博微信等大众沟通平台实时互动;客户层面开始由以往只关注和服务大客户的精简策略迁徙拓展至兼顾中小型和行业客户专业化团队人海战术突击;往年或多或少也有这样的迹象但却在2013年表现的尤为明显,特别是在半导体原厂的新品市场导入阶段真可谓是让人目不暇接,再加上2013年的各类功能新品众多甚是有些乱花渐欲迷人眼的感觉,于是便有了有些半导体原厂在新品一推出时就以极高性价比诱导市场,在元器件供应源头展开竞争以图迅速提振销量和更好控制客户。但在新品迅速导入大众市场成为广泛应用的经典型号则成为众多新品在时间上一个不可逾越的鸿沟,然当下最为时髦的开源硬件或许可以在一定程度上助力性价比更高的新品在更为广泛的市场上披荆斩棘,开疆扩土。 那么开源硬件是怎么一回事呢?维基百科给出的简介解释是:指与自由及开放源代码软件相同方式设计的计算机和电子硬件。开源硬件开始考虑对软件以外的领域开源,是开源文化的一部分。这个词主要是用来反映自由释放详细信息的硬件设计,如电路图、材料清单和电路板布局数据,通常使用开源软件来驱动硬件。而我更倾向于将其解释为一种开源文化的分享精神! 基于分享精神的开源硬件可以助力新品导入,对于大部分工程师来说研发知识面相对较窄,甚至只是仅仅局限于自己所在公司研发的产品领域,对于半导体器件功能在其研发的领域应用比较深入透彻,但在上游的半导体新品动态方面获取信息的渠道相对来说比较少,一度新项目的功能器件选型曾经是工程师最为头疼的事情,开源硬件可以有助于工程师选取性价比更高的硬件产品,在新品的功能和易用性上取舍和衡量而最终敲定适合自己使用的产品; 基于分享精神的开源硬件可以迅速验证新品,以往的工程师开发先需要拿到原厂对其新品的开发板或者是评估板对器件在自己项目上要实现的功能进行评估,如果评估可行再去申请样品,画出工程版样板,购买器件周围所需的电子元件然后焊接出要实现产品功能的样板进行测试,中间如果哪个环节出现问题就有可能耽搁研发的进度,开源硬件的模块可以帮助工程师们省去以上所有的环节,工程师可以直接对开源硬件模块进行测试和评估加快研发进程; 基于分享精神的开源硬件可以缩短研发周期,节约了工程师在样品选型和新品验证方面所需的时间之外,开源硬件的模块或者是开源硬件所提供的电路原理图,PCB板产品布局图,完整的BOM清单以及开放的测试软件甚至是周围的配套元器件可以无限制的缩短客户的研发周期,工程师也可以在自己不熟悉的项目领域或者是自己不了解的底层程序运行状况之下开发出适合市场用途的终端产品,只要当工程师在需要用的时候调用这些资源做好产品应用层即可,完全没有必要重复浪费资源和时间; 基于分享精神的开源硬件可以快速投入批量,走过简短的产品小批量试生产过程,不用担心已经被开源硬件验证过的产品的稳定性,不用担心产品清单物料的生僻和短缺,停产以及需要定制的元件,不用担心采购物料的生产供应状况或者是生命周期,如果保障原材料供应渠道和生产产品工艺甚至可以不用去担心产品的品质问题,就可以快速的投入批量生产以应对不断变化的市场需求,赶在竞争对手之前拿出产品争夺利润制高点。 开源硬件可以加速集成电路新品应用,有效降低研发门槛,助推产品逆袭上市! “物固有之,安得常法哉!”伴随着电子商务,移动互联乃至是物联网和可穿戴产品的赤手火热,2014年也注定是一个快速发展和无级变化的一年,作为供应链底层的电子分销行业理想成就事业的一员满怀期待2014,期待随着电子产品的丰富和发展我们能够有更多的机会可以施展拳脚;期待电子分销行业能够在政府拉开推动集成电路发展帷幕的时候出一份力;期待随着开源硬件的发展和变化有效的结合创客空间和众筹平台打造更加亲民,更加艺术性的创新;期待与坚持理想者同行!
Read More

用Arch Link(Mbed平台)制作的物联网展示

博客
关于此项目 今天,我要用Arch Link为大家做一个物联网的展示,我们可以实现上传数据到dweet.io病能实时查看信息。Arch Link是一个mbed是能的开发板,基于 Nordic nRF51822及WIZnet W5500 以太网接口连接(由SeeedStudio设计)。要准备好使用Arch Link及其他Grove传感器制作编译demo。 演示时你需要获知以下信息: 1. 熟悉mbed开发平台; 2. 精通dweet.io物理网云平台。 现在,让我们开始吧。 关于 DWEET.IO Dweet.io 不需要安装及注册。它是用于物联网的M2M方式。 用于机器,传感器,设备,机器人等都非常容易发布数据并进行订阅。我们称发布数据为"dweets"。事实上,可以把dweet.io用作Twitter。 硬件 按照下图准备就绪。 1)将底板插入到你的Arch Link上,并连接Grove - Temperature 到A0端口; 2)用网线将Arch Link连网 3)用USB线将Arch Link与PC连接   确认你有MBED存储设备,如下图所示。 软件 如果你还没有mbed账号。点击这里进行注册。 随后导入程序到你的编译器。 在编译器右上角选择Arch Link mbed平台。 随后你就能在下图中看到模拟盒子,选择 Arch Link平台。 编译程序后,会有一个hex文件生成。 将hex文件复制到MBED存储设备,随之MCU就自动重启了。等待几分钟后点击这里查看数据信息。   更多内容,请访问: http://www.seeedstudio.com/recipe/301-an-iot-demo-made-with-arch-link-mbed-platform.html 更多信息,请登录WIZnet官网 www.iwiznet.cn 或 微信公众平台  
Read More

DIY一个Nike Restock情景小夜灯

博客
项目描述 此项目通过使用Ethernet Shield及Twitter推送来控制一个情景灯。 步骤1:材料   这个项目用到了很少的材料,有很多是不必要的。你也可以改变灯的外形,这样可能会用到更少材料。 电子零件 Arduino Uno R3(我买了一个SainSmart版本,以削减成本) Arduino Ethernet Shield(我在Radio Shack只花了10美金就搞定了) 4个Led 网线 电源适配器 焊锡 装饰材料 亚克力盒子(我在沃尔玛仓储区找到了一个预制的) 少量约1/2英尺厚的木头 橡胶垫脚 木染料 磨砂玻璃喷漆 泡沫塑料(用来放Arduino) 单乙烯基(做一个可在亚克力上喷漆的模具) 钉子 木胶 需要工具 烙铁 电钻 射钉枪 热胶枪 模切绘图机(用于磨具,不必须有) 步骤2:电子器件构建 受电子知识的限制,我尽量将一切简化。我把led灯直接焊接在了Ethernet Shield上。使用了12和13端口。而前后讲Ethernet Shield插入到Arduino对应引脚上。 步骤3:木头盒子   我构建了一个木头盒子,这样亚克力盒子就能放在里面了。并在一面打了一个洞,如此ethernet 线材及供电线材可以透过来。 步骤4:亚克力盒子   我很幸运找到了一个够透的亚克力盒子,你可以尽可能的简化你的构建。我在与木头盒子相对应的位置钻了一个洞,这样线材就可以轻松的插到灯上。 钻完洞,我用磨砂玻璃喷漆给他罩了一层外衣。一旦射出来盒子里的图形光可见。图像就会清晰的看到。 步骤5:泡沫塑料盒子     我用了一个小薄片的泡沫,并把亚克力盒子的开口按进了泡沫。而后在泡沫中留下一个印记,随后就开始切割。根据泡沫上的印记,讲Arduino放到里面,就构建出镶嵌物的位置了。 步骤6:Arduino代码   以下代码是用于Nike Restock 闹钟的代码。你需要更改代码中的ip地址及mac地址。 <p>/*<br> Twitter Client with Strings This sketch connects to Twitter using an Ethernet shield. It parses the XML returned, and looks for this is a tweet You can use the Arduino Ethernet shield, or the Adafruit Ethernet shield, either one will work, as long as it's got a Wiznet Ethernet module on board. This example uses the DHCP routines in the Ethernet library which is part of the Arduino core from version 1.0 beta 1…
Read More

[转]STM32+W5500+MQTT+Android实现远程数据采集及控制

博客
转自:http://www.embed-net.com/thread-230-1-1.html 0 前言 最近在学习MQTT,发现MQTT还是挺好用的,于是花了点时间做了一个简单的应用示例,希望能给需要做这方面的人一些参考。 相关背景知识:http://www.embed-net.com/thread-224-1-1.html 具体功能为: 1,STM32F405为主控芯片,它通过传感器采集环境数据,比如温度,湿度,光照度,大气压强等; 2,主控芯片通过W5500模块将测量的数据通过MQTT协议方式发布到MQTT服务器(服务器域名和IP见固件程序); 3,主控订阅LED灯控制的消息,当接收到对应的控制指令后点亮或者熄灭对应的LED灯; 4,安卓手机端订阅传感器数据的消息,当接收到消息后将传感器数据在界面显示; 5,安卓手机可发送点亮或者熄灭LED灯的指令到服务器,然后服务器会将该指令转发给STM32主控,然后STM32主控解析该指令并执行指令。 1 单片机端实现 MQTT协议是基于TCP的协议,所以我们只需要在单片机端实现TCP客户端代码之后就很容易移植MQTT了,STM32F4+W5500实现TCP客户端的代码我们以前已经实现过,代码下载地址为: http://www.embed-net.com/thread-87-1-1.html 当然,如果你想在代码里面直接使用服务器域名方式进行连接,我们还得在TCP客户端代码里面集成DNS的代码,当然在上面这个连接里面也有相关的代码。 MQTT代码源码下载地址: http://www.eclipse.org/paho/ 在STM32这边我们使用的是C/C++ MQTT Embedded clients代码。 硬件连接如下图所示: 1.1 MQTT的移植 MQTT的移植非常简单,将C/C++ MQTT Embedded clients的代码添加到工程中,然后我们只需要再次封装4个函数即可: int transport_sendPacketBuffer(unsigned char* buf, int buflen); int transport_getdata(unsigned char* buf, int count); int transport_open(void); int transport_close(void); transport_sendPacketBuffer:通过网络以TCP的方式发送数据; transport_getdata:TCP方式从服务器端读取数据,该函数目前属于阻塞函数; transport_open:打开一个网络接口,其实就是和服务器建立一个TCP连接; transport_close:关闭网络接口。 如果已经移植好了socket方式的TCP客户端的程序,那么这几个函数的封装也是非常简单的,程序代码如下所示: /** * @brief  通过TCP方式发送数据到TCP服务器 * @param  buf 数据首地址 * @param  buflen 数据长度 * @retval 小于0表示发送失败 */ int transport_sendPacketBuffer(unsigned char* buf, int buflen) { return send(SOCK_TCPS,buf,buflen); } /** * @brief  阻塞方式接收TCP服务器发送的数据 * @param  buf 数据存储首地址 * @param  count 数据缓冲区长度 * @retval 小于0表示接收数据失败 */ int transport_getdata(unsigned char* buf, int count) { return recv(SOCK_TCPS,buf,count); } /** * @brief  打开一个socket并连接到服务器 * @param  无 * @retval 小于0表示打开失败 */ int transport_open(void) { int32_t ret; //新建一个Socket并绑定本地端口5000 ret = socket(SOCK_TCPS,Sn_MR_TCP,5000,0x00); if(ret != SOCK_TCPS){ printf("%d:Socket Error\r\n",SOCK_TCPS); while(1); }else{ printf("%d:Opened\r\n",SOCK_TCPS);…
Read More

ARM mbed平台WIZwiki-W7500使用说明

博客
ARM mbed IDE 是ARM内核微控制器的在线开发工具,其网站是:http://developer.mbed.org。网站提供了在线编译器,不需要本地安装编译器即可进行开发,因此没有地点、时间和编译器版本的限制,只要有网络随时随地可进行开发。 下面开始使用ARM mbed IDE 进行WIZwiki-W7500的开发。 1. 如图1所示,首先在“developer.mbed.org”上创建一个帐号,在此帐号下可以添加和使用一些在线软件。登陆注册的账号开始使用IDE,如图2所示。   图1 ARM mbed首页   图2 账号登陆后的界面 2. Mbed.org 提供了不同厂商的不同平台,直接选择需要的厂商及相关的硬件平台就可以进行开发了。如图3所示,点击 “Platforms”菜单就会看到所有支持的平台。进入“Platforms”后,点击下方任意开发平台就可以对相关平台进行编译操作。或者右侧的 “Filter”选项有目前所支持的所有厂家的名称,勾选即可查看对应厂家的产品信息。   图3 ARM mbed所有应用平台 3. 本文以WIZnet的WIZwiki-W7500为例,点击选择 “WIZwiki-W7500”。如图4所示,“WIZwiki-W7500”的所有介绍及例程都可以在此页面找到。   图4 WIZwiki-W7500开发平台 4. 点击 “Open mbed Compiler”进入IDE编译环境,如图5所示。我们可以点击 “new”新建立一个工程,也可以点击 “import”导入官网提供的例程,本文以 “mbed_blinky”例程为例,点击 “ok”进入程序页面。 图5 ARM mbed程序编译平台   图6 程序导入过程 5. 如图7所示,点击 “compile”进行程序编译,编译成功以后会自动保存为Bin文件,保存路径可以自行设置。生成的bin文件可以根据两种固件下载方式下载到WIZwiki-W7500开发板。   图7 成功编译及文件保存 7.  本文将 “mbed_blinky_WIZWIKI_W7500.bin”存放在桌面,首先将WIZwiki-W7500 上的 “Debugger Sel Jumper(J3/J4/J5)” 短路(如图8所示),再通过mini USB线将 WIZwiki-W7500和PC连接。PC会识别到一个名字为 “MBED”的可移动磁盘。通过拖拽或者复制方式放入到可移动磁盘中,即可下载程序。如图9所示。如果发现可移动磁盘有 “fail.txt”文件,说明下载不成功,应该复位重新操作一遍。   图8 WIZwiki-W7500的Debugger Sel Jumper(J3/J4/J5)和Mini USB接口   图9 程序下载过程 8. 下载成功以后按一下RESET Switch(SW1)复位WIZwiki-W7500板,就可以看到Indicator RGB LED(D4)所指示的灯不停的闪烁。如图10所示。   图10 WIZwiki-W7500的RESET Switch(SW1)和Indicator RGB LED(D4) 至此,Wizwiki-W7500使用演示已结束。最新资料请到ARM mbed平台或者WIZnet官网下载www.iwiznet.cn。 更多信息,请登录WIZnet官网 www.iwiznet.cn 或 微信公众平台
Read More
空气质量在线检测系统制作 之Smart Airbox 制作流程

空气质量在线检测系统制作 之Smart Airbox 制作流程

博客, 物聯網
已刊登在《无线电》8月刊 文/Gavin 在帝都生活的小伙伴们,想必对空气质量一定是不能再敏感,十几米的能见度想想也是醉了。一遇到久违的蓝天,朋友圈就被各种炫蓝天的照片刷屏。既然已经无法奢望室外空气,就在室内空气上下点功夫吧,毕竟一天中的大多数时间还是在室内度过的。于是乎,小熊决定做一个智能空气盒子,实时检测家里的空气是否达标。关爱绳命,从一呼一吸开始… 项目简介 智能空气盒子(Smart AirBox)是空气质量在线检测系统的雏形。该系统可以监测周围的空气质量(VOC、PM2.5、温度、湿度等),并将参数数据通过BLE发送给BLE网关,这样,我们就可以通过PC来查看周围的空气质量情况,或者通过手机的蓝牙BLE直接连接到智能空气盒子获取周围空气数据。图1是PC通过浏览器获取到的空气质量显示页面。 图1 网页显示的空气数据 此系统由空气质量检测节点智能空气盒子(Smart AirBox)和BLE转以太网网关“BLE Gateway”组成,如图2所示:   图2 智能空气盒子及BLE网关 本篇先介绍智能空气盒子的硬件制作步骤,因为程序部分和网关程序的关联比较多,以后有机会再向大家介绍智能空气盒子的程序部分以及本系统的另外一个组件“BLE网关”的制作步骤。   空气质量检测节点“Smart AirBox” 智能空气盒子(Smart AirBox)集成了VOC气体(挥发性有机化合物)和PM2.5(可呼入颗粒数)检测单元、温湿度检测单元、BLE传输单元以及LED显示单元。其中VOC气体和PM2.5检测单元使用的是ZPH-01[1],ZPH-01可以通过串口输出采集到的空气数据,并且每秒更新一次。温湿度检测单元采用的是Maker常用的DHT11传感器,可通过数字接口输出温湿度信息,价格低,性能可靠。 图3 智能空气盒子主要部件 BLE传输单元使用的是TI的CC2541模块,CC2541作为智能空气盒子(Smart AirBox)的MCU,从各检测单元取回数据并将此空气数据发送到BLE Gateway或手机,再按照空气质量等级来驱动发光二极管进行直观显示。如图4所示,从左到右分别代表空气质量的“优-良-中-差”四种情况。 图4 智能空气盒子实际检测变化情况 本次智能空气盒子DIY过程中,传感器检测项目和精度如下: VOC检测单元:甲醛、苯、一氧化碳、氨气、氢气、酒精、香烟、香精等有机挥发气体; 可呼入颗粒数检测单元:检测颗粒大于1μm以上; 温度检测单元:测温精度±2%,测量范围:0~50摄氏度; 湿度检测单元:测湿精度±5%RH,测量范围:20~90%;   设计过程 1, 设计思路 这次设计思路和以往的设计有很大不同。小熊以往的设计都是将全部电路部分放在一块PCB上,或者是两块PCB通过接插件的方式连接在一起,而本次设计从一开始就计划将PCB本身用作壳体,六块PCB合体后是一个完整的正方形的,但是这会面临一个两难的选择:方案1,六面分别是单独设计,每块都是单独的PCB;方案2,六面采用同样的设计,焊接时不同的面焊接不同的器件。方案1的优点自然是设计难度小,缺点是制版成本高;6块PCB的制版成本是(50(样板费)+100(黑色阻焊))x6,六倍与方案2的成本。一番取舍后,最终小熊的屌丝症发作,选择了方案2作为最终实施的方案,事实证明,方案2完全就是一个烧脑的设计…… 2, 硬件架构 确定设计方案后,小熊开始了原理的勾画。前面已经决定要在同一块PCB上实现所有的电路,只是根据需求对某一面板进行特定器件的焊接,这种思路决定了不可能采用常规的原理图设计来处理,整体的电路如图5所示。 图5 硬件架构及原理 整体布局是6个板子,板与板之间不但要有电源供电,还需要进行IO通讯,所以小熊引入另外一组通讯焊盘,这组焊盘要包含上图中所有需要的通讯IO,如图6所示:   图6 通讯焊盘 整体的原理图如下:   图7  Smart AirBox 原理图 3, PCB设计 为了方便说明,我们命名为“底板”、“前面板”、“后面板”、“左侧板”、“右侧板”和“盖板”,大家可以先脑补下它们的相对位置。然而,要在一块板子上集成“Micro USB 接口”、“电源LDO部分”、“LED显示单元”、“CC2541贴片模块”、“VOC&PM2.5采集模块”、“DHT11温湿度模块”等,而且为了美观,需要将所有器件布置在PCB盒子的内部面上,PCB盒子的外部面则保持无器件、无走线、无焊盘、无丝印的“四无”状态;所以在PCB设计时小熊定义了几个设计规则和步骤,下文将逐步说明: 步骤1,采用黑色PCB,正方形设计,板厚1.6mm,因为PCB就是壳体,足够的板厚才有足够的结构强度,板子面积:65 x 65 mm。   图8  PCB 65mm x 65mm 步骤2,在每个边上加两个凸起位置用作板与板间的固定,凸起的宽度要和板厚一样为1.6mm,长度是16.25mm, 也就是板边的1/4。为方便插接,在凸起的两边各削除0.1~0.2mm,并做出固定的焊盘。这个焊盘需要大些,以保证各个面板之间固定的稳固性。 图9 固定焊盘设计 步骤3,放置LED显示单元和Micro USB 接口等需要外部开孔的器件,并在适当的位置放置一定数量的通风孔,用来确保空气的流通以保持采集数据的准确性和实时性。   图10 透光口设计 LED显示单元:P1.0~P1.7共8个独立IO控制的发光二极管,还有一个供电指示灯,共9个发光二极管,为了保持外壳面的“光洁”,小熊采用的方式是在贴片二极管的两个焊盘间放置一个1.2mm直径的开孔用来透光,然后贴片二极管采用反向焊接的方式,也就是倒扣着焊接,透光口设计如图10所示; Micro USB 接口:Micro USB接口的外沿要和步骤2中所做凸起的外沿尽量齐平,不然焊接之后会出现USB接口内陷在壳体内部,不好插拔的问题。由于壳体的六面都是同一板子,要考虑到USB接口的开口问题,为了避免每面上都有开口,并避免开口过大造成的美观问题,小熊选择半开孔的方式,如图11所示; 图11  micro USB 接口设计 通风孔:小熊选择用不同直径的圆形开孔当作通风孔,通风孔的直径从2.4mm>>2.0mm>>1.6mm>>1.4mm,需要保持一定数量的开孔以增强通风效果,如图12所示。 图12 通风孔设计 步骤4,根据步骤3放置的接口的位置来确定内部器件的位置,因为我们这次是立体布局,可以先在纸上做一个简单的勾画,根据器件的体积和表面积初步决定CC2541贴片模块、VOC&PM2.5传感器和温湿度传感器的大概位置。 电路部分需要放置在三块板子上,具体布局如图13所示。 图13 确定电路安装位置 后面板、左侧板以及盖板是不需要布置任何器件的。 然后就是把这三部分的电路合成到一块板子上,布线时尽量不要有过孔和背部走线,会影响最后的效果,经过整理之后就是最后生产的PCB板图,如图14所示。   图14 PCB设计图 下单后一周收到做好的PCB。 图15 PCB成品图 焊接过程 小熊详细记录了焊接的各个步骤,板与板之间焊接的先后顺序比较重要,因为顺序安排不合理的话就会出现无处下手的窘迫,小熊深有体会,囧…… 前面板:焊接发光二极管和相应的限流电阻,二极管需要反着焊接,如图16所示,作为对比右边是正面放置的二极管:   图16 LED焊接方式 共焊接3个红色的、3个黄色的和4个绿色的。 右侧面板:焊接CC2541贴片模块,焊接前小熊已经飞线将程序下载到模块了。 底板:先焊接电源部分,VOC传感器部分暂且不焊。 完成后如图17所示。   图17 焊接半成品图 终于等到了板与板合体的时刻,形容下当前的状态:“小熊屏气凝神,握着烙铁的手颤抖着……”。 焊接这个需要连锡的焊盘有个技巧,就是把烙铁头从下往上滑,容易在两个焊盘间挂锡。先将底板和右侧面板焊接在一起: 然后相同的步骤处理前面板: 焊好前面板之后,将VOC模块焊在设计好的位置, 后面板焊接前需要进行一些处理,将Micro USB的位置用偏口钳把两个连接点剪断, 然后…… 继而相同的步骤处理左侧面板及上盖板,最后贴上象征身份的贴纸……“Duang” 智能空气盒子合体成功!迫不及待地插上电源,悠悠绿灯亮起,代表附近的空气质量“优”,小熊终于可以放纵的呼吸了。 用熄灭的打火机放气模拟空气质量不好的情况,然后……灯条“蹭”的就上去了,智能空气盒子工作正常,小熊很开森。 任性的小熊是不会告诉你们第一次上电没有成功,检查了好久才发现有个焊盘虚焊的。 写在最后       小熊公开智能空气盒子详细制作过程的初衷是启发大家的灵感,任何灵感和想法都有被实现的必要,关键看如何实现。本次的整体系统是采用“传感器—BLE—以太网”的架构,也许有些同学会觉得没有“传感器+WiFi”的B格高,但小熊面临的现实是,内置协议栈的开源WiFi模块在市场上并不多见,即使有也存在开发成本高、难度大的特点,况且小熊一向以为WiFi这种无边界的网络,如果不作加密处理是不适合作为智能家居应用的。而如果是采用成品的“串口转WiFi”模块,则没有办法实现小熊用网页显示,以及更进一步上传空气数据到类似于Yeelink的开源平台上的目的,所以一番取舍后,小熊还是采用了当前的方案。后续会跟大家分享软件调试部分,期待关注。   [1]…
Read More