【PacketTracer+Arduino+OneNET(TCP透传)物联网教程1】PacketTracer中MCU芯片编程教程

教程1.PacketTracer中MCU芯片编程入门教程
教程2.全部智能设备连接MCU使用方法
教程3.读卡器与红外探测器连接MCU使用方法
教程4.常用传感器使用方法
教程5.几种按钮与开关的使用方法
教程6.执行器使用方法
教程7.上云教程
教程8.多设备上云教程
教程9.Arduino+OneNET TCP透传上云教程(发+收)

应该有不少学校的网络课程设计会使用到PacketTracer(以下简称PT)这款软件,本文将就此软件的MCU编程的基本方法进行零基础的详细的讲解。

PT内的物联网相关设备主要可以分为两类:物联网模块和智能家居设备。

物联网模块又分为两类:传感器和执行器。

此外还有服务器和MCU两种设备,可以对物联网设备进行控制。
服务器可以控制智能家居设备,MCU可以控制智能家居设备和物联网基础模块。

但这并不意味着服务器功能比MCU弱。通过服务器,我们可以实现在软件内部直接使用软件内的手机无线远程控制智能家居设备,无需编程,但也因此无法进行上云与实物化等操作。所以服务器适合做课设的同学来进行基础设计。

MCU需要我们自己进行编程,无法与软件内的手机等设备互动。只能连接传感器和执行器,利用编程实现自定义的操作。但我们软件内的上云需要使用MCU芯片实现。而且PT模拟器内的编程较为简单,可以作为Arduino实物化的先行模拟。所以MCU芯片编程适合想要参加相关竞赛的同学使用。


我们看到的具有完整功能的设备,比如一个台灯,一个风扇,一个温度表,都是智能家居设备。(下图可能有重复)

而比如一个按钮,一个LED灯此类,都是物联网基础模块。

我们可以使用这些东西做什么呢?比如,我们可以将MCU连接一个温度传感器,一个加热器和一个制冷器。当温度过低就打开加热器,当温度过高就打开制冷器。当然,我们需要在MCU内编程实现。

在本专栏中,不再讲解服务器的配置与使用,而将着重于MCU编程、智能家居编程与全部物联网模块的使用教程以及高级使用方法。如有需要请前往本专栏(点击这里)进行学习。

那么我们正式开始本篇的教程。

1.我们首先放置一个MCU芯片和一个按钮。

2.然后我们使用这根线进行连接。
3.连接时,我们可以看到MCU具有很多接口如D0、D1、A0、A1。在本实验中,我们使用MCU的D0接口。 当然并不是说只能使用D0接口。

按钮只有D0接口

并不是说,按钮只有D0接口,那么就必须要连MCU的D0接口。物联网模块如按钮一般只有一个D0接口或一个A0接口,少数有多个接口。但MCU有许多个接口。

我们可以发现,所有的接口都是分为D接口和A接口。我们将D接口称为数字接口,A接口称为模拟接口。每个物联网模块需要连接到MCU的接口类型要求都是不同的,但大部分都可以直接把A口当作D口使用,也就是说我们并不需要特意去分类每个设备需要连接什么接口,如果遇到无法使用的情况只需要把A口换成D口就可以了。

4.连接完成后,我们将鼠标放在线上的小圆点上,可以显示如下。

我们可以通过此方法快捷查看接口信息。

5.单击MCU芯片→编程→new→emptypython

6.点击main.py进入编程界面

7.我们输入如下代码后点击RUN按钮 之后可以看到下方持续输出Hello字符串。
行1 与 行2 为导入必要的库。gpio库包含从传感器和执行器读取和写入信息的函数,time库包含sleep函数。如第6行sleep(1)就表示程序暂停1秒。我们在while循环中千万不要忘记sleep(1),不然会卡死。

8.现在我们尝试读取按钮的信息。
输入以下代码并允许,可以在在下方看到0,0," "
行5:使用analogRead,参数为0,意思为使用analog方法读取MCU接口D0收到的信息
行6:使用digitalRead,参数为0,意思为使用digital方法读取MCU接口D0收到的信息
行6:使用customRead,参数为0,意思为使用custom方法读取MCU接口D0收到的信息
行7:输出三者
可以看到,前两种方法都成功读取到了0,而第三种方法无法读取成功。

9.此时我们按住ALT键并左键按住按钮

可以看到控制台显示1023,1023,” “

这表示前两种方法都读取到了按钮被按下的信息。
也就是说,我们可以使用analogRead(0)或digitalRead(0)方法读取连接到接口D0的按钮的信息,而customRead(0)方法不可以。其实,这三种方法就是我们会用到的全部的读函数。

10.假如我们将按钮连接到MCU的D1接口,大家需要怎么读取按钮信息呢?

我们只需要将函数参数修改为1即可

11.那如果我们将按钮连接到MCU的A0接口呢?

