物联网So Easy 基于Blynk平台的IOT项目实践

978-7-115-51946-7
作者: 裘炯涛陈众贤
译者:
编辑: 吴晋瑜

图书目录:

详情

本书基于Blynk 物联网平台,通过项目实践的方式引导读者制作物联网项目。全书包括 准备篇、基础项目实践篇、中级项目实践篇、高级项目实践篇和附录五部分内容。 本书先介绍物联网的一些概念,并在认识物联网开发板的基础上介绍搭建物联网开发环 境的方法;接着通过实现远程控制台灯、定时风扇等初级项目,引导读者利用手机与硬件完成互相发送简单命令、实现远程控制、远程数据获取等任务。随着项目的深入,本书将介绍网络校准时钟、校园气象站等中级项目,进而介绍远程红绿灯、教室人数统计器等高级项目,最终帮助读者掌握复杂数据的发送与接收、硬件与硬件之间的通信与桥接等技能。 通过阅读本书,读者可以掌握Blynk 物联网开发技术的相关知识,了解物联网的开发原 理与步骤,能够独立开发物联网项目。 本书适合具有图形化编程(Scratch、Mixly 等)基础的小学高年级学生以及对物联网等创客技术感兴趣的初、高中学生阅读,也可供中小学信息技术教师、培训机构的创客教师阅读参考。

图书摘要

版权信息

书名:物联网,So Easy!

ISBN:978-7-115-51946-7

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


著    裘炯涛 陈众贤

责任编辑 吴晋瑜

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


本书基于Blynk物联网平台,通过项目实践的方式引导读者制作物联网项目。全书包括准备篇、基础项目实践篇、中级项目实践篇、高级项目实践篇和附录五部分内容。

本书先介绍物联网的一些概念,并在认识物联网开发板的基础上介绍搭建物联网开发环境的方法;接着通过实现远程控制台灯、定时风扇等初级项目,引导读者利用手机与硬件完成互相发送简单命令、实现远程控制、远程数据获取等任务。随着项目的深入,本书将介绍网络校准时钟、校园气象站等中级项目,进而介绍远程红绿灯、教室人数统计器等高级项目,最终帮助读者掌握复杂数据的发送与接收、硬件与硬件之间的通信与桥接等技能。

通过阅读本书,读者可以掌握Blynk物联网开发技术的相关知识,了解物联网的开发原理与步骤,能够独立开发物联网项目。

本书适合具有图形化编程(Scratch、Mixly等)基础的小学高年级学生以及对物联网等创客技术感兴趣的初、高中学生阅读,也可供中小学信息技术教师、培训机构的创客教师阅读参考。


五年前,刚刚大学毕业的我对于自己的未来毫无所知,也从来没有听说过创客教育和STEAM教育。可能是小时候没玩够,也可能是羡慕别人可以写几行代码就能实现炫酷的效果,我总想着自己写点程序,就可以做出各种神奇的东西。

在还不知道Arduino怎么拼读的时候,我就买了一些器材开始自己捣鼓,上网查询资料,下载编程软件,学习教学视频,费了很大周折,依然不知道该如何去控制它。直到有一天,我在网上看到Mixly软件,发现这款软件界面简单,采用图形化编程,只需要拖动图形化积木块就可以实现快速编程。在初步掌握了Mixly软件和Arduino硬件的编程方法之后,我便迫不及待地想把这些有趣的知识教给我的学生,想让他们也能通过编程设计出自己的玩具、实现自己的想法。

在每天花大量的时间研究程序、设计作品、不断失败、反复尝试的过程中,我发现了这其中的乐趣。那就是,你可以通过自己编写的程序去获取温湿度、光线值,控制灯、舵机等设备,并最终完成心目中的一个作品,从中获得很大的成就感和满足感。

在接触Arduino近两年之后,我特别希望可以通过远程的方式来控制Arduino硬件。比如:在手机上点击,家里的灯就可以亮起;在手机上设置,学校里的空调就可以开始工作。后来,我了解到这就是物联网技术。

为了实现自己的想法,我查找了很多资料,先后用过很多物联网平台,最终选择了Blynk物联网平台。这个平台有很好的开放性,可以兼容各种硬件和传感器。Blynk App设置简单,方便用户快速上手。当然,原生的Blynk需要用Arduino IDE编程,这对于大部分教师和学生而言是有一定难度的。于是,我在Mixly软件的基础上加以修改,将Blynk物联网功能集成到Mixly中,降低了编程难度,便于快速开发。

