库安装
1、克隆代码库到本地
git clone --depth=1 https://github.com/espressif/arduino-esp32.git
2、拷贝文件到hardware文件目录
Arduino文件夹可以在首选项中看到
拷过去
3、进入tools执行get.exe
代码
#include <Preferences.h>
#include <WiFi.h>
#include "DHTesp.h"
#define DHTpin 15 //D15 of ESP32 DevKit
DHTesp dht;
const char* host = "192.168.10.2";
Preferences preferences;
String PrefSSID, PrefPassword;
void setup()
{
Serial.begin(9600);
initWifi();
dht.setup(DHTpin, DHTesp::DHT11);
}
void loop()
{
Upload();
}
void Upload(){
delay(dht.getMinimumSamplingPeriod());
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String url = "/api/input/?h=";
url += humidity;
url += "&t=";
url += temperature;
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
// Read all the lines of the reply from server and print them to Serial
while(client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println("closing connection");
}
void initWifi()
{
Serial.println();
Serial.print("Try to connection original wifi...");
//read wifi in NVS
preferences.begin("wifi", false);
PrefSSID = preferences.getString("ssid", "none");
PrefPassword = preferences.getString("password", "none");
preferences.end();
int count = 0;
if( PrefSSID == "none" )
{
smartConfigWIFI();
}
WiFi.begin(PrefSSID.c_str(), PrefPassword.c_str());
//Try to connection 5 seconds
while (WiFi.status() != WL_CONNECTED) {
if(count==10) ESP.restart();
delay(500);
count++;
Serial.print(".");
}
Serial.print("Connected! IP address: ");
Serial.println(WiFi.localIP());
}
void smartConfigWIFI()
{
WiFi.mode(WIFI_AP_STA);
WiFi.beginSmartConfig();
//Wait for SmartConfig packet from mobile
Serial.println("Waiting for SmartConfig.");
while (!WiFi.smartConfigDone()) {
delay(500);
Serial.print(".");
}
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
preferences.begin("wifi", false);
preferences.putString( "ssid" , WiFi.SSID());
preferences.putString( "password", WiFi.psk());
preferences.end();
Serial.println("SmartConfig done, restarting..");
delay(2000);
ESP.restart();
}