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

科普互联网站建设做网站首页与分页什么样子

科普互联网站建设,做网站首页与分页什么样子,现在的官方网站怎么做的,推广软件赚钱一、项目概述 在现代农业中#xff0c;智能大棚能够通过环境监测、数据分析和自动控制等技术手段#xff0c;实现对作物生长环境的精细化管理。本项目旨在设计一个基于STM32单片机的智能大棚系统#xff0c;能够实时监测光照强度、空气温湿度及土壤湿度#xff0c;并根据设… 一、项目概述 在现代农业中智能大棚能够通过环境监测、数据分析和自动控制等技术手段实现对作物生长环境的精细化管理。本项目旨在设计一个基于STM32单片机的智能大棚系统能够实时监测光照强度、空气温湿度及土壤湿度并根据设定的阈值自动控制加热片、风扇、灯光和水泵以优化植物生长环境。系统将实时数据通过OLED屏幕展示并通过Wi-Fi模块将数据上传至手机APP方便用户随时监控和调整大棚环境。 技术栈关键词 单片机: STM32F103C8T6 传感器: 温湿度传感器: DHT22 土壤湿度传感器: YL-69 光照传感器: 光敏电阻 显示模块: OLED屏幕SSD1306 无线通信: ESP8266 开发环境: STM32CubeIDE 手机应用: Blynk或自定义移动端应用 二、系统架构 设计系统架构 系统整体架构由数据采集模块、控制模块、显示模块和通信模块组成。各模块通过STM32单片机进行数据传输与控制。 选择合适的单片机和通信协议 单片机: 选择STM32F103C8T6具备高性能和低功耗的特点适合于实时数据处理和控制。 传感器: DHT22: 提供高精度的温湿度数据。 YL-69: 测量土壤湿度适合农业应用。 光敏电阻: 监测光照强度以便于植物的光照需求。 无线通信: 使用ESP8266实现Wi-Fi通信支持数据上传至互联网。 显示模块: OLED屏幕用于实时监控和数据展示提高用户体验。 系统架构图 #mermaid-svg-yEJfAWNzzaAJtPsX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-yEJfAWNzzaAJtPsX .error-icon{fill:#552222;}#mermaid-svg-yEJfAWNzzaAJtPsX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-yEJfAWNzzaAJtPsX .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-yEJfAWNzzaAJtPsX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-yEJfAWNzzaAJtPsX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-yEJfAWNzzaAJtPsX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-yEJfAWNzzaAJtPsX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-yEJfAWNzzaAJtPsX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-yEJfAWNzzaAJtPsX .marker.cross{stroke:#333333;}#mermaid-svg-yEJfAWNzzaAJtPsX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-yEJfAWNzzaAJtPsX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-yEJfAWNzzaAJtPsX .cluster-label text{fill:#333;}#mermaid-svg-yEJfAWNzzaAJtPsX .cluster-label span{color:#333;}#mermaid-svg-yEJfAWNzzaAJtPsX .label text,#mermaid-svg-yEJfAWNzzaAJtPsX span{fill:#333;color:#333;}#mermaid-svg-yEJfAWNzzaAJtPsX .node rect,#mermaid-svg-yEJfAWNzzaAJtPsX .node circle,#mermaid-svg-yEJfAWNzzaAJtPsX .node ellipse,#mermaid-svg-yEJfAWNzzaAJtPsX .node polygon,#mermaid-svg-yEJfAWNzzaAJtPsX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-yEJfAWNzzaAJtPsX .node .label{text-align:center;}#mermaid-svg-yEJfAWNzzaAJtPsX .node.clickable{cursor:pointer;}#mermaid-svg-yEJfAWNzzaAJtPsX .arrowheadPath{fill:#333333;}#mermaid-svg-yEJfAWNzzaAJtPsX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-yEJfAWNzzaAJtPsX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-yEJfAWNzzaAJtPsX .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-yEJfAWNzzaAJtPsX .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-yEJfAWNzzaAJtPsX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-yEJfAWNzzaAJtPsX .cluster text{fill:#333;}#mermaid-svg-yEJfAWNzzaAJtPsX .cluster span{color:#333;}#mermaid-svg-yEJfAWNzzaAJtPsX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-yEJfAWNzzaAJtPsX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 读取 读取 读取 控制 控制 控制 控制 显示 上传数据 数据传输 STM32单片机 温湿度传感器 土壤湿度传感器 光照强度传感器 加热片 风扇 灯 水泵 OLED显示屏 ESP8266 手机APP 三、环境搭建和注意事项 硬件环境搭建 准备材料: STM32开发板如STM32F103C8T6 DHT22温湿度传感器 YL-69土壤湿度传感器 光敏电阻 ESP8266 Wi-Fi模块 OLED显示屏SSD1306 加热片、风扇、灯和水泵 连接方式: DHT22: 数据引脚连接至STM32的数字输入引脚VCC和GND分别连接至电源。 YL-69: 直接连接至STM32的模拟输入引脚。 光敏电阻: 通过分压电路连接至STM32的模拟输入引脚。 ESP8266: 通过UART接口连接至STM32。 OLED: 通过I2C接口连接至STM32。 软件环境搭建 IDE选择: 使用STM32CubeIDE进行代码编写和调试。 库文件: 导入所需的库文件包括DHT库、Adafruit SSD1306库和ESP8266库。 注意事项 确保传感器和模块的供电电压与STM32相匹配。 在代码中进行适当的错误处理以避免因传感器故障导致系统崩溃。 定期进行系统测试确保各传感器和控制模块的正常工作。 四、代码实现过程 在本部分我们将详细介绍基于STM32单片机的智能大棚系统的代码实现过程。整个系统的实现可以分为四个主要模块传感器数据读取、设备控制、OLED显示和Wi-Fi数据上传。我们会逐步介绍每个模块的设计和实现。 1. 系统架构回顾 在设计本项目时我们搭建了系统架构主要包括以下几个模块 传感器模块: 负责采集环境数据如温湿度、土壤湿度及光照强度。 控制模块: 根据传感器数据控制加热片、风扇、灯和水泵。 显示模块: 通过OLED屏幕展示当前环境参数。 通信模块: 利用ESP8266模块将数据上传至手机APP实现远程监控。 2. 读取传感器数据 我们使用DHT22传感器读取环境的温湿度数据YL-69传感器读取土壤湿度光敏电阻用于监测光照强度。 代码实现 以下是STM32的代码示例使用HAL库读取传感器数据并处理。 1. 初始化代码 在main.c中初始化各个模块 #include main.h #include dht.h #include ssd1306.h// 定义引脚 #define SOIL_MOISTURE_PIN GPIO_PIN_1 #define LIGHT_SENSOR_PIN GPIO_PIN_2 #define HEATER_PIN GPIO_PIN_3 #define FAN_PIN GPIO_PIN_4 #define LIGHT_PIN GPIO_PIN_5 #define PUMP_PIN GPIO_PIN_6// 设定阈值 float TEMP_THRESHOLD 20.0; // 温度阈值 float HUMIDITY_THRESHOLD 60.0; // 湿度阈值 int LIGHT_THRESHOLD 300; // 光照强度阈值 int SOIL_MOISTURE_THRESHOLD 300; // 土壤湿度阈值DHT_HandleTypeDef hDHT; // DHT传感器句柄void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_I2C1_Init(void); static void MX_DHT_Init(void);int main(void) {HAL_Init(); // 初始化HAL库SystemClock_Config(); // 配置系统时钟MX_GPIO_Init(); // 初始化GPIOMX_I2C1_Init(); // 初始化I2CMX_DHT_Init(); // 初始化DHT传感器SSD1306_Init(); // 初始化OLED显示屏while (1) {float humidity DHT_ReadHumidity(hDHT);float temperature DHT_ReadTemperature(hDHT);int soilMoisture HAL_ADC_GetValue(hadc1); // 读取土壤湿度int lightIntensity HAL_ADC_GetValue(hadc2); // 读取光照强度// 在OLED上显示数据SSD1306_Clear();SSD1306_SetCursor(0,0);SSD1306_WriteString(Humidity: , Font_11x18, White);SSD1306_WriteFloat(humidity, Font_11x18, White);SSD1306_WriteString(%, Font_11x18, White);SSD1306_SetCursor(0,20);SSD1306_WriteString(Temp: , Font_11x18, White);SSD1306_WriteFloat(temperature, Font_11x18, White);SSD1306_WriteString(C, Font_11x18, White);SSD1306_SetCursor(0,40);SSD1306_WriteString(Soil: , Font_11x18, White);SSD1306_WriteInt(soilMoisture, Font_11x18, White);SSD1306_SetCursor(0,60);SSD1306_WriteString(Light: , Font_11x18, White);SSD1306_WriteInt(lightIntensity, Font_11x18, White);SSD1306_UpdateScreen(); // 更新显示// 控制设备controlDevices(temperature, humidity, soilMoisture, lightIntensity);HAL_Delay(2000); // 每2秒更新一次} }2. 设备控制逻辑 在智能大棚系统中设备控制逻辑的实现至关重要。以下是具体实现的代码示例以及解析。 设备控制函数实现 void controlDevices(float temperature, float humidity, int soilMoisture, int lightIntensity) {// 控制加热片if (temperature TEMP_THRESHOLD) {HAL_GPIO_WritePin(GPIOA, HEATER_PIN, GPIO_PIN_SET); // 开启加热片} else {HAL_GPIO_WritePin(GPIOA, HEATER_PIN, GPIO_PIN_RESET); // 关闭加热片}// 控制风扇if (humidity HUMIDITY_THRESHOLD) {HAL_GPIO_WritePin(GPIOA, FAN_PIN, GPIO_PIN_SET); // 开启风扇} else {HAL_GPIO_WritePin(GPIOA, FAN_PIN, GPIO_PIN_RESET); // 关闭风扇}// 控制灯光if (lightIntensity LIGHT_THRESHOLD) {HAL_GPIO_WritePin(GPIOA, LIGHT_PIN, GPIO_PIN_SET); // 开启灯光} else {HAL_GPIO_WritePin(GPIOA, LIGHT_PIN, GPIO_PIN_RESET); // 关闭灯光}// 控制水泵if (soilMoisture SOIL_MOISTURE_THRESHOLD) {HAL_GPIO_WritePin(GPIOA, PUMP_PIN, GPIO_PIN_SET); // 开启水泵} else {HAL_GPIO_WritePin(GPIOA, PUMP_PIN, GPIO_PIN_RESET); // 关闭水泵} }代码解析 加热片控制: 当环境温度低于设定的阈值TEMP_THRESHOLD时系统会自动开启加热片以提供热量当温度高于设定值时系统会关闭加热片。 风扇控制: 如果环境湿度超过设定阈值HUMIDITY_THRESHOLD风扇会被开启以帮助降低湿度反之风扇会停止工作。 灯光控制: 通过检测光照强度lightIntensity如果光照强度低于设定值LIGHT_THRESHOLD则系统会开启灯光以确保植物获得足够的光照。 水泵控制: 当土壤湿度soilMoisture低于设定阈值SOIL_MOISTURE_THRESHOLD时水泵将被启动进行灌溉如果土壤湿度足够则水泵会关闭。 3. OLED显示模块 OLED显示模块用于实时展示当前环境参数这部分代码已经在之前的传感器数据读取部分中提到过。为了更清晰地展示数据我们将创建一个专门的显示函数。 OLED显示函数 void displayData(float humidity, float temperature, int soilMoisture, int lightIntensity) {SSD1306_Clear(); // 清空显示内容SSD1306_SetCursor(0, 0);SSD1306_WriteString(Humidity: , Font_11x18, White);SSD1306_WriteFloat(humidity, Font_11x18, White);SSD1306_WriteString(%, Font_11x18, White);SSD1306_SetCursor(0, 20);SSD1306_WriteString(Temp: , Font_11x18, White);SSD1306_WriteFloat(temperature, Font_11x18, White);SSD1306_WriteString(C, Font_11x18, White);SSD1306_SetCursor(0, 40);SSD1306_WriteString(Soil: , Font_11x18, White);SSD1306_WriteInt(soilMoisture, Font_11x18, White);SSD1306_SetCursor(0, 60);SSD1306_WriteString(Light: , Font_11x18, White);SSD1306_WriteInt(lightIntensity, Font_11x18, White);SSD1306_UpdateScreen(); // 更新OLED显示 }4. Wi-Fi数据上传 为了实现远程监控和数据上传功能我们需要设置ESP8266 Wi-Fi模块并通过UART与STM32进行通信。以下是具体的实现步骤。 4.1 Wi-Fi模块初始化 在main.c文件中我们需要配置UART并初始化ESP8266模块。下面是UART初始化的代码示例 UART_HandleTypeDef huart2; // 定义UART句柄void MX_USART2_UART_Init(void) {huart2.Instance USART2;huart2.Init.BaudRate 115200; // ESP8266的默认波特率huart2.Init.WordLength UART_WORDLENGTH_8B;huart2.Init.StopBits UART_STOPBITS_1;huart2.Init.Parity UART_PARITY_NONE;huart2.Init.Mode UART_MODE_TX_RX;huart2.Init.HwFlowCtl UART_HWCONTROL_NONE;huart2.Init.OverSampling UART_OVERSAMPLING_16;HAL_UART_Init(huart2); }4.2 发送数据到ESP8266 为了将传感器数据上传至手机APP我们将创建一个函数该函数将通过ESP8266发送传感器数据。以下是发送数据的代码示例 void sendDataToESP8266(float temperature, float humidity, int soilMoisture, int lightIntensity) {char buffer[100];snprintf(buffer, sizeof(buffer), GET /update?temp%.2fhum%.2fsoil%dlight%d HTTP/1.1\r\nHost: your_server_ip\r\n\r\n,temperature, humidity, soilMoisture, lightIntensity);HAL_UART_Transmit(huart2, (uint8_t *)buffer, strlen(buffer), HAL_MAX_DELAY); // 发送数据 }4.3 发送数据的调用 在主循环中我们需要在每次更新环境数据后调用sendDataToESP8266函数以确保最新的数据被上传。以下是如何调用该函数的示例 while (1) {float humidity DHT_ReadHumidity(hDHT);float temperature DHT_ReadTemperature(hDHT);int soilMoisture HAL_ADC_GetValue(hadc1);int lightIntensity HAL_ADC_GetValue(hadc2);// 更新显示displayData(humidity, temperature, soilMoisture, lightIntensity);// 控制设备controlDevices(temperature, humidity, soilMoisture, lightIntensity);// 发送数据到ESP8266sendDataToESP8266(temperature, humidity, soilMoisture, lightIntensity);HAL_Delay(2000); // 每2秒更新一次 }时序图 #mermaid-svg-FLbWmiOdUsAdv5cR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FLbWmiOdUsAdv5cR .error-icon{fill:#552222;}#mermaid-svg-FLbWmiOdUsAdv5cR .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-FLbWmiOdUsAdv5cR .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-FLbWmiOdUsAdv5cR .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-FLbWmiOdUsAdv5cR .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-FLbWmiOdUsAdv5cR .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-FLbWmiOdUsAdv5cR .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-FLbWmiOdUsAdv5cR .marker{fill:#333333;stroke:#333333;}#mermaid-svg-FLbWmiOdUsAdv5cR .marker.cross{stroke:#333333;}#mermaid-svg-FLbWmiOdUsAdv5cR svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-FLbWmiOdUsAdv5cR .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FLbWmiOdUsAdv5cR text.actortspan{fill:black;stroke:none;}#mermaid-svg-FLbWmiOdUsAdv5cR .actor-line{stroke:grey;}#mermaid-svg-FLbWmiOdUsAdv5cR .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-FLbWmiOdUsAdv5cR .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-FLbWmiOdUsAdv5cR #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-FLbWmiOdUsAdv5cR .sequenceNumber{fill:white;}#mermaid-svg-FLbWmiOdUsAdv5cR #sequencenumber{fill:#333;}#mermaid-svg-FLbWmiOdUsAdv5cR #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-FLbWmiOdUsAdv5cR .messageText{fill:#333;stroke:#333;}#mermaid-svg-FLbWmiOdUsAdv5cR .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FLbWmiOdUsAdv5cR .labelText,#mermaid-svg-FLbWmiOdUsAdv5cR .labelTexttspan{fill:black;stroke:none;}#mermaid-svg-FLbWmiOdUsAdv5cR .loopText,#mermaid-svg-FLbWmiOdUsAdv5cR .loopTexttspan{fill:black;stroke:none;}#mermaid-svg-FLbWmiOdUsAdv5cR .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-FLbWmiOdUsAdv5cR .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-FLbWmiOdUsAdv5cR .noteText,#mermaid-svg-FLbWmiOdUsAdv5cR .noteTexttspan{fill:black;stroke:none;}#mermaid-svg-FLbWmiOdUsAdv5cR .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FLbWmiOdUsAdv5cR .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FLbWmiOdUsAdv5cR .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FLbWmiOdUsAdv5cR .actorPopupMenu{position:absolute;}#mermaid-svg-FLbWmiOdUsAdv5cR .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-FLbWmiOdUsAdv5cR .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FLbWmiOdUsAdv5cR .actor-man circle,#mermaid-svg-FLbWmiOdUsAdv5cR line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-FLbWmiOdUsAdv5cR :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} User App ESP8266 STM32 Sensors OLED Devices 访问应用 发送请求数据 连接请求 读取传感器数据 返回温湿度、土壤湿度、光照强度 控制设备 状态反馈 更新显示内容 显示确认 发送实时数据 上传数据 更新显示数据 User App ESP8266 STM32 Sensors OLED Devices 5. 项目总结 本项目针对现代农业的需求设计并实现了一个基于STM32的智能大棚系统。该系统通过实时监测和自动控制环境参数如温度、湿度、土壤湿度和光照强度极大地提高了作物生长的环境适应性和农业生产效率。通过结合传感器、控制器、显示模块及Wi-Fi通信技术项目不仅展示了现代农业智能化的实现路径也为相关领域的研究和应用提供了参考。 项目的主要功能包括 环境监测: 系统集成了DHT22温湿度传感器、YL-69土壤湿度传感器及光敏电阻能够实时获取环境的关键参数为后续的环境调节提供数据支持。 智能控制: 根据设定的阈值系统能够自动控制加热片、风扇、灯光和水泵从而在不同的环境条件下自动调节大棚内的微气候为植物提供最佳的生长环境。 数据展示: 通过OLED显示屏实时展示温湿度、土壤湿度和光照强度等重要数据便于用户直观地监控环境变化。 远程监控: 利用ESP8266模块系统能够将实时数据上传至手机APP用户可以随时随地进行远程监控和管理提高了对大棚环境的响应速度和管理效率。
http://www.pierceye.com/news/397042/