我时常会想起鲁迅先生说过的话:“世上本没有路,走的人多了,便成了路。”后来我想,创客教育这条路,以前也没人走,现在走的人多了,渐渐地就有更多的人加入了。作为这条路上的行者,我走过之后,也希望能留下些脚印,并不是为了证明自己曾经走过,而是希望后来的人再走这条路时,可以不那么艰难。

在本书中,我和陈众贤老师共同开发了15个基于Blynk平台的物联网项目。我们从中小学拓展性课程出发,由易到难,从编程到硬件,从设计到实现,整理出具有代表性的15个物联网项目。也希望广大中小学师生可以在此基础上设计出更加精彩的物联网项目。

裘炯涛  

2019年8月


在正式开始学习物联网项目实践之前,我们先来简单了解一些基础知识,准备充分再出发。


进入21世纪后,互联网越来越多地改变着人们的生活。从最初的收发邮件、文件传输和Web服务,到后来的社交、网络游戏和电子商务,再到如今的网络外卖、网络打车、视频直播等。互联网成了我们这一代人生活中不可或缺的部分。尤其是在智能手机推出以后,移动互联网的发展更上台阶,各种各样的App给人们的生活带来了极大的便利。

近几年,我们经常听到一个跟互联网很接近的词——“物联网”,一字之差的两个词,它们之间有什么样的关系呢?

简单来讲,“物联网”就是物与物的互联网,是利用最新信息技术将物互联互通在一起的新一代网络。物联网的核心和基础仍然是互联网,是在互联网基础上延伸和扩展的网络。其用户端延伸和扩展到了物品与物品之间,可以进行信息交换和通信,也就是物物相联。

在互联网时代,接入互联网的设备是电脑、手机;而在物联网时代,几乎任何东西都可以接入物联网中,例如目前的部分空调、扫地机器人、冰箱已经接入物联网,未来会有更多设备接入物联网,如图1-1所示。

图1-1 物联网(引自Freepik)

生活在互联网时代的人们,已经习惯通过网络浏览新闻、结交朋友、高效工作。那么,进入物联网时代,人们的生活又会是什么样子呢?

当你每天上学离开家时,家中的物联控制中心会关闭一些电器,比如电灯、空调、风扇等,防止因为忘了关闭电器而造成资源浪费,甚至引起不必要的事故。同时,物联安防系统将进入警戒状态,如果有外人入侵,这个系统就会报警,也会及时通知你和你的父母,甚至还可以通知小区保安和警察。

当你走进校园,校园的门禁系统会自动识别你的身份,会主动向你问好,同时也会通知你的父母你已经安全到达学校。如果你最先到达教室,可是发现教室的门还锁着,需要在门口等待老师开门吗?不,不需要!人脸识别技术会识别出你的身份,帮助你轻松打开教室门,开始一天的学习。

放学后,你可以在到家前打开家里空调;当你回到家时,家门会自动为你打开。空调在十分钟前就已经开始工作,而原来处于通风状态的门窗也随着空调的启动而自动关闭,室内刚好达到了你所喜欢的温度。此时,物联安防系统自动解除室内警戒,灯光自动亮起,背景音乐自动响起;冰箱会根据设置下单购买你需要的食物,为你配送到家;如果家里的甲醛、一氧化碳、二氧化碳等有毒有害气体超标,空调、新风系统会自动启动……物联网与你的生活紧密相关,如图1-2所示。

图1-2 物联网与生活
(引自 macrovector / Freepik)

物联网技术在人们生活中的应用远远不止上面提到的几个例子。物联网的应用大致集中在智能家居、智能交通、智能农业、智能工业、智能物流、智能电力、智能医疗、智能安防等领域。

近年来,得益于人工智能技术和物联网技术的发展,自动驾驶汽车技术越来越成熟。汽车上的众多传感器采集到的数据可以帮助司机更好地驾驶汽车,甚至可以帮助司机做出决策。

在未来的智能交通中,马路上的每一辆车都将成为交通网络中的一个节点。这些节点之间可以通信对话,并能借助大数据分析帮助司机更好地避开拥堵,节约时间,减少交通事故;也可以向交通部门提供准确的道路信息,为城市规划建设提供第一手资料;还可以把数据反馈给汽车生产商,供他们据此分析研究,进而设计出更先进舒适的汽车。

也许有一天,真的会如埃隆•马斯克所说的那样,“总有一天,法律将不允许人们自己开车”。人们只需要上车,告诉汽车目的地,就能静静等待到达目的地,如图1-3所示。

图1-3 物联网与交通(引自 Freepik)

