编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

青少年从零动手学物联网,Blynk+Mixly+Arduino一本搞定

wxchong 2025-05-27 18:21:48 开源技术 16 ℃ 0 评论

有的小朋友会做可以远程控制的台灯?有的小朋友给妈妈做了花草监护器?还有小朋友给爸爸做了减肥沙发?“别人家的孩子”这么厉害了吗!?你们也能!

只需要拥有这样一本书,然后认真学习就可以啦!

实用的远程烟雾报警器、酷炫的舞台七彩灯,那个叫“麦熊战车”的停车位检测装置、神奇的教室感应灯,还有足以引出很多烧脑迷题的教室人数统计器……所有这些,都能在这本书里找到!

我们一起来找一些可以利用的材料(LED灯、传感器小模块以及Laserblock-loT木板),打开手机端Blynk App,一步一步,做出你们自己的物联网创意作品吧!

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

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

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

主体目录:

第一部分 准备篇免费

  • 第1章 初识物联网免费
  • 第2章 认识物联网开发板免费
  • 第3章 搭建物联网开发环境免费

第二部分 基础项目实践篇

  • 第4章 远程控制台灯
  • 第5章 走廊噪声检测仪
  • 第6章 远程开门
  • 第7章 远程烟雾报警器
  • 第8章 花草伴侣
  • 第9章 定时风扇

第三部分 中级项目实践篇

  • 第10章 教室感应灯
  • 第11章 网络校准时钟
  • 第12章 远程音乐播放器
  • 第13章 停车位检测装置
  • 第14章 校园气象站
  • 第15章 舞台七彩灯

第四部分 高级项目实践篇

  • 第16章 远程红绿灯
  • 第17章 儿童起夜提醒器
  • 第18章 教室人数统计器

第五部分 附录

  • 附录A 常见问题及处理方法
  • 附录B 结构搭建技巧
  • 附录C 搭建Blynk本地服务器
  • 附录D 课堂教学实施策略

样章试读:

远程控制台灯

项目背景

材料准备

USB电源模块

USB电源模块是一款数字信号执行器,可以通过程序控制其数字信号的高低电平,从而控制连接在其USB接口上的设备的工作状态。在USB电源模块上写有大写字母“D”(Digital),表明这是一款数字执行器,可以连接在物联网开发板的任何一个数字管脚上。比如,在USB电源模块连接一个USB台灯,就可以通过程序来控制台灯的开关和亮度。

USB电源模块

USB小台灯

右图所示的是一款小巧便携的,可以连接在电脑USB接口或充电宝等设备上的小台灯。其内部采用LED发光,具有亮度高和能耗低的特点,在创客项目制作中常用于模拟台灯。

USB小台灯

识点:数字信号

简单地说,数字信号就是只有0和1两种状态的信号。在生活中,数字信号的例子随处可见,比如电灯的开和关就可以与数字信号的1和0对应,声音的有和无也可以与数字信号的1和0对应。在电路中,数字信号可以表现为通路和断路,当然也可以表现为高电平和低电平。

思路分析

一个完整的物联网控制系统需要包含以下几个模块。

  • App端:通过App接收数据、发送命令。
  • 物联网开发板:作为整个物联网控制系统的核心,物联网开发板承担着采集数据、发送数据、处理数据等任务。
  • Blynk服务器:用于存储信息,作为App端与开发板的中介。
  • 路由器:路由器是物联网开发板连入网络的第一道门槛。将物联网开发板连接到路由器后,才能连上Blynk服务器。

以上各模块的关系图如图4-1所示。

图4-1 物联网控制系统各模块的关系图

当我们使用手机控制小台灯时,手机会发送一个命令到Blynk服务器上。为了准确控制某一块开发板上某一个接口的设备,发送的命令必须包含以下信息:授权码(用于App与物联网开发板匹配)、管脚号(台灯连接管脚号)和命令(开或关)。

手机发送的命令会存储在Blynk服务器中,而物联网开发板会时刻[1]与Blynk服务器保持联系。一旦物联网开发板获取到手机发送的命令,就会执行该命令。

在本项目中,按下手机上的按钮,将台灯设为“开”后,物联网开发板就会点亮GPIO 12号管脚的台灯。

知识点:授权码(Auth Taken)

授权码是在Blynk App中创建新项目时生成的一串具有唯一性的编码。在编写程序时,需要将该授权码写入程序。将手机和物联网开发板连接到网络后,手机App与物联网开发板凭授权码互相对应。

