基于物联网的智能体育器材管理系统

2023-11-19

继续更新之前做过的一些Arduino基础项目之基于ESPduino的智能体育器材管理系统

实现效果

系统的整体结构图

阿里云服务器物模型运行图
系统的APP页面图片
本系统可以将采集到的数据上传至阿里云物联网平台,并通过物联网平台发送至用户的手机app上,用户可以远程查看室内情况,并可以远程处理室内异常情况.

所需硬件及软件

1.Espduino和Arduino开发板(采用双机通信的方法,原来引脚没规划好,做到后面只能加个Arduino开发板了,Espduino作为主机,Arduino作为从机)

2.传感器模块(dht11温湿度模块,MQ2烟雾传感器,MFRC522无线射频识别模块,SG90舵机,语音识别模块)
3.软件: 阿里云服务器,APP Inventor

整体电路连接图

开发和调试部分

由于在开发中,不可能一口吃个胖子,所以就需要先把各个模块调试好,然后在整合到一块去

Dht11和ESPduino编程调试

DHT11模块湿度的测量精度在5%以内,温度的测量精度在2℃内,输出的是数字信号。采用单总线协议

编写代码

#include "DHT.h"
 
 #define DHTPIN  4
 #define DHTTYPE DHT11
 
 DHT dht(DHTPIN, DHTTYPE);
 void setup() {
  Serial.begin(9600);
 Serial.println("DHT11 test");
  dht.begin();
}

void loop() {
 float h = dht.readHumidity();//读湿度
  float t = dht.readTemperature();//读温度(摄氏度)

  Serial.print("Humidity:");
  Serial.print(h);
Serial.print("% Temperature:");
  Serial.print(t);
 Serial.println("℃");
  delay(2000);
}

调试和注意事项

1.可能会有数读数异常,检查一下是否是杜邦线没插好松了
2.保证供电稳定,否则也会有读数异常情况产生

烟雾传感器和Espduino调试

1.	MQ-2传感器对可燃气、烟雾等气体灵敏度高,基于MQ-2的烟雾传感器模块通过电路设计,提供了两种输出方式:
		数字量输出:通过板载电位器设定浓度阈值,当检测到环境气体浓度超过阈值时,通过数字引脚DO输出低电平。	
		模拟量输出:浓度越高,AO引脚输出的电压值越高,通过ADC采集的模拟值越高。
		本系统采用模拟量输出的方式

电路连接图MQTT电路连接图

代码及调试部分

#include <Arduino.h>

#define Sensor_AO A0
unsigned int sensorValue = 0;
void setup()
{

  Serial.begin(9600);
}
void loop()
{
  sensorValue = analogRead(Sensor_AO);
  Serial.print("Sensor AD Value = ");
  Serial.println(sensorValue);
  delay(1000);
}
    !这是mqt采集到的数据上传到阿里云的图片](https://img-blog.csdnimg.cn/6901632af3e54c69a7b0358b737db459.png#pic_center)

舵机和Espduino部分

Servo basketball_myservo;  // 定义Servo对象来控制
Servo pingpang_myservo;  // 定义Servo对象来控制
int basketball_servopin = 2;    //控制租借篮球
int pingpang_servopin = 3; //控制租借足球

void setup() { 
  Serial.begin(9600);
   basketball_myservo.attach(basketball_servopin);//控制篮球的舵机
    pingpang_myservo.attach(pingpang_servopin);//控制乒乓球的舵机
    basketball_myservo.write(0); //初始化篮球舵机
    pingpang_myservo.write(0); //初始化乒乓球舵机
   Serial.println("welcome to use our stm");
  basketball_myservo.write(90); //初始化篮球舵机
    pingpang_myservo.write(90); //初始化乒乓球舵机  
}

RFID和Arduino代码调试部分

1. RFID模块连接引脚比较多,Espduino引脚不够用了,那时手里刚好有一块Arduino板子,所以就采用Arduinol了
2. 安装RFID库(点击「项目」—「加载库」—「管理库」,查找选择「MFC522」最新版本进行安装。)
3. RC522模块的3.3V、GND分别对应连接开发板的3.3V、GND,模块的MOSI、MISO、SCK分别连接开发板的SPI接口11、12、13,模块的SDA、RST分别连接开发板数字管脚10、9。
4. 编写代码,初始化对应引脚,刷RFID卡,将卡号以16进制的方式保存下来,例如byte cardID[4] = {0xC3, 0x9C, 0xD2, 0xA9};//存储有权限的卡ID,当再次刷卡时,RFID模块就将信息读取出来通过串口方法发送给主机
5. 关键示例代码:
 byte cardID[4] = {0xC3, 0x9C, 0xD2, 0xA9};//身份信息
 /*保存读取的卡号*/
	   //搜索新卡
  if ( ! rfid.PICC_IsNewCardPresent())
    return;
  // 验证NUID是否可读
  if ( ! rfid.PICC_ReadCardSerial())
    return;
  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
  // 检查是否MIFARE卡类型
  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
      piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
      piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
      Serial.println("不支持读取此卡类型");
      return;
  }
  // 保存读取到的UID
  for (byte i = 0; i < 4; i++) {
    nuidPICC[i] = rfid.uid.uidByte[i];
  }
   Serial.print("十六进制UID:");
  printHex(rfid.uid.uidByte, rfid.uid.size);
  Serial.println();

经测试各个模块都能正常使用,所以就可以进行后面的阿里云物联网平台的产品创建,测试数据是否可以发送给平台,云平台下发的指令,是否有用,这样的话,后面编写APP部分,就算有问题只用处理APP和云平台的部分即可了.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于物联网的智能体育器材管理系统 的相关文章

  • element级联懒加载多选不能回显问题

    1 定位原因 懒加载的级联下拉框无法回显是因为 只绑定了model的值 没有options的数据支撑的话 获取不到节点的内容导致 2 方案 拿到选中的项的时候 用这些值去递归循环获取相应的节点的一些属性 赋值给options 然后注意最后一
  • yolo v3 fatal : Memory allocation failure

    torch版的 yolov3报错 fatal Memory allocation failure parser add argument n cpu type int default 8 help number of cpu threads
  • 蚂蚁笔记私有部署

    说明 其实官方的教程中已经写得很清楚了 我写这个主要是为了记录一下我自己当时安装的过程 方便后续查询 官方文档请查阅 https github com leanote leanote wiki 环境要求 CentOS6 5 Nginx Mo
  • (原理及配置)nginx配置负载均衡

    背景介绍 早期的网站流量和业务功能都比较简单 单台服务器就可以满足基本需求 但是随着互联网的发展 业务流量越来越大并且业务逻辑也越来越复杂 单台服务器的性能及单点故障问题就凸显出来了 因此需要多台服务器组成应用集群 进行性能的水平扩展以及避
  • 一台电脑双 GitHub 账户配置,同时两个 SSH 密钥

    前言 本人搞了两个 GitHub 账号 一个用来正常的和别人合作项目 另一个用来自己写一些代码 希望能做到两个本地账户和远程账号都完全隔离 没有联系 也不会被混淆使用 但是这样就会有一个问题 设置本地用户 user email 时候 如果两

随机推荐