此时我们的参数需要传A0而非0,这也就是PT模拟器区分D接口和A接口的方式

所以,我们具体应该使用analogRead方法还是digitalRead方法还是customRead方法,大家可以首先到设备的说明界面进行查看如下图。
我们放置一台台灯为例并单击,可以看到以下说明。

说明中提及customWrite方法,就说明我们需要对台灯使用custom方法。大家可能有些疑惑,为什么刚刚有digitalRead,analogRead,customRead,这里就忽然变成了Write了呢。

其实常用函数就分为这三种,读和写函数又都分为digital analog和custom。对于台灯此类需要被控制的设备,我们就需要对它写入信息,对于按钮这种设备或温度传感器这类设备,我们需要读取他们传来的信息。(其实万物皆可读,只是一般没有必要)

此时我们再单击按钮查看说明发现,并没有提及使用哪种方法,这也就是为什么我们在上文中分别使用了三种方法并输出查看。对于说明中没有提及使用方法的设备,我们就需要自行尝试解决。

12.此时我们已经学会了如何读取按钮的信息,那么我们怎样利用按钮呢?
我们找来一个台灯,接在MCU的D0接口

13.我们输入以下代码并运行。

这个代码的意思是,如果按钮被按下,我们就使用customWrite方法向MCU的接口D0写入信息1,否则就向接口D0写入信息0。我们可以看到写函数具有两个参数,第一个参数是接口,第二个参数是写入的数据。
此时,我们按下按钮,则台灯打开。松开按钮,则台灯熄灭。


则我们已经学会了如何利用按钮信息控制台灯。
其实我们查看台灯的说明可以发现,向台灯写入0表示关闭,1表示dim即暗,2表示火力全开。所以我们customWrite(x,2)就可以让台灯更亮。

其实,不同的设备需要写入不同的信息,比如LED灯,我们可以写入0到1023表示亮度强弱,比如MOTOR发动机,我们输入0到1023表示旋转速度。比如加热器制冷器我们需要写入LOW或HIGH(0或1023)表示开与关,或者是风扇写入0或1表示关或开。还有更特殊的设备,我们将在以后的教程中一一讲解。

本节课主要向大家介绍了①线的选择 ②D接口和A接口的区别(一般可以把A当作D直接使用,函数参数传A0 A1 A2) ③读函数写函数和sleep函数 ④如何知道设备应使用digital analog还是custom方法

这节课是入门课,所以内容比较冗长,节奏较慢,大家如果没有看懂也没有关系,以后的教程中将带领大家在实践中获取真知。

注意:绝大部分设备都可以使用D接口,而MCU的接口数量有限,经常出现D接口不够用的情况,所以我们尽量把可以使用A接口的设备连接到A接口,为只能使用D接口的设备让出接口。

在此整理常用设备的方法与需传参数如下

执行器(智能设备)名称 控制方法
台灯 customWrite 1暗 2亮 0
加湿器 customWrite 1 0
咖啡机 custom Write 1 0
电风扇 customWrite 1低速 2高速 0
车库门 customWrite 1 0
siren报警器 customWrite 1 0
鼓风机 customWrite 1 0
草坪洒水器 customWrite 1 0
窗户 customWrite 1 0
排水孔 customWrite 1 0
customWrite [1,0]数组 [0,1]
摄像头 customWrite 1 0
LCD显示器 customWrite “xx” 字符串 ""空字符串
制冷器 digitalWrite 1023或HIGH 0或LOW
制热器 digitalWrite 1023或HIGH 0或LOW
洒水器 digitalWrite 1023或HIGH 0或LOW
舵机 analogWrite 1到1023(亮度) 0
LED analogWrite 1到1023(速度) 0

门的使用较为特殊,数组第一个数字为0的话表示不打开门,为1的话表示尝试打开门。第二个数字表示是否上锁,为1的话表示上锁,为0的话表示解锁。

传感器名称 读取方法
光照传感器 digitalRead
温度传感器 digitalRead
湿度传感器 digitalRead
运动传感器 digitalRead
烟雾传感器 digitalRead
金属传感器 digitalRead
水传感器 digitalRead
水探测器 digitalRead
风探测器 digitalRead
读卡器 digitalRead
红外线探测器 digitalRead
光照传感器 analogRead

烟雾传感器、读卡器、红外线装置需要进行一些修改,大家可以详细参考以下文章

烟雾传感器

读卡器与红外线装置

