esp8266上传数据到网页 |
您所在的位置:网站首页 › esp8266上传数据到数据库 › esp8266上传数据到网页 |
系列文章目录
第一章ESP8266的java软件仿真测试 第二章ESP8266硬件与软件测试 第三章ESP8266客户端与Java后台服务器联调 第四章ESP8266客户端与JavaWeb服务器联调 第五章ESP8266客户端与JavaWeb服务器网页联调 文章目录 系列文章目录前言一、物联网单片机客户端与网站结合是什么?二、使用步骤1.下载代码搭建开发环境2.读入数据 总结 前言daodanjishui物联网核心原创技术之物联网服务器网站部署 一、物联网单片机客户端与网站结合是什么?本文在第四章介绍了ESP8266客户端与JavaWeb服务器联调,当时的服务器还没有主页,只是在后台控制台打印出单片机传输过来的温湿度而已,这就是第四章设计的缺点所在。 那么这次设计将会把JavaWeb服务器后台接收到的数据放到主页上显示出来,能访问到服务器主页的浏览器都能远程查询到单片机采集的温湿度数据。 下面是效果展示: (1)硬件部署
(4.1)stm32单片机串口调试助手调试信息打印 (5)私人服务器工程目录和服务器后台打印数据 代码和教程的详细下载地址:https://www.cirmall.com/circuit/18567/ 点击跳转到目的地 部分采集数据代码如下(示例): #include “bsp_dht11.h” #include “delay.h” /* 函数名:DHT11_GPIO_Config 描述 :配置DHT11用到的I/O口 输入 :无 输出 :无 */ void DHT11_GPIO_Config(void) { /定义一个GPIO_InitTypeDef类型的结构体/ GPIO_InitTypeDef GPIO_InitStructure; /开启DHT11_PORT的外设时钟/ RCC_APB2PeriphClockCmd(DHT11_CLK, ENABLE); /选择要控制的DHT11_PORT引脚/ GPIO_InitStructure.GPIO_Pin = DHT11_PIN; /设置引脚模式为通用推挽输出/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*设置引脚速率为50MHz */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /调用库函数,初始化DHT11_PORT/ GPIO_Init(DHT11_PORT, &GPIO_InitStructure); /* 拉高GPIOB10 */ GPIO_SetBits(DHT11_PORT, DHT11_PIN); } /* 函数名:DHT11_Mode_IPU 描述 :使DHT11-DATA引脚变为上拉输入模式 输入 :无 输出 :无 */ static void DHT11_Mode_IPU(void) { GPIO_InitTypeDef GPIO_InitStructure; /*选择要控制的DHT11_PORT引脚*/GPIO_InitStructure.GPIO_Pin = DHT11_PIN; /*设置引脚模式为浮空输入模式*/GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; /调用库函数,初始化DHT11_PORT/ GPIO_Init(DHT11_PORT, &GPIO_InitStructure); } /* 函数名:DHT11_Mode_Out_PP 描述 :使DHT11-DATA引脚变为推挽输出模式 输入 :无 输出 :无 */ static void DHT11_Mode_Out_PP(void) { GPIO_InitTypeDef GPIO_InitStructure; /*选择要控制的DHT11_PORT引脚*/GPIO_InitStructure.GPIO_Pin = DHT11_PIN; /设置引脚模式为通用推挽输出/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*设置引脚速率为50MHz */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /调用库函数,初始化DHT11_PORT/ GPIO_Init(DHT11_PORT, &GPIO_InitStructure); } /* 从DHT11读取一个字节,MSB先行 */ static uint8_t Read_Byte(void) { uint8_t i, temp=0; for(i=0;i /轮询直到从机发出 的80us 低电平 响应信号结束/ while(DHT11_DATA_IN()==Bit_RESET); /*轮询直到从机发出的 80us 高电平 标置信号结束*/ while(DHT11_DATA_IN()==Bit_SET); /*开始接收数据*/ DHT11_Data->humi_int= Read_Byte(); DHT11_Data->humi_deci= Read_Byte(); DHT11_Data->temp_int= Read_Byte(); DHT11_Data->temp_deci= Read_Byte(); DHT11_Data->check_sum= Read_Byte(); /*读取结束,引脚改为输出模式*/ DHT11_Mode_Out_PP(); /*主机拉高*/ DHT11_DATA_OUT(HIGH); /*检查读取的数据是否正确*/ if(DHT11_Data->check_sum == DHT11_Data->humi_int + DHT11_Data->humi_deci + DHT11_Data->temp_int+ DHT11_Data->temp_deci) return SUCCESS; else return ERROR;} else { return ERROR; } } /*******END OF FILE/ 2.读入数据部分代码如下(示例): private void sendMessages(HttpServletRequest request, HttpServletResponse response) {//单片机发送温湿度给服务器 ServletContext application=getServletContext();//获取application System.out.println(“进入sendMessages方法”); response.setContentType(“text/html;charset=UTF-8”);//设置响应内容和编码方式 String user=request.getParameter(“user”);//昵称 String speak=request.getParameter(“speak”);//说话内容 mymessage="["+user+"]say:"+speak;//给单片机的 System.out.println(mymessage); String message="["+user+"]say:"+speak;//组合说话内容 application.setAttribute(“message”, mymessage);//将聊天内容保存到application try { response.getWriter().println(mymessage); } catch (IOException e) { e.printStackTrace(); } } 总结首先esp8266无线连接到局域网无线热点和局域网javaweb服务器,然后定时上传dht11数据到服务器,最后用户登录浏览器输入网址点击发送按钮就可以查询到dht数据了。 这次设计将会把JavaWeb服务器后台接收到的数据放到主页上显示出来,能访问到服务器主页的浏览器都能远程查询到单片机采集的温湿度数据。单片机客户端定时上报数据,服务器接受单片机客户端的请求并且将数据存起来,浏览器客户端随时查询数据,服务器再响应浏览器客户端的请求把数据返回给浏览器显示出来。 服务器逻辑设计精妙和严谨,客户端联网设计细腻,系统运行良好,断线重连,stm32运行稳定,ESP8266无线通信速度够快,总的来说适合作为物联网初级参数采集系统的雏形,daodanjishui核心原创DIY值得再次期待。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |