基于STM32的温室大棚环境检测及自动浇灌系统设计

需要全部资料请私信我!

基于STM32的温室大棚环境检测及自动浇灌系统设计

    • 一、绪论
      • 1.1 研究背景及意义
      • 1.2 研究内容
      • 1.3 功能设计
    • 二、系统方案设计
      • 2.1 总体方案设计
    • 三、系统硬件设计
      • 3.1 STM32单片机最小系统
      • 3.2 环境温度检测电路设计
      • 3.3 土壤湿度检测电路设计
      • 3.4 光照强度检测电路设计
      • 3.5 水泵控制电路设计
      • 3.6 风扇控制电路设计
      • 3.7 灯光控制电路设计
    • 四、系统软件设计
      • 4.1 主程序设计
    • 五、系统调试
      • 5.1 系统硬件调试
      • 5.2 系统运行测试
    • 六、总结
    • 七、附录

一、绪论

1.1 研究背景及意义

在传统农业灌溉模式下,监测系统通常分为两种,一是通过人工检测获得,二则是通过有线检测系统获得,前者的人工成本高、劳动强度大,而效率却相对较低,后者则会面临有线传输时信号衰减、架设线路困难等问题。同时,传统的人工灌溉不仅浪费人力资源,而且无法精准把握土壤温湿度,一定程度上造成了灌溉不均匀与水资源的浪费。而智能灌溉系统的出现有效的解决了这一系列问题。

智能灌溉系统是将物联网技术与农业技术这两者相结合,其具有现代化的田间数据采集系统,对农田中的空气温度、土壤湿度、光照强度等环境参数做到工业级的精准捕获,更高效地管理农业流程,同时该系统具备一个自动的灌溉系统,该系统根据所收集的数据做出响应,大大提高了水资源的利用和农作物的产量和品质,实现了农业生产的智能化、网络化和精准化。为此,本文给出一种基于物联网的自动浇灌系统。

1.2 研究内容

随着物联网技术蓬勃发展,对传统的农业带来巨大的挑战和机遇,基于物联网的智能农业越受到关注。本课题针对智能农业自动浇灌问题,基于嵌入式处理器平台,利用传感器技术和物联网通信技术,设计一种基于物联网的自动浇灌系统。在设计中:
(1)运用电路、传感器、物联网通信等相关工程原理,对植物生长环境参数采集、处理和分析,结合经济、安全等非技术因素,给出系统设计解决方案;
(2)根据解决方案,实现环境参数的信号检测、水阀及光强控制、无线通信电路、嵌入式处理器最小系统以及人机交互接口电路等系统硬件设计;
(3)对数据处理、数据传输及信息显示等功能进行嵌入式代码化编程,实现系统软件设计和整体调试;

1.3 功能设计

本课题采用传感器技术和物联网技术,并结合嵌入式开发平台设计了一种自动浇灌系统。可以实现对农作物生长环境的实时监控,并通过收集光照、环境温度、土壤湿度等数据,结合设置好的适宜农作物生长的环境阈值,实现自动灌溉、补光、通风等功能,达到省工省水的目的,切实实现农业灌溉智能化,本课题具有很强的实用性及巨大的市场空间。
① 监测植物生长的土壤温湿度、光照强度、环境温度;
② 控制水阀、风扇、补光灯等设备工作;
③ 可用手机APP显示数据并控制设备。

二、系统方案设计

2.1 总体方案设计

本课题针对智能农业自动浇灌问题,基于嵌入式处理器平台,利用传感器技术和物联网通信技术,设计一种基于物联网的自动浇灌系统,系统总体方案框图如图:
在这里插入图片描述
浇灌系统由三个传感器模块、单片机最小系统、三个外部设备和蓝牙模块组成,其中单片机最小系统以STM32F103C8T6单片机为核心控制器,STM32单片机实现对各个外设模块总体控制,负责处理从传感器采集到的数据信息,从而对各类不同信息进行相关操作,控制各个外设实现相关的功能。
外设模块其中包含温度检测模块,用于检测当前环境的温度;土壤湿度检测模块,用于获取当前土壤湿度;供电电路,给整个主机部分供电;水泵继电器,若土壤湿度小于湿度阈值,水泵继电器闭合,若土壤湿度小于土壤温度阈值,水泵继电器打开;风扇模块,继电器控制步进电机控制风扇闭合;显示模块,显示检测到的环境温度、土壤湿度、光照强度和设置的阈值;蓝牙模块,将检测到的数据通过该模块发送给移动端,也可通过该模块在移动端设置阈值。

