0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用LM35制作一个Web服务器

科技观察员 来源:circuitdigest 作者:里沙布·耆那教 2022-11-14 17:15 次阅读

在本教程中,我们将探索有关这个有趣的MCU的更多信息,并通过将NodeMCU与互联网连接来慢慢地潜入物联网世界。在这里,我们将使用此模块在Web浏览器上获取室温,即我们将制作一个Web服务器以LM35作为温度传感器显示温度。

所需组件:

节点单片机 - ESP12

LM35 温度传感器

面包板

公母连接器

LM35 温度传感器:

LM35是一款interwetten与威廉的赔率体系 线性温度传感器。其输出与温度成正比(以摄氏度为单位)。工作温度范围为 -55°C 至 150°C。 输出电压变化 10mV 以响应oC 温度升高或下降。它可以采用 5V 和 3.3 V 电源供电,待机电流小于 60uA。

pYYBAGNyB1GAL1c7AAAb9v3BhKE987.jpg

poYBAGNyB1KAEaLWAAApdPrUPjg157.png

请注意,LM35 有 3 个系列变体,即 LM35A、LM35C 和 LM35D 系列。主要区别在于它们的温度测量范围。LM35D 系列设计用于测量 0 至 100 摄氏度,而 LM35A 系列设计用于测量 -55 至 155 摄氏度的更宽范围。LM35C 系列设计用于测量 -40 至 110 摄氏度。

将 LM35 与 NodeMCU 连接:

下面给出了将LM35与NodeMCU连接的电路图:

pYYBAGNyB1SAeUHdAACtAtNDllY518.png

LM35 是一个模拟传感器,因此我们必须将此模拟输出转换为数字输出。为此,我们使用定义为A0的NodeMCU的ADC引脚。我们将 LM35 的输出连接到 A0。

我们在NodeMCU的引脚上有3.3 V作为输出电压。因此,我们将使用 3.3V 作为 LM35 的 Vcc。

poYBAGNyB1WAbeLYAAC1W6ULJKI274.jpg

代码说明:

本文末尾提供了带有演示视频的完整代码。在这里,我们将解释代码的几个部分。

首先,我们必须包含 ESP8266wifi 库才能访问 Wi-Fi 功能。

#include

然后在 ssid 和密码字段中输入您的 Wi-Fi 名称和密码。还初始化了变量并在波特率为 115200 的端口 80 上启动服务器。

const char* ssid = "*********"; // Your ssid

const char* password = "***********"; // Your Password

float temp_celsius = 0;

float temp_fahrenheit = 0;

WiFiServer server(80);

void setup() {

Serial.begin(115200);

通过调用这些函数建立 Wi-Fi 连接。

Serial.println();

Serial.println();

Serial.print("Connecting to ");

Serial.println(ssid);

WiFi.begin(ssid, password);

连接可能需要几秒钟才能建立,因此请继续显示“...”直到连接不会建立。然后系统将继续等待并检查客户端连接...

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("WiFi is connected");

server.begin();

Serial.println("Server started");

Serial.println(WiFi.localIP());

}

在循环部分中,读取传感器值并将其转换为摄氏度和华氏度,并在串行监视器上显示这些值。

