当前位置: 首页 > news >正文

网站建设合同验收标准中国国际室内设计师网

网站建设合同验收标准,中国国际室内设计师网,学广告设计要学什么软件,做企业网站需要购什么一、前言 本文介绍基于单片机设计的家用自来水水质监测装置。利用STM32F103ZET6作为主控芯片#xff0c;结合水质传感器和ADC模块#xff0c;实现对自来水水质的检测和监测功能。通过0.96寸OLED显示屏#xff0c;将采集到的水质数据以直观的方式展示给用户。 随着人们对健…一、前言 本文介绍基于单片机设计的家用自来水水质监测装置。利用STM32F103ZET6作为主控芯片结合水质传感器和ADC模块实现对自来水水质的检测和监测功能。通过0.96寸OLED显示屏将采集到的水质数据以直观的方式展示给用户。 随着人们对健康意识的提高和环境保护的重视水质安全已经成为人们生活中一个重要的议题。自来水作为我们日常生活中最主要的饮用水来源之一其水质的安全与否直接关系到我们的健康。 本设计采用了先进的STM32F103ZET6主控芯片具备强大的处理能力和丰富的外设接口。通过水质传感器可以实时采集与水质相关的模拟信号。然后通过ADC模块将模拟数据转换为数字信号再经过算法处理得到相应的水质参数。最后将结果通过0.96寸OLED显示屏进行展示用户可以清晰地了解自来水的水质状况。 该装置特点易于携带、操作简单、实时性好、精度高。用户只需将传感器浸入自来水中即可获取到水质参数并通过显示屏直观地了解水质状况为家庭提供了一个简单方便的水质监测解决方案。 二、硬件选型 【1】主控芯片STM32F103ZET6这是一款基于ARM Cortex-M3内核的高性能微控制器。具有丰富的外设接口和较大的存储容量适合用于处理水质传感器的数据采集和处理。 【2】水质传感器自来水水质监测的传感器。 【3】显示屏选择0.96寸OLED显示屏可以在小尺寸的装置上显示采集到的水质数据。OLED显示屏具有高对比度、低功耗和快速刷新的特点适合嵌入式应用。 三、常见的水质传感器 以下是一些常见的水质传感器类型可用于家用自来水水质监测装置 【1】pH传感器用于测量水的酸碱度即pH值。pH传感器通常基于玻璃电极原理可以提供准确的pH值。 【2】溶解氧传感器用于测量水中的溶解氧含量。溶解氧传感器可以采用膜式传感器或电极式传感器根据测量原理的不同提供溶解氧浓度的准确值。 【3】浊度传感器用于测量水中的悬浮颗粒物的浓度或水的浊度。浊度传感器可以采用光散射原理或光吸收原理进行测量。 【4】电导率传感器用于测量水中的电导率即水的导电性。电导率传感器可以提供水中的总溶解固体TDS值或盐度值。 四、家用自来水的水质标准 以下是常见水质指标和标准参考 【1】pH值pH值表示水的酸碱度一般应在6.5-8.5之间。 【2】浑浊度浑浊度表示水中悬浮颗粒物的浓度常用浊度单位为NTU涡轮比色法浊度单位。根据国际标准家用自来水的浑浊度应小于1 NTU。 【4】溶解氧溶解氧表示水中溶解的氧气含量通常以毫克/升mg/L为单位。对于家用自来水溶解氧的标准范围可以在5-8 mg/L之间。 【5】铁和锰铁和锰是常见的金属元素高浓度的铁和锰会给水带来颜色和异味。根据标准家用自来水中的铁含量应小于0.3 mg/L锰含量应小于0.1 mg/L。 【6】氟化物氟化物是一种有益的微量元素但高浓度的氟化物对人体有害。一般而言家用自来水中的氟化物含量应小于1.5 mg/L。 【7】各种有害物质家用自来水应符合国家或地区的相关法规和标准以确保其不含有害物质如重金属、有机污染物、农药残留等。 五、硬件代码 5.1 采集数据显示 #include stm32f10x.h #include oled.h// 定义ADC采集通道和引脚 #define ADC_CHANNEL 0 // 假设使用ADC1的通道0 #define ADC_PIN GPIO_Pin_0 #define ADC_PORT GPIOA// 定义OLED屏幕相关参数 #define OLED_WIDTH 128 #define OLED_HEIGHT 64// 全局变量 uint16_t adc_value 0; // ADC采集到的数值// 函数声明 void ADC_Configuration(void); void OLED_Init(void);int main(void) {// 初始化ADC和OLEDADC_Configuration();OLED_Init();while (1){// 启动ADC转换ADC_SoftwareStartConvCmd(ADC1, ENABLE);// 等待ADC转换完成while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) RESET);// 读取ADC转换结果adc_value ADC_GetConversionValue(ADC1);// 在OLED上显示ADC采集的数值char str[10];sprintf(str, %4d, adc_value);OLED_ShowString(0, 0, str); // 在坐标(0, 0)位置显示字符串// 延时一段时间for (uint32_t i 0; i 100000; i);} }// ADC配置函数 void ADC_Configuration(void) {ADC_InitTypeDef ADC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;// 使能ADC1和GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA, ENABLE);// 配置ADC引脚为模拟输入GPIO_InitStructure.GPIO_Pin ADC_PIN;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AIN;GPIO_Init(ADC_PORT, GPIO_InitStructure);// ADC配置ADC_DeInit(ADC1);ADC_InitStructure.ADC_Mode ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode DISABLE;ADC_InitStructure.ADC_ContinuousConvMode DISABLE;ADC_InitStructure.ADC_ExternalTrigConv ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel 1;ADC_Init(ADC1, ADC_InitStructure);// 配置ADC通道ADC_RegularChannelConfig(ADC1, ADC_CHANNEL, 1, ADC_SampleTime_13Cycles5);// 使能ADCADC_Cmd(ADC1, ENABLE);// 开启ADC校准ADC_ResetCalibration(ADC1);while (ADC_GetResetCalibrationStatus(ADC1));ADC_StartCalibration(ADC1);while (ADC_GetCalibrationStatus(ADC1));// 设置ADC转换序列ADC_RegularChannelConfig(ADC1, ADC_CHANNEL, 1, ADC_SampleTime_13Cycles5); }// OLED屏幕初始化函数 void OLED_Init(void) {// 初始化OLED屏幕OLED_Init();OLED_Clear(); } 5.2 oled.h #ifndef __OLED_H__ #define __OLED_H__#include stm32f10x.h#define OLED_WIDTH 128 #define OLED_HEIGHT 64void OLED_Init(void); void OLED_Clear(void); void OLED_WriteByte(uint8_t data, uint8_t cmd); void OLED_SetPos(uint8_t x, uint8_t y); void OLED_ShowChar(uint8_t x, uint8_t y, char ch); void OLED_ShowString(uint8_t x, uint8_t y, const char* str);#endif /* __OLED_H__ */ 5.3 oled.c #include OLED.hconst uint8_t OLED_GRAM[128][8] {0}; // OLED显示缓存void OLED_Init(void) {// ... 初始化OLED屏幕的相关操作 ... }void OLED_Clear(void) {// 清空OLED显示缓存全黑memset((void*)OLED_GRAM, 0x00, sizeof(OLED_GRAM));// 更新OLED屏幕显示OLED_SetPos(0, 0);for (uint8_t i 0; i 8; i){OLED_WriteByte(0xb0 i, 0x00); // 设置页地址0-7OLED_WriteByte(0x00, 0x00); // 设置列地址低4位0-3OLED_WriteByte(0x10, 0x00); // 设置列地址高4位4-7for (uint8_t j 0; j 128; j){OLED_WriteByte(0x00, 0x40); // 写入数据全黑}} }void OLED_WriteByte(uint8_t data, uint8_t cmd) {// ... 将数据写入OLED屏幕的具体操作 ... }void OLED_SetPos(uint8_t x, uint8_t y) {// ... 设置OLED屏幕显示位置的具体操作 ... }void OLED_ShowChar(uint8_t x, uint8_t y, char ch) {uint8_t c ch - ; // 获取字库中的字模if (x OLED_WIDTH || y OLED_HEIGHT) return;for (uint8_t i 0; i 6; i){uint8_t line cFont6x8[c][i];for (uint8_t j 0; j 8; j){if (line 0x01){OLED_GRAM[y j][x i] 1;}else{OLED_GRAM[y j][x i] 0;}line 1;}}// 更新OLED屏幕显示OLED_SetPos(x, y / 8);for (uint8_t i 0; i 8; i){OLED_WriteByte(0xb0 (y / 8) i, 0x00); // 设置页地址OLED_WriteByte((x 0x0f), 0x00); // 设置列地址低4位OLED_WriteByte((x 4) | 0x10, 0x00); // 设置列地址高4位for (uint8_t j 0; j 128; j){OLED_WriteByte(OLED_GRAM[y i][j], 0x40); // 写入数据}} }void OLED_ShowString(uint8_t x, uint8_t y, const char* str) {while (*str ! \0){OLED_ShowChar(x, y, *str);x 6;if (x OLED_WIDTH){x 0;y 8;}} }
http://www.hkea.cn/news/14512496/

