1智能产品设备的概念
1.1 基本概念(物=智能产品)
物联网中的物,就是所谓的智能产品。传统的物品必须经过智能化改造,才能符合物联网中“物”的特点。
1.2 智能产品的组成
一般情况下,智能产品由以下四个部分组成。运算器、传感器、控制器和连接器。运算器是智能产品的核心。传感器的作用是收集数据,控制器的作用是反馈数据,连接器就是把物接入到互联网的器件。
1.3 运算器=核心板
平时在智能产品程序设计的时候,主要是对运算器进行开发,运算器是智能产品的大脑。常见的运算器有51系列、stm32系列等。但是这些运算器。面临着底层的开发,对于初学者来讲相对困难。
所以在开发中一般会使用开源的开发板,比如说arduino或者树莓派,来对物联网智能产品进行开发。
目前在物联网业界中大多数的开发场景都是使用arduino或者树莓派进行智能产品的开发。
1.4 arduino
Arduino是一款开源的电子原型平台,用于构建各种交互式项目。它包括硬件和软件部分,硬件部分是一个单片机板,上面有各种输入和输出接口,可以连接传感器、执行器和其他电子元件。软件部分是一个简单易用的集成开发环境(IDE),用于编写、上传和运行代码。Arduino的设计目标是使电子原型开发变得简单和易于理解,即使对于没有编程和电子经验的人也可以使用。它已经成为一个非常受欢迎的工具,被广泛应用于各种创意和科技项目中。
1.5 仿真软件
在Arduino智能产品开发的时候,首先使用仿真软件,本教材中用到的分别是思科模拟器和wokwi。
1.6 思科模拟器
模拟器是专门为网络学习开发的仿真软件,其中涉及物联网工程的仿真。该软件主要用于智能产品的仿真,让同学们对智能产品开发有一个初步的认识。
2模拟器的安装过程
2.1 下载文件
可以通过链接https://pan.app.nbpt.edu.cn/share/4714171421755c1710a45bd9b1或者扫描图中二维码下载。
2.2 安装模拟器
1、将下载的文件夹解压后得到“模拟软件7.3”文件夹,如图:
2、进入文件夹,双击点开安装程序,根据提示安装完成,需注意安装完成后取消勾选Launch Cisco Packet Tracer,并不要打开软件。
- 安装补丁及汉化,将之前解压文件夹中的PacketTracer7.exe文件移动至模拟器的安装目录的bin中替换原有文件。
将Chinese.ptl文件移动至模拟器安装目录中的languages文件夹内。
- 打开Cisco Packet Tracer,确认汉化完成
如未显示中文,点击options-preferences设置,在选择语言中选择Chinese.ptl进行更改,重启后生效
3智能产品的第一个案例-LED灯闪烁
3.1 创建板卡
选择右下角组件-板卡选项,并将MCU拖拽至工作区
其中板卡分为三种MCU board、SBC board和Thing分别代表:
MCU board:简单的单片机
SBC board:具有联网、运算功能的单片机
Thing:典型的物联网产品
本次课程先从MCU开始学习。
3.2 创建LED灯
选择右下角组件-执行器选项,并将LED灯拖拽至工作区
3.3 连接组件
1、选择右下角连接线选项,并将IOT自定义电缆拖拽至LED灯上,并选择D0
2、并将线的另一端连接至MCU控制器,选择D0引脚
MCU的引脚分为D和A,D代表数字引脚,A代表模拟引脚,一般情况下高低电平选择数字口,也就是D。
3.3 编写程序
1、点击MCU控制器,进入编程界面
- 选择Blink编程模板
目前这个模拟器使用的是两种编程语言,一种是javascript,另一种是python,默认的是javascript。
- 认识和编写代码
mian.js为程序的主入口,模板中它分成两种方法,分别为setup方法和loop方法。
setup和loop方法
setup方法的代码在本程序中只执行一次,而loop函数在程序中是循环执行的。
所以在一般情况下setup是做初始化用的,而程序的核心代码都写在loop函数里面。
代码实例:
function setup() {
……
//该代码块在本程序中只执行一次
}
function loop() {
……
//该代码块在程序中是循环执行的
}
pinMode方法
pinMode,是用来定义引脚的输入输出模式。
它分成两个参数,第一个参数表示引脚的编号,由于刚才将LED灯连到D0的引脚上,此处将1改为0。因为是数字引脚,也就是D开头的引脚,此处只需填入引脚的编号就可以,如果是模拟引脚,就需要在数字前面加上A。第二个参数表示引脚的模式,分成output和input两种,分别对应输出信号和输入信号。一般情况下,连接传感器的使用的是input模式,连接执行器的引脚就使用output模式。
代码实例:
function setup() {
pinMode(0, OUTPUT);//用来定义引脚的输入输出模式
……
}
串口通信
Serial.printIn的作用是在串口上打印数据,这是通过串口打印的,同时可以在控制台上进行输出,在平常测试的时候会用到。
代码实例:
function setup() {
……
Serial.println("Blinking");//在串口上打印数据
}
digitalWrite设置高低电平
digitalWrite的作用是为某一个引脚输出一个信号。分别为HIGH和LOW两个参数,HIGH代表高电平,LOW代表低电平。在本节课中,应该向0也就是l e d灯所连接的引脚输出一个高信号电平,因为l e d灯的正极是连接到这个引脚上面,所以给0引脚置高电平时,l e d灯就被点亮。
代码实例:
function loop() {
digitalWrite(1, HIGH);//为某一个引脚输出一个信号
……
}
delay延时
delay的作用是延时,它的单位是毫秒,输入1000,就表示等待1秒钟。
代码实例:
function loop() {
……
delay(1000);//延时1秒后再执行下面代码
……
}
最后通过loop这个函数将代码循环起来,实现“LED亮灯-等待一秒-LED关闭-等待0.5秒”的循环。
3.4 模拟运行
点击“run”按钮,回到工作台,通过MCU控制板执行的程序,实现了LED的闪烁功能。