打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ESP8266-1S服务器推送环境温度
          ESP8266-1S服务器推送环境温度           
1
材料准备

arduino uno r3 开发板

esp8266-1s WiFi模块

DS18B20 测温元件

排线若干

面包板一个

ESP8266一款超低功耗的串口WiFi模块,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能,本次实验通过该模块为arduino开发板增加联网功能

2
电路接线

ESP8266         Arduino Uno

UTXD     <------> 1(TX1)

GND      <------> GND

VCC       <------> 3.3V(如果网络连接不稳定,则建议选择独立电源)

UTXD    <------> 0(RX0)

Arduino Uno与DS18B20接线见 

3
代码
#include "WiFiEsp.h"#include<DS18B20.h>// Emulate Serial1 on pins 6/7 if not present#ifndef HAVE_HWSERIAL1#include "SoftwareSerial.h"  SoftwareSerial Serial1(7, 6); // RX, TX#endif
DS18B20 ds(2); char ssid[] = "Tenda_18B210"; // 无线网名称 (name)char pass[] = "*********"; // 无线密码int status = WL_IDLE_STATUS; // the Wifi radio's status
char server[] = "192.168.0.166"; //远程服务器ip
// Initialize the Ethernet client objectWiFiEspClient client;
void setup(){ // initialize serial for debugging Serial.begin(9600); // initialize serial for ESP module Serial1.begin(9600); //使用软串口,注意波特率不要高于57600 // initialize ESP module WiFi.init(&Serial1);
// check for the presence of the shield if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // don't continue while (true); }
// attempt to connect to WiFi network while ( status != WL_CONNECTED) { Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); // Connect to WPA/WPA2 network status = WiFi.begin(ssid, pass); }
// you're connected now, so print out the data Serial.println("You're connected to the network"); printWifiStatus();
Serial.println(); Serial.println("Starting connection to server..."); // if you get a connection, report back via serial if (client.connect(server, 8080)) { Serial.println("Connected to server"); // Make a HTTP request// client.println("GET /asciilogo.txt HTTP/1.1");// client.println("Host: arduino.cc");// client.println("Connection: close");// client.println(); }}
void loop(){ // if there are incoming bytes available // from the server, read them and print them while (client.available()) { char c = client.read(); Serial.write(c); }
// if the server's disconnected, stop the client if (!client.connected()) { Serial.println(); Serial.println("Disconnecting from server..."); client.stop();
// do nothing forevermore while (true){ }; } if(client.connected()){ String temp = getAndSendTemperatureAndHumidityData(); // 获取温湿度数据发送到Http服务器上去 client.println("Temp:"+temp+" C"); delay(2000); }}

void printWifiStatus(){ // print the SSID of the network you're attached to Serial.print("SSID: "); Serial.println(WiFi.SSID());
// print your WiFi shield's IP address IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip);
// print the received signal strength long rssi = WiFi.RSSI(); Serial.print("Signal strength (RSSI):"); Serial.print(rssi); Serial.println(" dBm");}/* * * 读取温湿度数据,然后发送到HTTP服务器上去 * */String getAndSendTemperatureAndHumidityData(){ return String(ds.getTempC());}

4
实验结果

1.使用TCP测试工具启动一个HTTP服务器

2.烧写程序并打开串口查看结果

3.查看服务器


Tips

1. 在实验过程发现我是用的arduino 3.3V给esp8266-1s供电网络不稳定,直接改成5v就比较稳定了。

2. esp8266默认出厂波特率是115200,建议使用AT指令改一下:AT+UART=9600,8,1,0,0 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何仅花20元成本用arduino平台建立自己的物联网应用
前方高能,教大家制作一个能手机控制的继电器开关!
ESP8266模块使用
制作一个Tello无人机的WiFi无线遥控器(ESP8266+Shield).源码分析上
Arduino WiFi Shield
用ESP-01开发板制作一个智能家居万能控制器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服