三、系统硬件设计

3.1 STM32单片机最小系统

本次浇灌系统设计中,STM32单片机最小系统由单片机芯片STM32F103C8T6、晶振电路、复位电路、电源电路等部分组成。其原理图设计如图3.1所示。
单片机芯片选用STM32F103C8T6,该芯片是一款基于ARM Cortex-M内核STM32系列的32位的微控制器,其程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。计算性能方面卓越,出错率小、具有灵活的中断管理功能,价格适中。STM32F103C8T6广泛应用于电子设备中,具有复杂控制和算法的处理器。它的主要功能包括模拟数字转换(ADC)、定时器和中断控制器(TIM)、串行通信接口(USART)等功能。此外,它还拥有许多具有创新性和高性能的特性,如高速I/O端口、嵌入式硬件分支预测等,是一款成本低、功能强大的单片机芯片。
在这里插入图片描述

3.2 环境温度检测电路设计

环境温度传感器DS18B20模块测量农田周围环境的温度,模块具有3个引脚,其中两个分别接VCC和GND,最后一个引脚与单片机I/O口相连,传输数据。其原理图设计如图:
在这里插入图片描述
DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如不锈钢套管封装、TO-92封装和小轴DIP封装等,本次系统设计采用小轴DIP封装,此封装可适用于露天环境中温度较高的情况,契合农田环境的温度测量应用。本设计中封装后的DS18B20可用于检测农田环境的温度,工作精度较高,耐磨耐碰,体积小,使用方便,适用于各种狭小空间设备数字测温和控制领域。

3.3 土壤湿度检测电路设计

土壤湿度传感器YL-69模块检测盆栽的土壤湿度。YL-69是一个简单的土壤湿度传感器,是一种电容式传感器,主要使用的是湿敏电容。当环境的湿度发生改变时,会使得湿敏电容存在的环境中的介质发生改变,导致湿敏电容中的电容数值产生变化,电容的数值正比于湿度值。由于湿敏电容的灵敏度高、响应速度快、滞后量小,此外微小的体积、极低的功耗,使得湿敏电容很容易小型化和集成化。YL-69 采用CMOS工艺,可以确保其低功耗,同时还具有很高的可靠性和稳定性。传感器内部含有一个电容性聚合体湿度敏感元件和一个用能隙材料做成的温度传感器,在同一芯片上,与A/D转换器及串行接口电路实现连接。其原理图设计如图
在这里插入图片描述

3.4 光照强度检测电路设计

光照强度传感器模块检测农田中农作物所受到的光照强度。该模块选用光敏电阻5528,其原理图设计如图:
在这里插入图片描述
5528光敏电阻是一种基于半导体材料的光敏元件,其工作原理是通过外界光照强度对器件内部半导体材料的电荷载流子密度进行影响,从而改变器件的电阻值。当光照强度增加时,载流子密度增加,电阻值降低;反之,当光照强度减小时,载流子密度减小,电阻值升高。即通过不同阻值的电流来检测光照强度,测量光照强度范围为0-65535lx。

3.5 水泵控制电路设计

本系统的浇灌部分由一个JDQ-5继电器、小型抽水泵与驱动电路组成。在这个电路中,继电器JDQ-5用于控制外部高功率电器或电磁设备。将JDQ-5的控制电压与单片机的工作电压保持一致,即将JDQ-5的控制电压引脚与单片机的5V电源相连。当单片机输出的IO口电流较小时,无法直接驱动继电器,需要使用三极管等驱动器件进行缓冲放大,此时三极管型号选用S8050三极管,其是一款小功率NPN型硅管,集电极-基极电压最大可为40V,集电极电流为0.5A。当GPIO输出高电平时,NPN三极管导通,继电器线圈得到5V的供电,继电器吸合,触点闭合;当GPIO输出低电平时,NPN三极管截止,继电器线圈断电,继电器释放,触点断开。其原理图设计如图3.5所示。
在这里插入图片描述

3.6 风扇控制电路设计

