【PT+Arduino+OneNET基础教程4】PacketTracer传感器使用方法

【PT+Arduino+OneNET基础教程4】PacketTracer传感器使用方法

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

本文将向大家介绍PacketTracer软件中常用传感器的使用方法
包含烟雾传感器、光照传感器、温度传感器、湿度传感器、风探测器、运动传感器、水探测器、水传感器、金属探测器的使用方法。

其中,烟雾探测器需要进行源码的修改。

由于接口限制,我们先对以下传感器进行讲解。
连接MCU的接口已加在模块名字后
在这里插入图片描述

我们打开MCU进行编程(不知道什么意思的朋友可以先阅读本文(点击这里))
输入以下简单的代码

from gpio import *
from time import *

while True:
	light=digitalRead(0)
	move=digitalRead(1)
	hum=digitalRead(2)
	smoke=digitalRead(3)
	tem=digitalRead(4)
	wind=analogRead(A3)
	metal=digitalRead(A0)
	water1=digitalRead(A1)
	water2=digitalRead(A2)
	print("light:",light)
	print("move:",move)
	print("hum:",hum)
	print("smoke:",smoke)
	print("tem:",tem)
	print("wind:",wind)	
	print("metal:",metal)
	print("water1:",water1)
	print("water2:",water2)
	print("__________________________________")
	sleep(1)

之后运行代码显示如下
在这里插入图片描述
1.光照传感器
我们首先看light光照,此时示数为0,可以看界面右上角,现在已经是夜晚,所以没有光
在这里插入图片描述
我们可以点击时间进入环境界面如下
在这里插入图片描述
点击Edit并修改时间为白天,点击ok
在这里插入图片描述

回到MCU发现光照变为1023,即检测到光照了
在这里插入图片描述
2.运动传感器
接下来我们看运动传感器的使用方法
只需要按住alt键,并将鼠标在传感器上方移动,即可发现读数变为1023
在这里插入图片描述

3.湿度传感器和温度传感器
我们可以看到读到的示数并非摄氏度或百分比湿度
所以我们需要对读数进行处理

在这里插入图片描述
我们对原本读到的温湿度进行如下处理
(温度由0到1023表示-100℃到+100℃,所以我们先减去511再除以5.12即可得到摄氏度。湿度经过测试,除以10.19就可以得到最相近的读数。round函数的第二个参数为保留小数的位数。)

hum=digitalRead(2)
hum=round(hum/10.19,2)

tem=digitalRead(4)
tem=round((tem-511)/5.12,2)


如图可以看到,温度与湿度已经变为了摄氏度与百分比
在这里插入图片描述
4.风探测器
当环境有风时可以检测到1023,无风时检测到0
在模拟器中,白天往往无风,晚上与凌晨往往有风。
我们打开环境可以看到当前风速
在这里插入图片描述

但是风探测器无法检测风速,只能检测是否有风。我们看到MCU读到风为1023表示有风。
在这里插入图片描述

5.金属探测器
金属探测器可以检测金属,我们可以使用motor来模拟金属

当把金属放到探测器上方,显示80
在这里插入图片描述
6.水传感器与水探测器
这两位是不同的,左边的可以检测水位,右边的只能检测有没有水
在这里插入图片描述
我们打开洒水器,看二者的读数
发现water1会随着时间增加,water2永远是1023
在这里插入图片描述
关闭洒水器 water1逐渐下降,water2依旧为1023,直到水位water1为0,water2也变为0。
在这里插入图片描述
7.烟雾传感器
烟雾传感器的官方源码有些问题,无法使用MCU直接读取,所以我们需要进行一些简单的修改。
单击传感器→高级→编程→双击python代码→双击main函数
在这里插入图片描述

修改代码如下:

from gpio import *
from time import *
from environment import *
from physical import *
from pyjs import *
import math

ENVIRONMENT_NAME = "Smoke"
MIN = 0
MAX = 100


def main():
    while True:
        loop()
		
def loop():
    value = float(Environment.get(ENVIRONMENT_NAME))
    print(value)
    if value < MIN:
        value = MIN
    elif value > MAX:
        value = MAX

    setDeviceProperty(getName(), "level", value)

    digitalWrite(A0,value*10000)
    sleep(1)

if __name__ == "__main__":
    main()

修改完成后一定要点击Run运行,包括以后重新打开模拟器文件时,传感器代码可能会被系统关闭,需要我们重新在这里点一下运行才可以正常使用
在这里插入图片描述

打开小车(按住ALT点击小车)之后可以发现传感器正常读数
当然读数具体含义我们也没必要去深究,只要是有就可以了,具体的读数甚至每个软件版本都不一样。
在这里插入图片描述

至此,常用传感器的使用方法已经讲解完毕。

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

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

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

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

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

烟雾传感器

读卡器与红外线装置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值