esp8266代码大全(自己焊接ESP8266开发板)
esp8266代码大全(自己焊接ESP8266开发板)焊接完毕测试可以正常烧写固件,这个板子没有自动下载电路,需要按住BOOT再按一下RST就可以烧写固件了。焊接完成发现USB口数据引脚没有焊接上,电烙铁头比较粗,一下子把引脚焊锡焊到一起,吸了半天也分不开,最终报废重新换了一个USB口ESP8266模块为ESP-12F,安信可店铺前段时间搞活动,1元1片购买的博安通品牌的。ESP8266模块焊接是个精细活,0603贴片电阻、电容焊接起来也比较费劲,准备把好一点的尖头镊子,最好使用焊锡膏 热风枪操作,使用电烙铁时最好搭配膏状助焊剂,松香不太好操作。
ESP8266开发板 DHT11模块
ESP8266开发板采用技小新团队设计的开发板做简单调整后,在嘉立创PCB打样,5元包邮5张,质量非常不错。
PCB
又在立创商城采购了些元器件,使用了优惠券后下来花了不到20;
ESP8266模块为ESP-12F,安信可店铺前段时间搞活动,1元1片购买的博安通品牌的。
ESP8266模块
焊接是个精细活,0603贴片电阻、电容焊接起来也比较费劲,准备把好一点的尖头镊子,最好使用焊锡膏 热风枪操作,使用电烙铁时最好搭配膏状助焊剂,松香不太好操作。
焊接完成发现USB口数据引脚没有焊接上,电烙铁头比较粗,一下子把引脚焊锡焊到一起,吸了半天也分不开,最终报废重新换了一个USB口
焊接完毕测试可以正常烧写固件,这个板子没有自动下载电路,需要按住BOOT再按一下RST就可以烧写固件了。
代码如下:
/* ***********************************************************************
*
* 名称:DHT11温湿度计
* 简介:DHT11温湿度传感器插入ESP8266物联网开发板,DATA引脚为GPIO5 接入小爱同学、
* 小度音箱、天猫精灵,增加历史数据存储与图表查看数据的功能,支持ESPTOUCH配网
* 作者:MOLUN
* 抖音:tymishop
* 博客:https://molun.cf/
*
* ***********************************************************************/
#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR
#define BLINKER_DUEROS_SENSOR
#define BLINKER_ALIGENIE_SENSOR
#define BLINKER_ESP_SMARTCONFIG
#include <Blinker.h>
#include <DHT.h>
char auth[] = "e3f1db565864"; // Blinker APP中添加设备时生成的Secret Key
BlinkerNumber HUMI("humi");
BlinkerNumber temp("temp");
#define DHTPIN 5
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN DHTTYPE);
uint32_t read_time = 0;
float humi_read temp_read;
void heartbeat()
{
HUMI.print(humi_read);
TEMP.print(temp_read);
}
void miotQuery(int32_t queryCode)
{
BLINKER_LOG("MIOT Query codes: " queryCode);
switch (queryCode)
{
case BLINKER_CMD_QUERY_ALL_NUMBER :
BLINKER_LOG("MIOT Query All");
BlinkerMIOT.temp(temp_read);
BlinkerMIOT.humi(humi_read);
BlinkerMIOT.print();
break;
default :
BlinkerMIOT.temp(20);
BlinkerMIOT.humi(20);
BlinkerMIOT.print();
break;
}
}
void dataStorage()
{
Blinker.dataStorage("temp" temp_read);
Blinker.dataStorage("humi" humi_read);
}
void duerQuery(int32_t queryCode)
{
BLINKER_LOG("DuerOS Query codes: " queryCode);
switch (queryCode)
{
case BLINKER_CMD_QUERY_HUMI_NUMBER :
BLINKER_LOG("DuerOS Query HUMI");
BlinkerDuerOS.humi(humi_read);
BlinkerDuerOS.print();
break;
case BLINKER_CMD_QUERY_TEMP_NUMBER :
BLINKER_LOG("DuerOS Query TEMP");
BlinkerDuerOS.temp(temp_read);
BlinkerDuerOS.print();
break;
default :
BlinkerDuerOS.temp(20);
BlinkerDuerOS.humi(20);
BlinkerDuerOS.print();
break;
}
}
void aligenieQuery(int32_t queryCode)
{
BLINKER_LOG("AliGenie Query codes: " queryCode);
switch (queryCode)
{
case BLINKER_CMD_QUERY_ALL_NUMBER :
BLINKER_LOG("AliGenie Query All");
BlinkerAliGenie.temp(temp_read);
BlinkerAliGenie.humi(humi_read);
BlinkerAliGenie.print();
break;
default :
BlinkerAliGenie.temp(20);
BlinkerAliGenie.humi(20);
BlinkerAliGenie.print();
break;
}
}
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: " data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print("millis" BlinkerTime);
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
pinMode(LED_BUILTIN OUTPUT);
digitalWrite(LED_BUILTIN LOW);
Blinker.begin(auth);
Blinker.attachData(dataRead);
Blinker.attachHeartbeat(heartbeat);
Blinker.attachDataStorage(dataStorage);
BlinkerMIOT.attachQuery(miotQuery);
BlinkerDuerOS.attachQuery(duerQuery);
BlinkerAliGenie.attachQuery(aligenieQuery);
dht.begin();
}
void loop()
{
Blinker.run();
if (read_time == 0 || (millis() - read_time) >= 2000)
{
read_time = millis();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
BLINKER_LOG("Failed to read from DHT sensor!");
return;
}
float hic = dht.computeHeatIndex(t h false);
humi_read = h;
temp_read = t;
BLINKER_LOG("Humidity: " h " %");
BLINKER_LOG("Temperature: " t " ℃");
BLINKER_LOG("Heat index: " hic " ℃");
}
}
项目是开源的,感兴趣的朋友们可以自己动手试试看。
你要是购买的和我一样的DHT11模块ESP8266开发板上的接模块的引脚需要调整下,IO5与3V3的位置!
DTH11模块引脚排列