esp8266,arduino,网页显示dht11温湿度,控制继电器开关,局域网智能家居
不说了,上代码,用arduino实现esp8266代码
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <SimpleDHT.h> // 定义DHT11引脚
// VCC: 5V or 3V
// GND: GND
// DATA: 2
int pinDHT11 = D4;
SimpleDHT11 dht11(pinDHT11); // read without samples.
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
// 定义LED引脚
#define LED_PIN 5 // 创建Web服务器对象
ESP8266WebServer server(80); // 处理根目录请求的函数
void handleRoot() { // 获取LED状态
String ledState = digitalRead(LED_PIN) == HIGH ? "OFF" : "ON"; // 生成HTML页面内容
String html = "<html><head><title>DHT11 and LED Control</title></head><body>";
html += "<h1>DHT11 and LED Control</h1>";
html += "<p>Temperature: ";
html += (int)temperature;
html += " *C</p>";
html += "<p>Humidity: ";
html += (int)humidity;
html += " %</p>";
html += "<p>LED State: ";
html += ledState;
html += "</p>";
html += "<form method=\"POST\" action=\"/led\">";
html += "<button type=\"submit\" name=\"state\" value=\"on\">Turn On</button>";
html += "<button type=\"submit\" name=\"state\" value=\"off\">Turn Off</button>";
html += "</form>";
html += "</body></html>"; // 发送HTML页面内容
server.send(200, "text/html", html);
} // 处理LED控制请求的函数
void handleLed() {
// 获取按钮状态
String state = server.arg("state"); // 根据按钮状态控制LED灯
if (state == "on") {
digitalWrite(LED_PIN, LOW);
} else if (state == "off") {
digitalWrite(LED_PIN, HIGH);
} // 返回根目录
server.sendHeader("Location", "/");
server.send(302, "text/plain", "");
} void setup() {
// 初始化串口
Serial.begin(9600);
while (!Serial) {} // 初始化LED引脚
pinMode(LED_PIN, OUTPUT);
delay(20);
digitalWrite(LED_PIN, HIGH);
// 连接WiFi网络
WiFi.begin("litianmenzhenbu", "LT12345678");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("WiFi connected"); // 注册请求处理函数
server.on("/", handleRoot);
server.on("/led", handleLed); // 启动Web服务器
server.begin();
} void loop() { for (int i=0;i<1000;i++)
{
delay(1);
// 处理Web请求
server.handleClient();
} // 读取温湿度
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed, err="); Serial.println(err);//delay(1000);
//return;
}
// Serial.print("Sample OK: ");
// Serial.print((int)temperature); Serial.print(" *C, ");
// Serial.print((int)humidity); Serial.println(" H");
//// // DHT11 sampling rate is 1HZ.
// delay(1500);
}
效果:

需要使用360防火墙找到esp8266的ip地址 , 打开浏览器输入ip即可控制


DHT11 and LED Control
Temperature: 25 *C
Humidity: 59 %
LED State: OFF
Turn OnTurn Off

esp8266,arduino,网页显示dht11温湿度,控制继电器开关,局域网智能家居的更多相关文章
- ESP8266局域网智能家居 路由器下作服务器模式串口透传 无线通信控制 arduino uno示例 模板参考
准备工作 下载一个Arduino IDE, 下载8266的库文件 ESP8266服务器模式串口透传编译 功能说明 1.直接使用路由器中转数据 2.手机放热点模式直接传输数据 两者有访问IP地址的差别, ...
- ARDUINO MEGA2560 经过ESP8266 WIFI模块上传温湿度数据到 OneNet 服务器
简述 原来写了一个C++的wifi库但是发现用c++ arduino这小身板有点扛不住,代码比较大,使用String类型数据处理速度慢,而且很容易无缘无故跑飞.而且封装成库后使用还需要修改arduin ...
- Arduino和C51开发DHT11温湿度传感器
技术:51单片机.Arduino.DHT11.温湿度传感器.传感器 概述 学习单片机离不开对传感器的学习,本文主要介绍DHT11温湿度传感器的使用方法,同学也可以了解更多的传感器,这对你以后开发产 ...
- 【雕爷学编程】Arduino动手做(55)--DHT11温湿度传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...
- Intel Edison —— 控制GPIO接口,网页显示传感器数值
前言 原创文章,转载引用务必注明链接. 因为是使用Typora(markdown)写好然后复制到论坛的,推荐直接访问我的网站以获得更好地阅读体验. Intel XDK IoT 开发环境很久之前就上手了 ...
- DHT11温湿度传感器编程思路以及代码的实现(转载)
源自:https://blog.csdn.net/qq_34952376/article/details/81193938 在我们刚开始进入单片机的学习中,练习写传感器的时序是必不可少的,其实我比较推 ...
- asp.net 读取一个文本文件,并输出到网页显示 通过 一般处理程序实现
asp.net 读取一个文本文件,并输出到网页显示 通过 一般处理程序实现 用这个可以做模板首页进行输出,也可以自已自定义进行扩展 //得到读取到的文本到string中 string resultTe ...
- Metro中控件WebView访问外部的网页显示一片空白
Metro中控件WebView访问外部的网页显示一片空白 解决方案: 下载安装了Initex.Software.Proxifier.v3.21.Standard.Edition.Incl.Keyma ...
- 使用php-emoji类让网页显示emoji表情
需要的材料: php-emoji类库的下载地址:https://github.com/iamcal/php-emoji 代码示例:(该代码来自官网) <?php include('emoji.p ...
- python学习笔记--Django入门一 网页显示时间
我的笔记是学习http://djangobook.py3k.cn/ 课程时做的,这个上边的文章讲的确实是非常的详细,非常感谢你们提供的知识. 上一篇随笔中已经配置好了Django环境,现在继续跟随ht ...
随机推荐
- rst文件查看(Sphinx)
reStructuredText ( RST . ReST 或 reST )是一种用于文本数据的文件格式,主要用于 Python 编程语言社区的技术文档. 在下载了别人的Python源文件里面有rst ...
- 深入解析:AntSK 0.1.7版本的技术革新与多模型管理策略
在信息技术快速迭代的当下,.Net生态中的AntSK项目凭借其前沿的AI知识库和智能体技术,已经吸引了广大开发者的关注和参与.今天,我要给大家介绍的主角,AntSK 0.1.7版本,无疑将是这个开源项 ...
- Swagger (API框架,API 文档 与API 定义同步更新)
1.依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...
- C++实现一个简单的生产者-消费者队列
本文的代码都是ChatGPT生成,我只是做了微小的调整和整合,AI提示词如下: 设计一个C++类,支持生产者-消费者模型,可以通过size函数获取剩余数量 可能第一次生成的不一定合适,多刷新几次. 生 ...
- 安装VMware——Unable to install all modules.See log /tmp/vmware-han/vmware-6098.log for detalls.(Exit code 1)的解决方法(模块加载失败)
这是编译失败的原因在VM社区有这样一种解决方案,亲测有效,帮助我自己解决的麻烦,所有在这分享,希望能够帮助到小伙伴:不要被接下来的代码吓倒因为这是github上项目,所以要先在ubuntu上安装git ...
- 【atcoder beginner 308E - MEX】
前缀和 二分查找 打表枚举 代码如下 import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...
- 记录--手写$forceUpdate,vm.$destroy方法
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 vm.$forceUpdate (1)作用 迫使Vue.js实例重新渲染.注意它仅仅影响实例本身以及插入插槽内容的子组件,而不是所有子组件 ...
- Clang Preprocessor 类的创建
参考: Create a working compiler with the LLVM framework, Part 2 How to parse C programs with Clang: A ...
- .NET分布式Orleans - 4 - 计时器和提醒
Timer是什么 Timer 是一种用于创建定期粒度行为的机制. 与标准的 .NET System.Threading.Timer 类相似,Orleans 的 Timer 允许在一段时间后执行特定的操 ...
- clickhouse在各大厂商的应用
案例-ClickHouse在头条的技术演进