硬件连接

将USB电源模块连接到物联网开发板的GPIO 12号管脚,再将USB小台灯连接到USB电源模块上,电路连接如图4-2所示。

图4-2 电路连接

创建项目

创建项目的具体步骤如下。

步骤一:添加项目

打开手机上的Blynk App,通过单击“New Project”来新建项目,如图4-3所示。

图4-3 新建项目

在“Create New Project”(新建项目)页面输入项目名称,选择ESP8266硬件类型,然后单击“Create”按钮,即可创建项目,如图4-4所示。

图4-4 设置项目名称

项目创建完成后,系统就会给你的邮箱发送一封包含授权码的邮件。当然,你也可以在项目设置中再次找到该授权码,如图4-5所示。项目初始页面如图4-6所示。

图4-5 发送授权码

图4-6 项目初始页面

在“Project Settings”(项目设置)中,找到AUTH TOKENS(授权码)。它有两个功能:“Email all”(发送全部授权码到邮箱)和“Copy all”(复制全部授权码到剪贴板)。我们可以选择“Copy all”,然后通过QQ、微信等即时通讯工具将授权码从手机发送到电脑,如图4-7所示。

图4-7 项目设置页面

创建好项目后,相当于在Blynk App中创建了一个控制台灯App,当然这个App目前是空白的,没有任何功能。

常见的台灯往往只有一个开关,而一部分台灯还会带有调光的功能。那么在Blynk App中,和这两个功能对应的是“Button”(按钮)组件和 “Slider”(滑杆)组件,如图4-8所示。

图4-8 添加组件

步骤二:添加Button (按钮)组件

选择“Button”,项目页面上就会出现一个Button组件,如图4-9所示。在本项目中,Button组件用于控制台灯的亮灭。

图4-9 添加Button组件

单击项目页面上的Button组件,进入其设置页面,如图4-10所示,各项参数设置详见表4-1。

图4-10 Button组件的参数设置

表4-1 Button组件参数设置与说明(略)

步骤三:添加Slider (滑杆)组件

设置完Button组件后,我们再来添加一个Slider组件,用于控制台灯的亮度。Slider组件跟滑杆传感器类似,可以通过滑杆让物联网开发板输出一个模拟值,这个模拟值一般可以用来控制灯的亮度、风扇的转速等,如图4-11所示,Slider组件各参数设置详见表4-2。

图4-11 Slider组件参数设置

表4-2 Slider组件参数设置与说明(略)

知识点:模拟信号

在日常生活中,灯的开关、声音的有无可以用数字信号来表示。数字信号是最简单的信号,只有0和1两种状态。但是,生活中还有很多物理量不是简单的数字信号可以表示的,比如光的强弱、声音的大小,这些物理量在有和无之间还有很多中间状态。为了表示这些中间状态,可以对0和1之间的值再次细分。由于物联网开发板的细分精度为10bit,因此可以细分成210份,即1024份。

比如,将台灯亮度设置100,是比较暗的;如果将亮度设置为500,就会亮很多;当设置值达到1023时,亮度最高。

知识点:能量值(Engrey)

在Blynk App中添加组件时,我们发现每添加一个组件都需要消耗能量。组件的功能越复杂,需要消耗的能量也越多。在注册Blynk账号时,系统会提供2000点初始能量。如果想要使用更多的能量,你可以自行搭建Blynk服务器(详见附录)。

程序实现

用Mixly编写程序

打开Mixly软件,首先选择正确的开发板类型“Generic_ESP8266”,如图4-12所示。在后续章节中,如无特殊说明,开发板将默认选择Generic_ESP8266,不再赘述。

图4-12 选择开发板类型Generic_ESP8266

然后在“模块”界面中选择“Blynk IoT”,将“服务器信息”模块拖动到代码区,如图4-13所示。

图4-13 Blynk IoT类别

为了让物联网开发板能够受手机的控制,你需要知道家里的Wi-Fi名称和Wi-Fi密码,这样就能将物联网开发板连接到网络中。另外,还需要知道Blynk App上产生的授权码。授权码是Blynk App与物联网开发板之间互相对应的唯一编码。有了这3个信息后,我们就可以用手机控制物联网开发板了。远程控制台灯的Mixly程序如图4-14所示。

图4-14 远程控制台灯的Mixly程序

编写好程序后,检查开发板类型是否正确,选择正确的端口,上传程序,此时需要稍等片刻,如图4-15所示。