“锄禾日当午,汗滴禾下土”是我们对农民伯伯辛苦劳作的一贯印象。当然,随着现代化技术的发展,农民伯伯也有了大量可以利用的机械化设备,这大大提高了生产效率。那么,将物联网技术应用于农业之后,会发生什么呢?

在未来的智慧农场里,人们将部署各种传感节点(用于获取环境温湿度、土壤水分、土壤肥力、二氧化碳、图像等信息),利用无线通信网络实现农业生产环境的智能感知、智能预警、智能决策、智能分析和专家在线指导,为农业生产提供精准化种植、可视化管理和智能化决策。

也许有一天,农民伯伯只需要坐在屋子里,看着电脑屏幕上的各种数据图表,就能做出精准的决策,合理浇水,精准施肥,大大提高农作物产量,如图1-4所示。

图1-4 物联网与农业(引自jcomp / Freepik)

当身体出现异常时,我们需要去医院做各种检查,然后医生会针对我们的病症开药或者给出治疗建议。如果把物联网与医疗结合起来,就可以利用一些穿戴式智能设备完成一些基础项目(如心率、体温、血压等)的检测。智能穿戴设备会记录很多跟健康有关的数据,方便我们管理自己的健康记录。你也可以选择将自己的健康数据传送给医院,以便让医生据此了解你的健康状况,必要时可以进行远程会诊,进而提出医疗意见,如图1-5所示。

图1-5 物联网与智慧医疗(引自macrovector / Freepik)


本书用到的ESP8266物联网开发板分为两种:一种是物联网开发教学板;另一种是物联网开发迷你板。

物联网开发教学板将ESP8266的部分引脚全部引出,主板上的防呆接口让接插传感器更加方便灵活。该主板具有电源电路(如锂电池供电)、USB程序一键下载等功能,适合在教学中使用,如图2-1所示。

图2-1 物联网开发教学板

另一种开发板是物联网开发迷你板,它外观小巧,引出了7个数字信号接口、1个模拟信号接口和1个I2C接口。物联网开发迷你板兼容大部分厂家传感器,适合在制作作品时使用,如图2-2所示。

图2-2 物联网开发迷你板

这两种开发板除了尺寸不同,它们的功能完全相同,因此在本书项目实践篇的“硬件连接”环节,我们将统一使用物联网开发教学板。在实际制作中,读者可以根据作品的尺寸大小选择合适的开发板。

在本开发板中共有7个数字管脚,分别是GPIO 0、GPIO 2、GPIO 15、GPIO 13、GPIO 12、GPIO 14和GPIO 16,如图2-3所示。

图2-3 数字管脚

数字管脚是指可以读取或写入数字信号的管脚,是很多开发板中最基础的管脚。通过设置数字管脚的电平值,我们可以改变连接在管脚上的元件的工作状态,如灯的亮灭;也可以通过读取数字管脚的电平值,来获取连接在管脚上的传感器的数值,如按钮的状态。

但有个特别需要注意的地方,ESP8266物联网开发板在上传程序时要求GPIO 0、GPIO 2、GPIO 15都不能连接传感器,否则会导致上传失败

在本开发板中只有1个模拟管脚,是ADC A0,如图2-4所示。

图2-4 模拟管脚

模拟管脚是指可以读取模拟信号的管脚,在物联网开发板中的模拟管脚精度为10bit,即读取范围为0~1023。将模拟传感器连接在模拟管脚,就可以通过程序读取到该传感器的模拟值,如光线的强度值。

在本开发板中有一个I2C接口,其中的SDA对应GPIO 4,SCL对应GPIO 5,如图2-5所示。

图2-5 总线接口

集成电路(Inter-Integrated Circuit,I2C)总线,多用于主控制器和从设备(包括传感器和执行器)之间的主从通信。总线接口只需要有两条数据线:一条是串行数据线SDA,另一条是串行时钟线SCL。每个连接到总线的器件都可以通过唯一的地址和其他器件通信。例如,使用总线通信的设备有OLED屏幕、LCD1602点阵液晶屏等。

图2-6所示的RESET按钮即为重启按钮,按下该按钮可以重新运行程序。

图2-6 RESET按钮

在本开发板上还有一个可编程按钮,它连接在GPIO 0管脚上,如图2-7所示。可以通过编写的程序来读取GPIO 0管脚的状态。该按钮可以在调试程序时使用。

图2-7 可编程按钮GPIO 0


物联网开发环境包括电脑端软件和手机端App两部分:电脑端软件负责给开发板编写程序;手机端App负责接收开发板发送的数据,也可以控制物联网开发板。

