如何使用ESP8266开发板制作光强度检测器

本文将介绍如何使用一个esp8266开发板制作光强度检测器,并将检测结果在本地网页显示。
前言
你是否碰到过这样的问题,当你外出时突然忘记了家里的灯是否还开着,忘了关家里的灯怎么办呢?这个项目将允许你通过一个每秒更新的简单网页,查看房间的灯是否亮着。
电路连接
首先,连接一些外部元件到esp8266开发板。将ldr光敏电阻通过一个10k的下拉电阻连接到3.3v。ldr光敏电阻将根据它接收到的光强度来改变电阻值,然后再用跳线连接10k电阻到esp8266的adc引脚。
电路原理图如下:
程序设计思路
首先加载hello world服务器的示例文件,为了让它声明light值并自动刷新,文中更改了handleroot回调函数来提供定制的html代码。由于没有使用sd卡,所以无法使用javascript自动刷新这些值。庆幸的是,html本身提供了一种按设置的间隔时间刷新页面的方法。只需要在《p》标签后面添加《meta http-equiv=“refresh” content=“1”》。记住需要在代码中包含你的wifi证书。
然后,通过浏览器访问esp8266的ip地址就可以查看页面,在示例中ip地址是192.168.0.41,在浏览器设置中允许网站自动刷新,如果希望在不网络上(例如在使用4g网络的手机上)查看网页,需要将对应端口转发到esp8266的ip地址。例如,输入的不是192.168.0.41,端口转发的类型是“my_ip:the_port_i_chose_to_forward”,my_ip是你的外网ip地址,the_port_i_chose_to_forward路由器设置中设置的端口。通过端口转发,现在就算你不在家也可以检查家里的灯是开着还是关着了!
完整代码
#include
#include
#include
#include
const char* ssid = ssid;
const char* password = psswd;
esp8266webserver server(80);
void handleroot() {
string msg = esp8266 light levels;
msg += ;
msg += the light level is: ;
msg += string(analogread(a0))+
;
msg += ;
msg += ;
server.send(200, text/html, msg);
}
void handlenotfound(){
string message = file not found\n\n;
message += uri: ;
message += server.uri();
message += \nmethod: ;
message += (server.method() == http_get)?get:post;
message += \narguments: ;
message += server.args();
message += \n;
for (uint8_t i=0; i message += + server.argname(i) + : + server.arg(i) + \n;
}
server.send(404, text/plain, message);
}
void setup(void){
serial.begin(115200);
wifi.begin(ssid, password);
serial.println();
// wait for connection
while (wifi.status() != wl_connected) {
delay(500);
serial.print(.);
}
serial.println();
serial.print(connected to );
serial.println(ssid);
serial.print(ip address: );
serial.println(wifi.localip());
if (mdns.begin(esp8266)) {
serial.println(mdns responder started);
}
server.on(/, handleroot);
server.onnotfound(handlenotfound);
server.begin();
serial.println(http server started);
}
void loop(void){
server.handleclient();
}

Realis,发布了两款新的软件产品,用于多人全身运动捕捉
合封芯片是什么?单封和合封的区别
KGPF25-0.3-2.5型中频加热电源
Qt助力英飞凌车载MCU引入轻量级高性能图形框架,提升用户体验
英飞凌AURIX TC3xx和TRAVEO T2G系列微控制器介绍
如何使用ESP8266开发板制作光强度检测器
芯明天N62系列稳像压电扫描台的介绍
餐饮业食品安全问题频发 安防企业助力餐饮服务食品安全智慧化监管
国内外伺服驱动器电源板设计—整流滤波软启动电路
24V直流继电器的工作原理和使用方法
什么是硅光子?光子IC设计面临的挑战
电动车直流充电基础设施如何实现快速充电?
互联网医疗智能化系统的建设情况怎样了
苹果涉嫌窃取高通商业机密助英特尔设计Modem芯片
四种常见工业激光器哪个最好,怎么选择?
PPTC保护元件在LED领域的应用
总结三星S21系列上手的三点感受
新一代iQOO 7新机详细信息曝光
怎么把烧写到RAM程序修改成烧写到FLASH
基于CAN控制器SJA1000实现非智能适配卡的设计