图4-15 Mixly上传程序

程序上传完成后,打开串口监视器后,按下物联网开发板上的RESET按键。如果能在串口监视器中看到类似于图4-16所示的信息,就说明已经成功连接到Blynk服务器。

图4-16 Mixly串口监视器输出信息

连接成功后,打开Blynk App,可以看到物联网开发板已经连接到App。

如果连接失败,则要检查Wi-Fi信息、授权码等是否填写正确。

用Arduino IDE编写程序

打开 Arduino IDE软件,选择“文件”→“示例”→“Blynk”→“GettingStarted”→“BlynkBlink”,打开示例项目。

一个Arduino程序至少包含setup函数和loop函数。setup函数主要包括程序的初始化操作,程序只会被执行一次。loop函数中的程序作为主程序会被反复执行。

在Blynk物联网编程中,首先需要引入与物联网通信相关的库文件。

#define BLYNK_PRINT Serial // 开启串口监视
#include <ESP8266Wi-Fi.h>
#include <BlynkSimpleESP8266.h>

还要将授权码写入程序中。

char auth[] = "c6832f4a969b403c98ded86677bc16cc";//授权码

要将物联网开发板连接到网络中,需获取所在环境的Wi-Fi名称和Wi-Fi密码。

char ssid[] = "ssid";//Wi-Fi名称
char pass[] = "psssword";//Wi-Fi密码

有了这些信息之后,在setup函数中,可以通过Blynk.begin()函数让物联网开发板连接到Blynk服务器上。

void setup()
{
 Serial.begin(9600);
 Blynk.begin(auth, ssid, pass);//官方服务器
}

而在loop函数中,通过调用Blynk.run();就可以让物联网开发板与Blynk服务器保持联系。

void loop()
{
 Blynk.run();
}

上传程序前,要根据所使用的物联网开发板进行设置。选择“工具”→“开发板:"Generic_ESP8266"”[2],选择“Generic_ESP8266”,如图4-17所示。

图4-17 选择开发板类型

再选择物联网开发板连接的端口,此处选择COM3,如图4-18所示。

图4-18 选择端口

完成以上两项设置后,我们就可以将程序上传到开发板上了。单击Arduino IDE软件左上角的“上传”按钮,上传程序,如图4-19所示。

图4-19 “上传”按钮

稍等片刻,程序正常上传后,界面中会显示出上传成功的消息,如图4-20所示。

图4-20 上传成功消息

程序上传完成后,我们怎么才能知道物联网开发板已经连接到Blynk服务器上了呢?

在Arduino IDE软件右上角,打开串口监视器,如图4-21所示。

图4-21 串口监视器

打开串口监视器后,按下物联网开发板上的“RESET”按键。如果能在串口监视器中看到类似图4-22所示的信息,就说明物联网已经成功连接到Blynk服务器了。

图4-22 Arduino IDE串口监视器输出信息

如果没有看到Ready信息,那么说明没有将物联网开发板正确连接到Blynk服务器,请再次检查Wi-Fi信息和授权码是否正确。

效果演示

我们可以利用Laserblock-IoT木板搭建一个台灯模型,将主板隐藏在木板下方,并在模型上写上图4-23所示的文字。

图4-23 远程控制台灯作品完成图

当程序上传完成后,在Blynk App中,按钮处于关闭状态,实际的USB小台灯也处于关闭状态,如图4-24所示。

图4-24 台灯处于关闭状态

按下Blynk App上的开关键,USB小台灯立刻点亮,如图4-25所示。

图4-25 台灯处于开启状态

测试调光功能,拖动亮度滑杆,将亮度设为202,看到小台灯灯光比较暗,如图4-26所示。

图4-26 台灯亮度设置为202

继续向右侧滑动滑杆,将亮度设置为508,效果如图4-27所示。

图4-27 台灯亮度设置为508

继续向右侧滑动滑杆,将亮度设置为971,效果如图4-28所示。

图4-28 台灯亮度设置为971

经过测试,确定开关能控制小台灯的亮灭,亮度滑块能控制小台灯的亮度。

视频演示(略)

项目小结

制作完远程控制台灯之后,我们再回过头来复习一下这个项目,回顾一下整个开发流程。可以发现,其中有3个参数非常重要,它们分别是授权码、Wi-Fi名称和Wi-Fi密码。

将物联网开发板接入互联网需要用到Wi-Fi名称和Wi-Fi密码。Blynk App和开发板的对应关系由授权码决定。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表