【ESP8266之Arduino开发】二、实战YeeLink平台远程控制小灯
硬件准备:200欧电阻,LED以及NodeMCU
虽然模块仍然使用nodemcu,但是使用Arduino开发。 不再使用Lua及其固件!
arduino IDE 直接下载程序进ESP8266,相当于下载常说的固件,所以连接方式为烧写模块:GPIO0拉低;使用nodemcu就非常方便电路都连接好,直接下载即可!
6的很!!!
前提环境的配置,可参考这篇入门博客ESP8266 core for Arduino
电路连接图
#include <ESP8266WiFi.h>
#define ledPin 4 // 定义ledPin连接到GPIO4
const char* ssid = "XXXXXX"; // XXXXXX -- 使用时请修改为当前你的 wifi ssid
const char* password = "XXXXXX"; // XXXXXX -- 使用时请修改为当前你的 wifi 密码
const char* host = "www.yeelink.net";
const char* APIKEY = "XXXXXX"; //API KEY
int deviceId = XXXXX;
int sensorId = XXXXX;WiFiClient client;
const int tcpPort = 80;
char data[512] ;
int x = 0;
int dat = 0;void setup() {WiFi.mode(WIFI_AP_STA); //set work mode: WIFI_AP /WIFI_STA /WIFI_AP_STASerial.begin(115200);pinMode(ledPin, OUTPUT);delay(10);// We start by connecting to a WiFi networkSerial.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 connected");Serial.print("IP address: ");Serial.println(WiFi.localIP());
}void loop() {delay(2000);if (!client.connect(host, tcpPort)) {Serial.println("connection failed");return;}// We now create a URI for the requestString url = "/v1.0/device/";url += String(deviceId);url += "/sensor/";url += String(sensorId);url += "/datapoints";// This will send the request to the serverclient.print(String("GET ") + url + " HTTP/1.1\r\n" +"Host: " + host + "\r\n" +
// "Accept: */*\r\n"+ "U-ApiKey:" + APIKEY + "\r\n""Connection: close\r\n\r\n");unsigned long timeout = millis();while (client.available() == 0) {if (millis() - timeout > 2000) {Serial.println(">>> Client Timeout !");client.stop();return;}}// Read all the lines of the reply from server and print them to Serialwhile(client.available()){int e = client.read();if(e == '{'&&x == 0){x = 1;}else if(x == 1){data[dat] = e;
// Serial.print(e);if(e == '}'){digitalWrite(ledPin,data[dat-1]-'0');Serial.print("button value :");Serial.print(data[dat-1]);Serial.print("\t");x = 0;dat = 0;break;}dat++;}}// Serial.println();Serial.println("closing connection");
}//void colLED(char sta){
// if (sta == '0') {
// digitalWrite(ledPin, LOW);
// }
// if (sta == '1') {
// digitalWrite(ledPin, HIGH);
// }
//}
直接在程序中只修改相应的参数就行,如果未曾修改过,可参考这篇博文:http://blog.csdn.net/recclay/article/details/77891662
const char* ssid = "XXXXXX"; // XXXXXX -- 使用时请修改为当前你的 wifi ssid
const char* password = "XXXXXX"; // XXXXXX -- 使用时请修改为当前你的 wifi 密码
const char* host = "www.yeelink.net";
const char* APIKEY = "XXXXXX"; //API KEY
int deviceId = XXXXX;
int sensorId = XXXXX;
根据实际情况修改即可,然后下载(上传)到nodeMCU里面!
可通过云端或者手机进行控制!
这时 ESP8266 WIFI 模块去读取云端 LED状态值并设置当前LED的状态。
串口输出:
波特率115200
完了之后,只要模块在下的程序的局域网内,然后你通过手机连的广域网就可以控制灯的亮灭了!
向上吧,骚年!!!
【ESP8266之Arduino开发】二、实战YeeLink平台远程控制小灯相关推荐
- 利用HFS软件一分钟搭建好ESP8266基于Arduino开发环境
利用HFS一分钟搭建好ESP8266基于Arduino开发环境
- 为 Esp8266 配置 Arduino 开发环境并测试WiFi
为 Esp8266 配置 Arduino 开发环境 date: 2020-04-16 lastmod: 2021-09-21 安装驱动 为了让电脑可以正确识别开发板,需要装设备驱动(免驱插上就会自动安 ...
- 图解Esp32/ESP8266进行组网开发所需了解的那些小概念
图解Esp32/ESP8266进行组网开发所需了解的那些小概念 图解日程生活中常见网络操作背后的小概念 前情提要 过程中涉及的进行组网开发所需的小概念 漫画展示 预告:一个基于ESP32和ESP826 ...
- STM32LL库系列教程【二】——点亮LED小灯
开发板:秉火-霸道V1 芯片:STM32F103ZET6 GPIO: PB0 STM32LL库系列教程--LL库工程配置流程 STM32LL库系列教程[一]--安装CubeMx软件 STM32LL库系 ...
- 查看gpio状态_基于Arduino开发,借助blinker平台,让NodeMCU实现8路继电器APP端状态监视和控制...
基于Arduino开发,借助blinker物联网平台,让NodeMCU实现8路继电器APP端状态监视和控制 先上开发板功能图: 本文利用了NodeMCU上的D0-D3,D5-D9,总共 8个 GPIO ...
- 利用Arduino开发板制作RGB全彩LED灯
制作所需组件 RGB LED灯 1 个 220欧电阻 3 个 Arduino开发板 1 块 面包 1 块 跳线 4 根 电路原理图 电路图搭建过程 将RGB LED灯接入面包板 将3个电阻的一端引脚分 ...
- ESP32/ESP8266安装arduino开发板失败的方法(附合宙esp32用blinker固件连接小爱同学提示“要操作的设备好像出问题了等一会再试吧”的解决方法
如果要挂梯子连GitHub的链接下就太麻烦了 我们直接用中文论坛老哥传好的包 esp32 https://www.arduino.cn/thread-81194-1-1.html esp8266 如果 ...
- NB-IOT专栏(QS-100模块二次开发)-onenet云平台+微信小程序实现下行数据控制设备开关
前言 最近公司老总买了NB-IOT的模块,老总考虑到STM32芯片的价格涨的很快,而我们的内容做的不是很复杂,再加上支持一下本地企业,QS-100模块到价格超级实惠,决定使用QS-100模块作为通信模 ...
- 微信小程序+云开发项目实战:商品类小程序(化妆品门店)
化妆品门店 目录 云开发简介 页面之间导图 登陆页面开发 新建集合(表) 用户注册 购物车里购买商品 确认支付 判断支付密码 云函数修改数据 update_goods delete_carts 汇总 ...
最新文章
- linux命令grpck,不可不知的的grpck命令【每日一个知识点第184期-Linux】
- delphi Tpagecontrol 动态增加页面
- STL 之replace,replace_if,replace_copy,replace_copy_if
- ViewState提交后丢失,竟然是OnInit搞的鬼
- 11月1日至11日 全国处理快件47.76亿件
- 实验题目用正交多项式做小二乘曲线拟合
- 全自动与半自动手表的区别_半自动和全自动的区别在哪里?
- T61 拆机4短报警 续
- 语料库mysql_国内语料库建设一览表
- 机器学习笔记 - 使用Face recognition、OpenCV、Python进行人脸识别
- c语言flag跳出循环,四种方法跳出多层循环(return goto flag try)
- 卸载360天擎企业版需要密码
- SQL中的交叉连接-cross join
- 探访北大最AI的食堂!刷脸打饭,机器认识200多道菜
- Unity 用于控制摄像机的旋转、远近
- 使用cmd命令远程重启服务器
- POI删除Excel中数据有效性
- 在iOS应用中使用字体图标及制作字体库
- 2015年工作中遇到的问题:71-80,Tomcat-Redis-浮点数-HTTPS
- 【英语-基础词根词缀】