本系统风扇模块部分由JDQ-5继电器、风扇和驱动电路组成,步进电机带动风扇旋转,其工作原理与上述水泵控制电路相似,原理图设计如图
在这里插入图片描述

3.7 灯光控制电路设计

本系统灯光模块部分由JDQ-5继电器、补光灯和驱动电路组成,继电器控制农田环境是否需要补光,其工作原理与上述水泵控制电路相似,原理图设计如图
在这里插入图片描述

四、系统软件设计

自动浇灌系统软件设计通过单片机核心控制,将采集到的环境温度、土壤湿度、光照强度实时显示在LCD1602液晶屏上,并将农田环境中的各项参数设定正常范围值,单片机核心控制器对数据进行分析处理后,若环境参数超出设定范围,则控制各模块运行;同时将检测到的数据通过无线通信模块传送到手机APP上,使手机也可以实时显示农田环境的数据,同时也可通过手机APP进行远程控制。

4.1 主程序设计

本次设计的自动浇灌系统将实现以下功能:采集农田生长环境中的温度、土壤湿度、光照强度,将采集到的数据显示在屏幕上,并通过无线通信模块将数据传输到手机APP上。若环境温度高于所设置的阈值,则打开风扇制冷,降低环境温度;若土壤湿度低于阈值,则打开水泵模块,抽水增加土壤湿度,使农作物处于适宜的土壤环境中;若光照强度低于阈值,则打开补光灯对环境进行补光。系统主程序设计流程图如图
在这里插入图片描述

五、系统调试

5.1 系统硬件调试

通过对浇灌系统的硬件进行调试,来检验系统的硬件电路能否正确地工作,具体包括以下五个部分:
(1)检查电路:组装好的电路要在通电之前仔细检查电路连线是否有错误,对照原理图按一定的顺序逐级检查。特别要注意电源与地是否有短路问题,集成电路和晶体管的引脚是否接错,轻轻拨动元器件观察其是否焊接牢固,以及能否实现期望的性能。确认后可以进行下一步骤。
(2)通电观察:上电前一定要调试好所需要的电源电压值,并确定电路板电源端没有短路现象后给电路通电,上电后先观察是否有异常现象,如冒烟、放电的声光、元器件发烫、异常气味等,如果有以上情况要立即切断电源,待排除故障后重新接通电源,随后测量每个集成块的电源引脚电压是否正常,以保证集成电路是否已通电工作。
在这里插入图片描述
(3)静态调试:不加入输入信号的情况下测量各级直流工作电压和电流是否正常。一般对晶体管和集成电路进行静态工作点调试。
(4)动态调试:加入输入信号观察电路输出信号是否符合要求,即各个传感器模块是否能正常工作。
(5)整体指标测试:对本次课题设计要求的计数指标进行测试并对测试数据进行分析,最后得出测试结论,以确定电路的技术指标是否符合设计要求。

5.2 系统运行测试

系统运行测试的目的在于处理整个系统在实际操作中发生的一些问题,如逻辑上的差错,以及对最后的结果与所期望的结果的一致性进行判定。在完成了硬件和软件的测试之后,就可以将该程序放入 MCU 进行调试。程序通电后,每个传感器模块开始正常工作,无线传输模块、LCD1602显示模块、风扇模块以及补光灯模块的工作现象如图5.7,5.8,5.9,5.10所示。
无线传输模块:单片机将数据通过蓝牙模块传输到手机APP上,此时手机APP可以实时监测农田的环境参数(光照强度5%,环境温度25℃,土壤湿度57%),且手机APP所显示的数据与LCD1602液晶显示屏中的数据一致。由下图APP界面可见,可通过手机APP设置农田环境参数的初始阈值,并可以控制或切换外部设备的工作状态,实现远程操控。
在这里插入图片描述
显示模块:单片机将传感器采集到的农田环境数据进行分析和处理后显示在LCD1602液晶屏上,实现农田环境参数的实时显示。
在这里插入图片描述
风扇模块:单片机将温度传感器DS18B20采集到的数据经过分析和处理后与提前设定的阈值相比,下图显示的是传感器捕获到的环境温度高于设定的阈值,此时风扇打开进入工作状态,当环境温度下降到适宜农作物生长的阈值时,风扇自动关闭。
在这里插入图片描述
补光灯模块:单片机将光敏电阻5528采集到的数据经过分析和处理后与提前设定的阈值相比,下图显示的是通过光敏电阻捕获到的光照强度低于设定的阈值,此时补光灯打开进入工作状态,当光照强度达到阈值时,补光灯会自动关闭。
在这里插入图片描述

