作为一名教师,传统上的出勤(点名)是一项耗时的任务,如果自动化,教师可以专注于其他教学活动。在本项目中,rfid阅读器模块和rfid卡将用于实现自动考勤系统。
课程在密闭空间内进行,如果环境太热或太冷,很难听课。为了实现有效的学习,应保持教室内正确的物理环境。该项目将使用相对湿度和温度传感器(dht11)来监控温度和湿度,并在值超出范围时发出通知。
库和定义
在开始代码之前,需要将库包含在程序中。定义了物理连接到arduino板的引脚号。创建将用于数据采集的rfid接收器(mfrc522)和dht传感器(dht)的实例。创建了一个名为student的变量,它是一个二维字符串数组,用于存储学生姓名和相关的rfid标签id。
设置
setup()函数仅在板子上电或按下复位按钮时执行一次。串行连接以9600的波特率初始化。dht传感器采集调用函数begin()开始采集。
调用一些arduinoiotcloud函数来初始化属性、开始连接、设置调试消息级别并打印任何调试信息。
主要功能-循环
arduino中的loop()函数包括spi通信的开始和mfrc522的初始化。起初,这两个初始化是在设置阶段完成的,但由于arduinocloud更新时的错误而被移到循环中。它将引脚10更改为输入,中断spi通信。解决方案是在每个循环上初始化spi通信,以将引脚10重置为输出模式。
void loop() {
spi.begin();
mfrc522.pcd_init();
if ( mfrc522.picc_isnewcardpresent()) {
if (mfrc522.picc_readcardserial()) {
string content = ;
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
content.concat(string(mfrc522.uid.uidbyte[i] < 0x10 ? 0 : ));
content.concat(string(mfrc522.uid.uidbyte[i], hex));
}
//serial.println(content.substring(1));
content.touppercase();
for (int i = 0; i 27) {
msgtemphum = temperature = + string (temperature) + humidity = + string(humidity) + -> high ;
}
else if (temp low ;
}
else {
msgtemphum = temperature = + string (temperature) + humidity = + string(humidity) + -> all ok ;
}
}
准备工作-设置云
要连接到arduinoiotcloud,首先我们需要创建一个帐户或登录。
要使用已经安装了所有核心和库的基于web的编辑器,我们需要安装createagentplugin。该代理将识别通过usb连接到计算机的板。
进入网页编辑器页面后,我们可以看到板已连接/断开,编辑我们的代码并在完成后上传。
但是,还有其他两个选项可用:
经典离线arduinoide1.8.13(集成开发环境)作为–用于本地传感器故障排除。
新的arduinoide2.0-具有调试、代码突出显示和自动完成等新功能,目前处于beta阶段(准备此项目时)。
要选择iotcloud菜单或web编辑器,我们可以单击个人资料图片附近的右上角按钮。
一旦我们选择了物联网云菜单,就会有一些选项可用,但在这个项目中,我们将专注于创建事物、关联设备和准备仪表板。
单击上图所示的“创建事物”后。我们遵循了这个项目中的步骤:
第1步-设备-将设备与我们的事物相关联
第2步-添加变量
第3步-更改网络设置
第4步-编辑草图,连接到串行监视器
第5步-准备仪表板
第6步-从发送到云端的板上获取数据并导出
第1步-设备
第一步是单击并选择设备。
可以关联以前在iot云中使用的任何设备,也可以设置新设备。
对于这个项目,我们将设备arduinomkrgsm1400与thing相关联,但可以使用任何其他板,例如arduinomkrwifi1010或nodemcu。
第2步-变量
第二步是添加变量:
单击添加变量后,您需要选择变量名称、类型、权限、更新策略和阈值。在这个项目中,创建了5个变量:
湿度——在仪表板上存储和显示相对湿度值
温度-在仪表板上存储和显示室温
msg_attendance–显示学生出勤、姓名和时间
msgtemphum–显示温度和湿度以及任何警告
led-此led用于快速故障排除以检查板/云连接
变量权限可以是:
读写——变量既可以作为输入也可以作为输出,数据可以从设备发送到云端,反之亦然
只读——变量只能作为输出,数据只能从设备发送到云端
变量更新策略可以是:
onchange:只要值的变化大于或等于设置的阈值,变量就会更新到云端
定期:每次经过设置的秒数时,变量将更新到云端
该项目中使用的基本变量类型是:
布尔值-真或假(led)
浮点数-带小数的数字(温度和湿度)
字符串-单词和句子(msg_attendance和msgtemphum)
第3步-网络
设置好所有变量后,第三步是在configurenetwork中添加网络凭据
在这个项目中,我们使用了具有如下凭据的arduinosim卡:
如果您使用的是wi-fi设备,网络配置会有所不同。本地wi-fi名称不得包含空格。
第4步-草图
一小部分代码由arduinoiotcloud根据前三个步骤中添加的信息自动更新。您可以编辑草图,完整代码显示在本页底部。
检查串行监视器选项卡以排除连接故障。如果未连接到云端,我建议使用计算机中的本地arduinoide并查看串行监视器上的消息。
第5步-仪表板
仪表板是物联网云设置的最后一部分,我们可以单击在仪表板选项卡中构建仪表板:
要填充我们的仪表板,我们需要添加小部件。
然后我们将一个变量链接到设置中的小部件。在这个项目中,我们添加了七个小部件,led按钮、湿度和温度计、湿度和温度图表、温度和湿度消息以及考勤消息。
执行上述步骤的另一种方法是添加一个东西(这个项目的东西叫做sim):
然后从thing中选择变量:
有两种类型的仪表板视图:移动视图
和桌面视图:
第6步-下载历史数据
可以使用仪表板(i)上的“下载历史数据”选项从云中导出数据。
下载历史数据可以选择我们要下载的变量和时间段。
您可以查看通过电子邮件接收并下载为csv文件的考勤数据示例。
readme.txt文件包含变量名称、请求的时间段和希望我们“玩得开心!”的消息:
华为“IPv6+”智能云网解决方案赋能低碳城市建设
高云半导体EDA开发工具增加了对Ubuntu的支持
接入交换机TOR、EOR、MOR三种架构介绍
人工智能产业是否会成为下一个风口
珠海先达盈致数据智能监控器+SaaS平台 轻松实现注塑生产管控
如何利用RFID制作一个自动点名考勤系统
为什么5G基站的能耗会如此高呢?
公共交通系统的节能减排的意义
【节能学院】校园综合能效管理平台建设的意义
光源子系统对DLP无缝拼接屏系统的影响
你在把你的隐私递给AI吗
java本身自带的SPI扩展机制是怎么一回事?
大电流电感扁平线圈具备的特点及选择要点说明
库存、老品规模过亿 空调卓越品牌并不用悲观
功率放大器在水下主动电场物体形状成像系统中的应用
80后车主成顺风车车主主力军,预计2022年市场规模达到151亿元
瑞萨电子推出面向网络设备的高速存储器产品
iFixit拆解评测:微软Surface Book可修复性差
PLC经典实例:简易机械手的PLC控制线路与程序详解
变压器过载能力及时间_干式变压器过载能力分析