相关文章:

  • 什么手机可做网站wordpress 赞赏
  • 效果好的网站建企业官网属于什么网站
  • 电子商务网站建设定位设想快速生成网站程序
  • 网站建设实训意见sem和seo都包括什么
  • 网站实名制查询网站开发报告
  • 官方网站找做化妆品套盒子佛山网站建设哪家公司好
  • 电子网站建设实验报告在线爬取网页源码
  • 有品质的网站推广公司怎么查域名有没有备案
  • 营销公司网站模板下载短链接在线生成免费
  • 石家庄网站seo制作网站需要哪些工作
  • 手机做网站的软件无锡网站定制公司
  • 网站导航栏下拉菜单东莞百度推广教程
  • 做物流的可以在那些网站找客户端百度外推排名
  • 网站建设报价东莞广州网站制作公司多少钱
  • 网站开发属于软件开发吗青海西宁网站建设
  • 凡科建站怎么收费开网店需要自己做网站吗
  • 平台网站开发企业门户网站模板
  • 上饶公司做网站室内设计效果图及文字介绍
  • 如何做热词网站友情链接的网站
  • 网站系统管理员模块淘宝网网页版登录电脑版官网
  • 郴州建设工程信息网站wordpress首页显示一张图片
  • 一半招聘网站海报格式都怎么做怎么样通过做网站赚钱
  • 网站建设算研发费用吗至少保存十个以上域名网站
  • 开一家网络公司做网站前景如何wordpress主题如何购买
  • 江门网站seo关键词排名优化上一篇 下一篇 wordpress
  • 建立网站的平台网站建设结论
  • nodejs 做网站js交件公司网站模板源码
  • 温州小学网站建设中国世界排名前200的大学名单
  • 语言文字建设网站wordpress 结构分析
  • 域名解析映射到网站空间怎么做163免费企业邮箱