物联网开发软件是在图形化编程软件Mixly基础上搭建而成的。Mixly是一款Arduino的图形化编程工具。用户可以通过拼接积木块的方式来编写Arduino程序。Mixly是北京师范大学教育学部创客教育实验室负责人傅骞老师带领团队开发的一款免费开源图形化编程软件。为方便读者学习使用,本书提供了一键安装包,供读者下载并解压到电脑使用。

一键安装包的下载地址:登录异步社区图书详情页,单击“配套资源”即可。

下载Mixly 软件并解压到电脑的根目录中。解压后的目录结构如图3-1所示。

图3-1 Mixly的目录结构

为了适合不同层次的学习者学习物联网开发,本书提供C语言编程版本(Arduino IDE)和图形化编程版本(Mixly)的代码实现。

Mixly版本

双击Mixly.exe 打开软件,如图3-2所示。

图3-2 Mixly软件界面

Arduino IDE版本

打开Arduino-1.8.9文件夹,双击Arduino.exe打开软件,如图3-3所示。该软件是基于Arduino IDE官方版本,加入Blynk物联网开发功能,适合有C语言编程基础的学习者使用。

图3-3 Arduino IDE软件界面

编写的程序上传到开发板中需要跟电脑进行通信,而要实现通信,需要先在电脑上安装驱动程序。驱动程序的路径是Mixly\arduino-1.8.9\drivers\CH341SER-Driver,如图3-4所示,双击CH341SER.EXE安装驱动程序。

图3-4 安装驱动程序

安卓用户请登录异步社区图书详情页下载Blynk App安装包,iOS用户可以在App Store中搜索“Blynk”并下载安装,如图3-5所示。

图3-5 在App Store中搜索“Blynk”

安装完成后,手机上就会出现Blynk App图标,如图3-6所示。

图3-6 Blynk App图标

打开App后,单击Create New Account(注册新用户),如图3-7所示,然后在注册页面填写自己的邮箱和密码即可完成注册,如图3-8所示。

图3-7 Blynk App界面

图3-8 Blynk App创建账号

注册完成后,用户就能用新注册的账号登录该App。在接下来的学习中,我们将使用Blynk App实现远程控制、远程数据获取等多种物联网功能。

在该App中,你可以创建多个项目,每个App项目可以对应一个物联网项目,在每个项目中可以添加不同的控件去获取数据或者控制开发板,我们将在后续章节逐一介绍。

将物联网开发板用USB线与计算机连接,开发板上的红色电源指示灯会亮起。右击桌面上的“此电脑”图标,从弹出的快捷菜单中选择“管理”命令,然后在打开的“计算机管理”界面中找到“设备管理器”,如图3-9所示。

图3-9 打开“计算机管理”界面的操作

在右侧找到“端口(COM和LPT)”,可以发现有一个“USB-SERIAL CH340(COM3)”设备,该设备就是物联网开发板。请记住括号中的端口号COM3,因为会在编程过程中用到它,如图3-10所示。

图3-10 查看端口号

知识点:端口

我们知道,在计算机上可以连接很多外设,比如鼠标、键盘、打印机等。这些外设通常连接在电脑的USB接口上,为了加以区分,电脑会给一部分设备分配端口号。比如我们插入的物联网开发板的端口号为COM3,如果将物联网开发板换一个USB接口,端口号也将会改变。

本书选取了生活、学习中常见的15个物联网项目。读者可按照图3-11所示的步骤进行学习。

图3-11 物联网项目学习流程图

硬件连接环节需要将开发板和传感器连接起来,以实现需要的功能。

项目设置环节主要是在手机端Blynk App上创建项目,对项目进行一些基础设置。

程序实现环节分成两个部分,读者可以根据自己的编程能力选择。如果是初学者,推荐使用Mixly进行图形化编程,这样可以降低学习难度,快速上手。如果是有编程基础的读者,可以选择使用Arduino IDE编程,难度虽然较大,但是有助于理解程序的含义。

效果演示环节主要是在完成项目后进行演示和体验。在这个环节中,读者可以体验到物联网带来的无穷乐趣。


相关图书

中学生C++创意编程
中学生C++创意编程
青少年编程魔法课堂 Python图形化创意编程
青少年编程魔法课堂 Python图形化创意编程
写给 青少年的人工智能 实践
写给 青少年的人工智能 实践
青少年编程魔法课堂 C++图形化创意编程
青少年编程魔法课堂 C++图形化创意编程
青少年Python趣味编程
青少年Python趣味编程
趣味掌控板编程
趣味掌控板编程

相关文章

相关课程