【物联网毕设】 智能药箱(STM32+APP+GPS+MQTT)

目录

一 连线图

1 原理图

2 PCB效果

3 实物效果

4 APP效果

5 功能概括

(1)硬件端

(2)APP端

(3)云平台使用(阿里云)(需要可以找我获取)

(4)演示视频

二 底层代码使用方式

1 使用说明

2 下载程序

三 APP使用方式

1下载APP

四 程序架构及修改(通用)


前言

该系统融合了ESP8266-01s Wi-Fi模块、STM32微控制器、OLED显示屏等硬件,以及GPS、语音播报、红外测温等功能,通过APP端使用MQTT协议进行交互,实现实时监测用户健康状态、智能定时用药提醒,并支持紧急联系和GPS定位,用户可通过APP查看历史数据,确保用药的便捷性和安全性。


关注微信公众号--星之援工作室 发送关键字(项目清单)
可获取项目清单资料

➡️🫡🫡🫡🫡🫡🫡🫡🫡➡️


⚠️⚠️(本文章仅提供思路和实现方法,并不包含代码,需要代码的同学请自行联系博主)

⚠️⚠️(有疑问或需要定制或者技术支持等,也请自行联系博主)⚠️⚠️


一 连线图

1 原理图

2.   开发板本身自带一个LED ,这个LED作为我们查看网络连接状态和获取数据状态的说明

(1)首先需要打开我们的WIFI热点让设备进行联网操作,看到显示数据界面,即可进行下一步功能测试

(2)硬件每隔3秒会向APP传输一次数据

热点名字:NET密码:12345678,请使用2.4GHZ频率的无线网。

2 PCB效果

3 实物效果

4 APP效果

    

5 功能概括

(1)硬件端

  1. ESP8266-01s:使用wifi模块进行联网使用;
  2. 0.96寸OLED:用于显示的设备的状态,实现实时监测;
  3. STM32F103C8T6:用于所有程序的中控和模块数据通信;
  4. JR6001模块:语音播报提示
  5. GPS模块:使用经纬度定位所在位置
  6. 重量传感器:检测是否有物品
  7. 红外测温:使用红外测温进行人体体温监测
  8. 时钟模块:使用时钟模块进行时间计数和定时吃药功能
  9. 舵机:模块盒子开关,实现反馈给app用药时间
  10. 按键:控制盒子的开关;
  11. 锂电池:使用锂电池进行设备的续航和充电

(2)APP端

  1. 使用MQTT协议与设备进行信息交互;
  2. 可采集到底层设备数据并且展示到界面UI;
  3. APP添加一个紧急联系人,硬件按按键之后就可以直接呼叫联系人
  4. APP然后再添加一个GPS地图功能,硬件获取发到经纬度发送给APP进行定位
  5. 可以设置用药量和用药时间,下发给设备进行保存,起到定时吃药功能
  6. 可以查看历史数据,例如体温和用药时间

(3)云平台使用(阿里云)(需要可以找我获取)

只是链接各个设备使用,采用MQTT即时通讯;

(4)演示视频

通过百度网盘分享的文件:智能药箱(GPS).mp4

链接:https://pan.baidu.com/s/1oV5Wq91Cqf_yvXwmwYqTDQ?pwd=XZY0

提取码:XZY0

二 底层代码使用方式

1 使用说明

(1). 使用的时候设备会自动连接WIFI

热点名字:NET密码:12345678,请使用2.4GHZ频率的无线网。

(2). 按键一可以直接开启和关闭舵机

(多看视频,视频中有完整功能演示)

(多看视频,视频中有完整功能演示)

(多看视频,视频中有完整功能演示)

2 下载程序

  1. 先根据原理图进行连线,连接好以后在做后面的操作
  2. 打开手机热点 热点名字:NET密码:12345678
  3. 打开程序(硬件由工作室出的可以忽略下载程序这部分)

三 APP使用方式

1下载APP

(1)操作方式:

使用Android手机安装APK进行操控

安装Android studio导入项目使用模拟器

官网下载最新版本

https://developer.android.google.cn/studio?hl=zh-cn

安装包(工作室使用版本)链接:

https://pan.baidu.com/s/1DnRGWeJt7XBTmzqHj1KRSQ?pwd=xzy0

提取码:xzy0

安装教程

https://zhuanlan.zhihu.com/p/528196912

(2)使用说明

打开APP后设备会自动订阅MQTT主题,等待1-5秒APP会自动获取到设备上的数据,若5秒内没有获取到设备数据,则请检测设备是否在线,若在线,则请重新打开APP进行数据的获取

(多看视频,视频中有完整功能演示)

(多看视频,视频中有完整功能演示)

(多看视频,视频中有完整功能演示)

四 程序架构及修改(通用)

链接:

https://pan.baidu.com/s/1TZkvdEOp-ERgi-2A1o-KWw?pwd=XZY0

提取码:XZY0

APP参数修改

以下是基于STM32智能药箱中,DHT11药品环境监测模块的主要代码: ``` #include "dht11.h" #include "delay.h" #define DHT11_IO_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;} #define DHT11_IO_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;} u8 DHT11_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); DHT11_IO_OUT(); DHT11_DOUT_1; delay_ms(1000); return DHT11_Check(); } u8 DHT11_Check(void) { u8 retry=0; DHT11_IO_IN(); while (DHT11_DIN&&retry<100) { retry++; delay_us(1); } if(retry>=100)return 1; else retry=0; while (!DHT11_DIN&&retry<100) { retry++; delay_us(1); } if(retry>=100)return 1; return 0; } u8 DHT11_Read_Bit(void) { u8 retry=0; while(DHT11_DIN&&retry<100) { retry++; delay_us(1); } retry=0; while(!DHT11_DIN&&retry<100) { retry++; delay_us(1); } delay_us(40); if(DHT11_DIN)return 1; else return 0; } u8 DHT11_Read_Byte(void) { u8 i,dat; dat=0; for (i=0;i<8;i++) { dat<<=1; dat|=DHT11_Read_Bit(); } return dat; } u8 DHT11_Read_Data(u8 *temperature,u8 *humidity) { u8 buf[5]; u8 i; DHT11_DOUT_1; DHT11_Check(); buf[0]=DHT11_Read_Byte(); buf[1]=DHT11_Read_Byte(); buf[2]=DHT11_Read_Byte(); buf[3]=DHT11_Read_Byte(); buf[4]=DHT11_Read_Byte(); if(buf[0]+buf[1]+buf[2]+buf[3]==buf[4]) { *humidity=buf[0]; *temperature=buf[2]; return 0; } else return 1; } ``` 这段代码主要包括了DHT11模块的初始化、检测、读取等功能。其中,DHT11_Init()函数用于初始化DHT11模块;DHT11_Check()函数用于检测DHT11模块是否正常工作;DHT11_Read_Bit()函数和DHT11_Read_Byte()函数用于读取模块返回的数据;DHT11_Read_Data()函数用于读取温湿度数据,并将其传递给主程序进行处理。 需要注意的是,这段代码中使用了一些宏定义,如DHT11_IO_IN()、DHT11_IO_OUT()、DHT11_DOUT_1等,这些宏定义需要在其他文件中进行定义和声明。同时,这段代码中使用了stm32f10x.h库,需要在工程中添加该库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿柒学起来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值