【PT+Arduino+OneNET基础教程1】PacketTracer中MCU芯片编程教程(零基础入门)相关推荐

  1. python可以自学吗需要什么基础-python自学行吗?给编程初学者零基础入门的建议...

    前言 编程是一门高深的学问,对很多人来说都很难掌握,十分晦涩难懂.然而,还是有非常多人喜欢编程,喜欢「写编程」带给自己的乐趣.与满满的成就感.听很多朋友问过,如果是零基础的初心者,想转换跑道学编程该如 ...

  2. 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)

    在群晖中批量删除重复文件(零基础手把手图文) 2020-03-26 14:51:01 24点赞 229收藏 39评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击 ...

  3. python快速编程入门课后程序题答案-Python编程从零基础到项目实战 完整PPT+习题答案...

    Python编程从零基础到项目实战是一本介绍Python相关知识的Python基础教程,内容涉及算法.Python数据分析.图形处理.Web开发.科学计算.项目管理.人工智能.Python爬虫等.其中 ...

  4. 零基础学python实战答案-Python编程从零基础到项目实战 完整PPT+习题答案

    Python编程从零基础到项目实战是一本介绍Python相关知识的Python基础教程,内容涉及算法.Python数据分析.图形处理.Web开发.科学计算.项目管理.人工智能.Python爬虫等.其中 ...

  5. 零基础可以学python吗-初学者必知:零基础学习Python真的能学会吗?

    零基础学习Python真的可以学习好吗?我想对于这个问题,是大部分想要学习Python的人都会纠结考虑的问题吧,也是很多小白最关注的的问题,今天为大家详细的解释一下. Python语言因为具有一定的独 ...

  6. 零基础轻松学python pdf 小码哥_零基础轻松学Python

    零基础轻松学Python电子书 Python之父Guido van Rossum力荐的Python门书.本书以通俗易懂的语言.好玩有趣的案例让读者轻轻松松.循序渐地从零始掌握Python 3 编程.本 ...

  7. 跟艾文学编程《零基础入门学Python》(1)Python 基础入门

    作者: 艾文,计算机硕士学位,企业内训讲师和金牌面试官,现就职BAT一线大厂公司资深算法专家. 邮箱: 1121025745@qq.com 博客:https://wenjie.blog.csdn.ne ...

  8. 编程初学者(零基础如何入门),我适合这个行业么

    编程初学者(零基础如何入门),我适合这个行业么 内容有点多,你忍一下! 文章目录 编程初学者(零基础如何入门),我适合这个行业么 前言 一.先简单的讲一下,如何学好编程语言: 第一步:定位 第二步:大 ...

  9. UE4 虚幻4游戏程序编程开发零基础视频教程

    UE4虚幻腾讯课堂丁树凯丁老师游戏程序编程开发零基础视频教程. 目录: 第01季:虚幻4基础操作 第02季:用UE4蓝图制作FPS 第03季:面向对象思想在UE4蓝图中的应用 第04季:UE4中的人工 ...

  10. 跟艾文学编程《零基础入门学Python》(4)Python 面向对象

    作者: 艾文,计算机硕士学位,企业内训讲师和金牌面试官,公司资深算法专家,现就职BAT一线大厂. 邮箱: 1121025745@qq.com 博客:https://wenjie.blog.csdn.n ...

最新文章

  1. desk next the to_仁爱版七年级下册英语句型转换题型专练
  2. 自觉培养“舆商” 争做成功网商
  3. Java JDK安装和配置
  4. 《疯狂Java讲义》(十五)---- 内部类
  5. kindeditor在线html编辑器,kindeditor在线HTML编辑器
  6. 安装Sarge(六) 安装开发环境
  7. nfine框架连接oracle,NFine快速开发框架(无后门)
  8. AltiumDesigner VS 立创EDA —— PCB绘图软件选择
  9. 关于java中的httpsession_JavaWeb——HttpSession
  10. 服务器SNMP协议测试
  11. IE-LAB网络实验室:思科CCNP考几门?
  12. DOGCOM路由器K2(7620A)for哆点(DRCOM)校园网-西安石油大学
  13. 大小写转换(大小写转换键是哪个键)
  14. BitTorrent协议规范
  15. Android实现网页动态背景“五彩蛛网”
  16. Cobbler自动部署CentOS系统
  17. NOI Online #2 普及组 第二题:荆轲刺秦王
  18. 最小二乘估计,矩阵求导法(正规方程)全推导
  19. Vue 的响应式原理中 Object.defineProperty 有什么缺陷?为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?...
  20. 220413数据分析总结

热门文章

  1. spring 定时任务表达式正确性校验
  2. c语言字符型常量的例题,C语言笔试题100道
  3. python统计段落单词词频_python词频统计实例
  4. csv 计算机系统化验证,计算机化系统CSV验证问答.doc
  5. 修改注册表解决 Win7 DbgView 不显示调试信息
  6. ailed to send crash report due to a network error: SocketException: OS Error: 信号灯超时时间已到 , errno = 12
  7. ad14 drc报错_AD怎么设置DRC检查常规检查项报错?
  8. Oracle数据库用户密码过期的解决方法
  9. 合同管理系统主要增加了安全性,对于大型企业作用重大
  10. 【githubgirl】如何通过实现一个简单的编译器(TinyC),并借助实例来描述基本的编译原理及过程