六、总结

本次自动浇灌系统通过传感器对农作物生长环境中的环境温度、土壤湿度、光照强度等信息进行收集,通过单片机核心控制器对采集到的数据进行分析和处理,实现对农作物生长环境的实时监测,并判断是否需要开启控制模块来将农田环境调整到农作物生长最适宜的环境条件。最后,蓝牙HC-06模块将传感器采集到的环境参数发送到手机APP上,在手机APP上实时显示数据,也可以通过手机APP实现对各控制模块的远程操控。
本次设计的自动浇灌系统虽然已普遍实现了所需的功能,但仍在较多方面存在不足,例如极寒露天环境时无法使农田环境升温来保证农作物处在适宜的生长条件下,且系统捕获的农田环境参数会存在误差,进而影响浇灌效果。另外浇灌系统与移动端的连接不是非常稳定,可能会导致系统故障或停机。针对以上问题,我会在之后的时间里挑选合适的加热设备投入应用,对比其他传感器选取更为精准的来替换,保证数据的准确性。并精进自己的无线传输技术,实现浇灌系统与移动端的稳定连接。

七、附录

PCB设计:
在这里插入图片描述
部分代码:

#include "sys.h"
#include "adc.h"
#include "delay.h"
#include "lcd1602.h"
#include "ds18b20.h"
#include "timer.h"
#include "gpio.h"
#include "usart1.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>#define STM32_RX1_BUF       Usart1RecBuf 
#define STM32_Rx1Counter    RxCounter
#define STM32_RX1BUFF_SIZE  USART1_RXBUFF_SIZEunsigned int  light=0;
unsigned char temperature=0;
unsigned char setTempValue=35;        //温度设置值
unsigned int  setSoilMoisture=10;
unsigned char setLightValue=20;       //光照设置值
unsigned int  soilMoisture;           //土壤湿度bool usart_send_flag = 0;
bool mode = 0;               //0是自动模式,1是手动模式
bool shuaxin  = 0;
bool shanshuo = 0;
bool sendFlag = 1;unsigned char setn=0;//记录设置键按下的次数void displayLight(void)//显示光照
{u16 test_adc=0;/获取光线值test_adc = Get_Adc_Average(ADC_Channel_8,10);//读取通道9的5次AD平均值light = test_adc*99/4096; //转换成0-99百分比light = light >= 99? 99: light; //最大只能到百分之99if(light<=setLightValue && shanshuo){LCD_Write_Char(3,1,' '); LCD_Write_Char(4,1,' '); }else{LCD_Write_Char(3,1,light/10+'0'); LCD_Write_Char(4,1,light%10+'0'); }
}void displaySoilMoisture(void)//显示土壤湿度
{soilMoisture =100- (Get_Adc_Average(ADC_Channel_9,10)*100/4096);if(soilMoisture > 99)soilMoisture = 99;        //最大取百分之99if(soilMoisture<=setSoilMoisture && shanshuo){LCD_Write_Char(9,0,' '); LCD_Write_Char(10,0,' ');}else{LCD_Write_Char(9,0,soilMoisture/10+'0'); LCD_Write_Char(10,0,soilMoisture%10+'0');}
}void displayTemperature(void)//显示温度
{temperature=ReadTemperature();if(temperature>=setTempValue && shanshuo){LCD_Write_Char(12,1,' '); LCD_Write_Char(13,1,' ');}else{LCD_Write_Char(12,1,temperature/10+'0'); LCD_Write_Char(13,1,temperature%10+'0');}
}void displaySetValue(void)
{if(setn == 1){LCD_Write_Char(7,1,setSoilMoisture/10+'0'); LCD_Write_Char(8,1,setSoilMoisture%10+'0');}if(setn == 2){LCD_Write_Char(7,1,setTempValue/10+'0'); LCD_Write_Char(8,1,setTempValue%10+'0');}if(setn == 3){LCD_Write_Char(7,1,setLightValue/10+'0'); LCD_Write_Char(8,1,setLightValue%10+'0');}
}void keyscan(void)
{if(KEY1 == 0) //模式切换按键{delay_ms(10); //消抖if(KEY1 == 0){while(KEY1 == 0); //等待按键松开BEEP=0;setn ++;if(setn == 1){LCD_Write_String(0,0,"set the Moisture");//显示字符串LCD_Write_String(0,1,"       00%      ");}if(setn == 2){LCD_Write_String(0,0,"  set the Temp  ");//显示字符串LCD_Write_String(0,1,"       00 C     ");LCD_Write_Char(9,1,0xdf);}if(setn == 3){LCD_Write_String(0,0,"  set the Light ");//显示字符串LCD_Write_String(0,1,"       00%      ");}if(setn == 4){LCD_Write_String(0,0,"  set the mode  ");//显示字符串LCD_Write_String(0,1,"       ZD       ");if(mode==0)LCD_Write_String(7,1,"ZD");else LCD_Write_String(7,1,"SD");}displaySetValue();if(setn >= 5){setn = 0;LCD_Write_String(0,0,"Moisture:  %    ");//显示字符串LCD_Write_String(0,1,"Gx:  % Temp:   C");LCD_Write_Char(14,1,0xdf);if(mode==0)LCD_Write_String(13,0,"ZD");else 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“三指针法“合并两个有序数组(力扣每日一练)

我的第一想法确实是&#xff1a;先合并数组&#xff0c;再排序&#xff0c;搞完。 哈哈哈&#xff0c;想那么多干嘛&#xff0c;目的达成了就好了。 力扣官方题解是双指针&#xff1a; 还有糕手&#xff1a; Python&#xff1a; def merge(nums1, m, nums2, n):# 两个指针分别…

Golang基础入门及Gin入门教程(2024完整版)

Golang是Google公司2009年11月正式对外公开的一门编程语言&#xff0c;它不仅拥有静态编译语言的安全和高性能&#xff0c;而 且又达到了动态语言开发速度和易维护性。有人形容Go语言&#xff1a;Go C Python , 说明Go语言既有C语言程序的运行速度&#xff0c;又能达到Python…

C# winform应用

C# winform应用 需求&#xff1a;导入Excel文件时需要执行其他操作&#xff0c;实现如果取消导入就不执行其他操作 C#代码实现 private bool DLimport0(string tablename, string datebasename, string buttonname){string xxx "";string Tag "";stri…

C++核心编程——类和对象(一)

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

美易官方:诡异一幕!美国通胀数据超预期上升降息预期却不降反升

美国通胀数据超预期上升&#xff0c;降息预期却不降反升&#xff0c;这一诡异一幕引发了市场对于美联储政策走向的猜测和担忧。在经济全球化的大背景下&#xff0c;美国作为全球最大的经济体&#xff0c;其货币政策对于全球经济具有重要影响。因此&#xff0c;这一诡异一幕不仅…

为什么选择CRM系统时,在线演示很重要?

想要知道一款CRM管理系统是否满足企业的需求&#xff0c;操作是否简单&#xff0c;运行是否流畅&#xff0c;最直观的方式就是远程演示。否则&#xff0c;光凭厂商的销售人员介绍一下产品&#xff0c;企业就盲目下单&#xff0c;最后发现功能不匹配&#xff0c;还要赔钱赔时间重…

销售团队如何实现业绩增长?CRM系统的线索管理功能有什么用?

随着“以客户为中心”观念的逐渐普及&#xff0c;销售团队的客户比过去更复杂&#xff0c;交易周期更久&#xff0c;竞争也更激烈。假如没有明确的销售计划&#xff0c;团队可能陷入混乱&#xff0c;最后导致客户&公司之间的负面结果。在这种情况下&#xff0c;人工智能驱动…

Open CV 图像处理基础:(一)Open CV 在windows环境初始化和 Java 动态库加载方式介绍

Open CV 在windows环境初始化和 Java 动态库加载方式介绍 目录 Open CV 在windows环境初始化和 Java 动态库加载方式介绍OpenCV安装opencv-4.4.0下载安装 加载opencv-4.4.0.jar包jar包引入mavn-init.cmdjar包装载到本地maven仓库pom.xml加载动态库 加载动态库opencv_java440.dl…

基于Python实现身份证信息识别

目录 前言身份证信息识别的背景与意义自动识别身份证的需求 实现环境与工具准备Python编程语言OpenCV图像处理库Tesseract OCR引擎 身份证信息识别算法原理图像预处理步骤(图像裁剪、灰度化 、二值化、去噪)信息提取与解析 Python代码实现通过OCR提取身份证号码代码解析身份证信…

AI分割迁移绘画-neural-style

&#x1f3e1; 个人主页&#xff1a;IT贫道-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;私聊博主加WX好友&#xff0c;获取更多资料哦~ &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. 二值化展示图像代码…

docker、docker-compose 离线安装、shell脚本一键安装、卸载

注&#xff1a;二进制包&#xff0c;与脚本在同级目录 docker 离线安装&#xff1a; 包下载&#xff1a;https://download.docker.com/linux/static/stable/x86_64/ docker_install.sh&#xff1a; #!/bin/bash# 指定 Docker 版本和文件名 DOCKER_VERSION"24.0.7" D…

电位器

一、电位器简介 电位器是一种可调的电子元件。它是由一个电阻体和一个转动或滑动系统组成。当电阻体的两个固定触电之间外加一个电压时&#xff0c;通过转动或滑动系统改变触点在电阻体上的位置&#xff0c;在动触点与固定触点之间便可得到一个与动触点位置成一定关系的电压。…

如何将Redis、Zookeeper、Nacos配置为Windows系统的一个服务

说明&#xff1a;当我们在Windows上开发时&#xff0c;不可避免的会用到一些中间件&#xff0c;如Redis、Zookeeper、Nacos等等&#xff0c;当在项目中使用到本地的这些服务器时&#xff0c;我们需要把本地的服务器启动&#xff0c;会开启下面这样的一个窗口。 Redis服务器&am…

uniapp中uview组件库丰富的CountTo 数字滚动使用方法

目录 #平台差异说明 #基本使用 #设置滚动相关参数 #是否显示小数位 #千分位分隔符 #滚动执行的时机 #API #Props #Methods #Event 该组件一般用于需要滚动数字到某一个值的场景&#xff0c;目标要求是一个递增的值。 注意 如果给组件的父元素设置text-align: cente…

C++力扣题目112,113--路径总和,路径总和II

112路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点 是…

以太网交换机——稳定安全,构筑数据之桥

交换机&#xff0c;起源于集线器和网桥等网络通信设备&#xff0c;它在性能和功能上有了很大的发展&#xff0c;因此逐渐成为搭建网络环境的常用的设备。 随着ChatGPT爆发&#xff0c;因为用户量激增而宕机事件频频发生&#xff0c;云计算应用催生超大规模算力需求&#xff0c;…

java通过okhttp方式实现https请求的工具类(绕过证书验证)

目录 一、引入依赖包二、okhttp方式实现的https请求工具类2.1、跳过证书配置类2.2、okhttp方式的 https工具类 三、测试类 一、引入依赖包 引入相关依赖包 <!--okhttp依赖包--> <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>…

Vue、uniApp、微信小程序、Html5等实现数缓存

此文章带你实现前端缓存&#xff0c;利用时间戳封装一个类似于Redis可以添加过期时间的缓存工具 不仅可以实现对缓存数据设置过期时间&#xff0c;还可以自定义是否需要对缓存数据进行加密处理 工具介绍说明 对缓存数据进行非对称加密处理 对必要数据进行缓存&#xff0c;并…

php通用后台开发框架源码

php通用后台开发框架源码 基于ThinkPHPBootstrap的快速后台开发框架。 基于Auth验证的权限管理系统&#xff0c;支持无限级父子级权限继承&#xff0c;父级的管理员可任意 增删改子级管理员及权限设置&#xff0c;支持单管理员多角色&#xff0c;支持管理子级数据或个人数据。 …

Linux学习记录——삼십구 数据链路层协议

文章目录 1、了解数据链路层2、认识以太网3、认识MAC地址4、以太网报文5、局域网通信原理1、基本原理2、数据碰撞3、交换机4、ARP协议5、RARP协议6、局域网中间人 6、DNS&#xff08;简单介绍&#xff09;7、ICMP协议1、报文2、traceroute命令 7、NAT技术1、基本过程2、NAPT3、…