资讯详情

STM32+多通道模拟输入+MQTT+RTC+OLED显示屏+RFID门禁

先准备几件事,

1,STM32F103ZET6的板子

2,温湿度模块

3,OLED显示屏

4,RFID门禁卡

5,esp8266wifi模块

然后百度下载keil5

然后安装STM32F1芯片库,在下面链接,安装

链接:https://pan.baidu.com/s/1peDh4iBAeh2qj7DvadlDbA?pwd=lkjh 提取码:lkjh

再提供一个MDK注册机

链接:https://pan.baidu.com/s/1OtszF1flLWZKuGeEs3S3Lg?pwd=lkjh 提取码:lkjh

下载工程

链接:https://pan.baidu.com/s/1he40FEjCn6BhOCT4Jbl3xQ?pwd=lkjh 提取码:lkjh

现在你可以来编程了。首先,打开我提供的项目进入maim.h库修改信息(前提是有百度云、阿里云、腾讯云账号,创建主题)。如果不注册,可以看看我前面(手机APP MQTT)这篇文章是写的,

然后你就会看到

#ifndef _MAIM_H_ #define _MAIM_H_  下面是设备ID和密码(只需要私人服务器),在onenet平台上面的MQTT连接没用,只是用它的MQTT协议包 ////自己在杰叔叔服务器上创建的设备 //#define PROID  "f6d61178afa1003ac5d41dc9ae10f0c6" //设备ID //#define AUTH_INFO "123123"       //设备密码 ////在腾讯云服务器上创建自己的设备 //#define PROID  "S2ME0J3F8Xtest2;12010126;35978;1656734400000"         //设备ID //#define AUTH_INFO "b9754b528f07a8b7d3ee37f24ac19c3e777d2eb1d7ce229a8526b25ddcc201e9;hmacsha256" //设备密码 ////在百度云服务器上创建自己的设备 #define PROID  "thingidp@abqzs|MT_A|0|MD5"         //设备ID #define AUTH_INFO "5a2d5186afb852c3f55e287592" //设备密码  #define DEVID  "tes2t2" //基本不用,随便填 #define ESP8266_WIFI_INFO  "AT CWJAP=\"1111\",\"6980061111\"\r\n"  //如果连接协议是ws或wss需要在服务器地址后面添加/mqtt,如果不是前两个协议的地址,直接连接服务器地址 //#define ESP8266_ONENET_INFO  "AT CIPSTART=\"TCP\",\"t.yoyolife.fun\",1883\r\n"       //// //#define ESP8266_ONENET_INFO  "AT CIPSTART=\"TCP\",\"amapfkk.iot.gz.baidubce.com\",1883\r\n"      //EMQX服务器地址 //#define ESP8266_ONENET_INFO  "AT CIPSTART=\"TCP\",\"broker.emqx.io\",1883\r\n"       //EMQX服务器地址 //#define ESP8266_ONENET_INFO  "AT CIPSTART=\"TCP\",\"S2ME0J3F8X.iotcloud.tencentdevices.com\",1883\r\n" /////腾讯云服务器地址 #define ESP8266_ONENET_INFO  "AT CIPSTART=\"TCP\",\"abfeqzs.iot.gz.bauiduce.com\",1883\r\n"    /////百度云服务器地址 #define CMD_TOPIC_PREFIX "LED"//主题  #endif

所有的MQTT这里修改信息

然后你可以配置自己的模拟输入

void ADC_Data(void) {   u16 adcx1,adcx2,adcx3,adcx4,adcx5;    adcx1=Get_Adc_Average(0,25); //  LCD_ShowxNum(156,50,adcx1,4,16,0);//显示ADC的值   ADC_ConvertedValueLocal1 =(float)adcx1*(3.3/4095); //  LCD_ShowxNum(156,70,(u16)ADC_ConvertedValueLocal1,1,16,0);//显示电压值 //  LCD_ShowxNum(172,70,(u16)(ADC_ConvertedValueLocal1*1000)00 ,3,16,0X80);      adcx2=Get_Adc_Average(10,25);   ADC_ConvertedValueLocal2 =(float)6.0*adcx2*(3.3/4095);    adcx3=Get_Adc_Average(11,25);   ADC_ConvertedValueLocal3 =(float)adcx3*(3.3/4095);    adcx4=Get_Adc_Average(12,25);   ADC_ConvertedValueLocal4 =(float)adcx4*(3.3/4095);     adcx5=Get_Adc_Average(1,25);   ADC_ConvertedValueLocal5 =(float)adcx5*(3.3/4095);     printf("ADC0=%f\r\n",ADC_ConvertedValueLocal1);   printf("ADC1=%f\r\n",ADC_ConvertedValueLocal二、//不准确   printf("ADC2=%f\r\n",ADC_ConvertedValueLocal3);   printf("ADC3=%f\r\n",ADC_ConvertedValueLocal4);   printf("ADC4=%f\r\n\r\n",ADC_ConvertedValueLocal5); }

这里的通道2不太准确,可以避免使用其他的,甚至可以配置更多,当然,你也可以自己修复他;

下面就是RTC在配置方面,我设置了一个可以恢复初始化的变量。一般来说,如果我们把代码烧进去,他总是会有技术,所以为了方便修改,我们可以修改这两个地方来修改时间,

xgbz这是一个修改标志(表示需要更新时间)

这可以读取门禁卡的卡号;

接下来,你可以用这个模板做一些你喜欢的作品。我相信这会对一些人有所帮助,

有问题可以联系我;

如有不足,请批评指正,关注;

标签: 二极管ppm3fd201e0

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台