相关文章:

  • 邯郸的网站建设无锡做网站品牌公司
  • 汇编做网站门户网站建设 知乎
  • 教育云平台网站建设云南小程序定制开发
  • 企业自助建站策划方案横沥网站设计
  • 网站开发搜索功能怎么实现中小网站建设都有哪些方案
  • 学科网站建设网页制作和网页制作
  • 公司网站模板大全网站文章编辑
  • 旅游网站建设的总结wordpress多域名移动主题
  • 深圳做网站推荐哪家公司好附近广告公司联系电话
  • 网站建设和网站优化哪个更重要提供邯郸网站建设
  • 做网站一般把宽度做多少合肥优化
  • 石家庄做网站公司汉狮价格猴痘的治疗方法
  • 自己有网站 做app吗深圳罗湖企业网站推广
  • 廊坊建设局网站6阿里云虚拟主机网站
  • 设计一个电商网站西安seo盐城
  • 上海网站公司建设网页设计网站欣赏
  • 平台网站如何做推广1280的界面网站做多宽
  • 男男做爰视频网站微信扫码点餐小程序怎么做
  • 哈尔滨做网站的价格如何利用wordpress搭建一个发卡网
  • 商会建设网站说明网站建设属于技术活吗
  • 免费申请手机网站公司画册模板免费下载
  • 网站建设策划做一个卖货的app要多少钱
  • 泉州网站平台建设公司网站服务器出错了怎么办
  • 佛山网站设计专业手机网站模板设计软件
  • 顺德网站优化公司wordpress 去广告
  • 自己建企业网站怎么建免费大数据查询
  • 短视频素材免费下载网站江西省城乡建设厅网站
  • 西安做网站公司工资wordpress 导航 分类
  • 网站建设免费教程网页设计图片高清
  • 网站后台源代码东直门小学的网站建设