void loop() {

temp_celsius = (analogRead(A0) * 330.0) / 1023.0; // To convert analog values to Celsius We have 3.3 V on our board and we know that output voltage of LM35 varies by 10 mV to every degree Celsius rise/fall. So , (A0*3300/10)/1023 = celsius

temp_fahrenheit = celsius * 1.8 + 32.0;

Serial.print(" Temperature = ");

Serial.print(temp_celsius);

Serial.print(" Celsius, ");

在网页上显示温度的 HTML 代码:

我们在网页上显示温度,以便可以通过互联网从世界任何地方访问它。HTML代码非常简单;我们只需要使用 client.println 函数来回显 HTML 代码的每一行,以便浏览器可以执行它。

这部分显示用于创建显示温度值的网页的HTML代码。

WiFiClient client = server.available();

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println("Connection: close"); // the connection will be closed after completion of the response

client.println("Refresh: 10"); // update the page after 10 sec

client.println();

client.println("");

client.println("

");

client.print("

Digital Thermometer

");

client.print("

Temperature (*C)= ");

client.println(temp_celsius);

client.print("

Temperature (F) = ");

client.println(temp_fahrenheit);

client.print("

");

client.println("");

delay(5000);

}

加工:

使用 Arduino IDE 上传代码后,打开串行监视器并按 NodeMCU 上的重置按钮。

pYYBAGNyB1qAfhkvAACCKzr3VvM298.png

现在,您可以看到该板已连接到您在代码中定义的Wi-Fi网络,并且还获得了IP。复制此 IP 并将其粘贴到任何 Web 浏览器中。确保运行 Web 浏览器的系统应连接到同一网络。

pYYBAGNyB1uAU_ExAAAy2ceF8Y8547.png

您的数字温度计已准备就绪,温度将在每 10 秒后在网络浏览器中自动刷新。

#include

const char* ssid = "*********"; // Your ssid

const char* password = "***********"; // Your Password

float temp_celsius = 0;

float temp_fahrenheit = 0;

WiFiServer server(80);

void setup() {

Serial.begin(115200);

pinMode(A0, INPUT);

Serial.println();

Serial.println();

Serial.print("Connecting to ");

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("WiFi is connected");

server.begin();

Serial.println("Server started");

Serial.println(WiFi.localIP());

}

void loop() {

temp_celsius = (analogRead(A0) * 330.0) / 1023.0; // To convert analog values to Celsius We have 3.3 V on our board and we know that output voltage of LM35 varies by 10 mV to every degree Celsius rise/fall. So , (A0*3300/10)/1023 = celsius

temp_fahrenheit = celsius * 1.8 + 32.0;

Serial.print(" Temperature = ");

Serial.print(temp_celsius);

Serial.print(" Celsius, ");

Serial.print(temp_fahrenheit);

Serial.println(" Fahrenheit");


WiFiClient client = server.available();

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println("Connection: close"); // the connection will be closed after completion of the response

client.println("Refresh: 10"); // update the page after 10 sec

client.println();

client.println("");

client.println("");

client.print("

Digital Thermometer

");

client.print("

Temperature (*C)= ");

client.println(temp_celsius);

client.print("

Temperature (F) = ");

client.println(temp_fahrenheit);

client.print("

");

client.println("");

delay(5000);

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 温度传感器
    +关注

    关注

    48

    文章

    2940

    浏览量

    156045
  • LM35
    +关注

    关注

    2

    文章

    83

    浏览量

    18112
  • Web服务器
    +关注

    关注

    0

    文章

    138

    浏览量

    24401
收藏 人收藏

    评论

    相关推荐

    LM35温度传感应用及特性

    LM35温度传感应用及特性 LM35种得到广泛使用的温度传感。由于它采用内部补偿,所以输出可以从0℃开始。该器件采用塑料封装TO9
    的头像 发表于 01-16 11:00 1.2w次阅读

    如何使用PIC微控制LM35温度传感制作数字温度计

    在本教程中,我们将使用 PIC 微控制LM35 温度传感制作数字温度计。在本项目中,我们将使用 LM35 检测温度并将其显示在 16
    的头像 发表于 11-16 15:49 4038次阅读
    如何使用PIC微控制<b class='flag-5'>器</b>和<b class='flag-5'>LM35</b>温度传感<b class='flag-5'>器</b><b class='flag-5'>制作</b>数字温度计

    LM35温度传感

    LM35温度传感
    发表于 08-14 23:30

    使用LM35的冷却风扇控制

    描述使用 LM35 的冷却风扇控制功率元件的高温是电子学中的已知现象。为了克服这挑战,设计人员在组件上安装散热
    发表于 06-30 07:21

    基于LM35温度传感的温控系统设计

    本文介绍了种应用LM35 温度传感开发的温控系统,重点阐述了系统结构、工作原理、采样值量化。同时对LM35 传感特性、系统硬件电路设计
    发表于 08-04 15:10 114次下载

    LM35,datasheet,pdf(Precision C

    The LM35 series are precision integrated-circuit temperaturesensors, whose output voltage
    发表于 10-20 14:18 27次下载

    温度传感 LM35介绍

    温度传感 LM35介绍 在自动控制、机电整合的应用中,温度的测量为
    发表于 12-02 10:28 2.9w次阅读

    lm35怎么用(lm35工作原理及内部结构_应用电路图)

    LM35种得到广泛使用的温度传感。由于它采用内部补偿,所以输出可以从0℃开始。该器件采用塑料封装TO992,工作电压4~30V,所以乍看来,它似乎是无需校准的
    发表于 01-31 10:54 6.1w次阅读
    <b class='flag-5'>lm35</b>怎么用(<b class='flag-5'>lm35</b>工作原理及内部结构_应用电路图)

    lm35测温电路图大全(二款lm35测温电路设计)

    LM35 是由National Semiconductor 所生产的温度传感,其输出电压为摄氏温标。LM35种得到广泛使用的温度传感
    发表于 01-31 11:21 2.5w次阅读
    <b class='flag-5'>lm35</b>测温电路图大全(二款<b class='flag-5'>lm35</b>测温电路设计)

    基于LM35温度传感的温控系统设计

    本设计介绍了种应用LM35温度传感开发的温控系统,重点阐述了系统结构、工作原理以及采样值量化。同时对LM35传感特性、系统硬件电路设计
    发表于 01-31 11:39 8264次阅读
    基于<b class='flag-5'>LM35</b>温度传感<b class='flag-5'>器</b>的温控系统设计

    基于LM35温度传感的高精度恒温控制系统

    LM35 是由National Semiconductor 所生产的温度传感,其输出电压为摄氏温标。LM35种得到广泛使用的温度传感
    发表于 01-31 17:57 1.1w次阅读

    LM35温度测量电路,LM35 temperature measurement circuit

    LM35温度测量电路,LM35 temperature measurement circuit 关键字:温度测量电路,温度测试电路,LM35
    的头像 发表于 09-20 18:17 1950次阅读

    LM35与ICL7107构成的温度计,LM35 thermometer

    。首先把LM35故人冰水中,调整PRt,使显示显示0.0℃。再把LM35放人100℃的开水中,调整PR2,使显示显示100℃。重复调整多次即可。但要注意从冰水中取出的
    的头像 发表于 09-20 18:31 1990次阅读

    使用LM35的冷却风扇控制

    电子发烧友网站提供《使用LM35的冷却风扇控制.zip》资料免费下载
    发表于 07-06 10:56 4次下载
    使用<b class='flag-5'>LM35</b>的冷却风扇控制<b class='flag-5'>器</b>

    如何使用Arduino和LM35传感制作温度计

    电子发烧友网站提供《如何使用Arduino和LM35传感制作温度计.zip》资料免费下载
    发表于 11-24 14:31 1次下载
    如何使用Arduino和<b class='flag-5'>LM35</b>传感<b class='flag-5'>器</b><b class='flag-5'>制作</b>温度计