v2电机连接天猫精灵

arudino源码如下:

#include <ESP8266WiFi.h>//默认,加载WIFI头文件

#include "PubSubClient.h"//默认,加载MQTT库文件,mqtt库可以在库管理器直接下载

const char* ssid = "fangguanju"; //修改,修改为你的路由的WIFI名字

const char* password = "xxzxccgt"; //修改为你的WIFI密码

const char* mqtt_server = "bemfa.com"; //默认,MQTT服务器地址

const int mqtt_server_port = 9501; //默认,MQTT服务器端口

#define ID_MQTT "xxxxxxxx" //mqtt客户端ID,修改为你的开发者密钥

const char * dhttopic = "led002"; //主题名字,可在巴法云mqtt控制台创建,尾号002为灯

int B_led = LED_BUILTIN; //控制的led引脚

long timeval = 3 * 1000; //上传的传感器时间间隔,默认3秒

int ENV_D7 = D7 ; // L298N ENV gpio

int M_D1 = D1; // L298N_IN1 + ESP_D1

int M_D2 = D2; // L298N_IN2 + ESP_D2

String ledstatus = "off";//led状态默认off

long lastMsg = 0;//时间戳

//SimpleDHT11 dht11(pinDHT11);//dht11初始化

WiFiClient espClient;

PubSubClient client(espClient);//mqtt初始化

//灯光函数及引脚定义

void turnOnLed();

void turnOffLed();

void setup_wifi() {

delay(10);

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 connected");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());

// 设置gpio 为输出模式

pinMode(ENV_D7,OUTPUT);

pinMode(M_D1, OUTPUT);

pinMode(M_D2, OUTPUT);

// 初始化引脚为低电平

digitalWrite(ENV_D7, LOW);

digitalWrite(M_D1, LOW);

digitalWrite(M_D2, LOW);

}

void turnup()

{

analogWrite(ENV_D7, 100);

digitalWrite(M_D1, HIGH);

digitalWrite(M_D2, LOW);

ledstatus="on";

String msg = "#" + ledstatus; //数据封装#温度#湿度#开关状态#

client.publish(dhttopic, msg.c_str());//数据上传

}

void turndown()

{

analogWrite(ENV_D7, 100);

digitalWrite(M_D1, LOW);

digitalWrite(M_D2, HIGH);

ledstatus="off";

String msg = "#" + ledstatus; //数据封装#温度#湿度#开关状态#

client.publish(dhttopic, msg.c_str());//数据上传

}

void callback(char* topic, byte* payload, unsigned int length) {

Serial.print("Message arrived [");

Serial.print(topic);

Serial.print("] ");

String Mqtt_Buff = "";

for (int i = 0; i < length; i++) {

Mqtt_Buff += (char)payload[i];

}

Serial.print(Mqtt_Buff);

Serial.println();

// Switch on the LED if an 1 was received as first character

if (Mqtt_Buff == "on") {//如果接收字符on,亮灯

//turnOnLed();//开灯函数

turnup();

} else if (Mqtt_Buff == "off") {//如果接收字符off,亮灯

//turnOffLed();//关灯函数

turndown();

} else if (Mqtt_Buff == "up") {//如果接收字符off,亮灯

turnup();//关灯函数

}

else if (Mqtt_Buff == "down") {//如果接收字符off,亮灯

turndown();//关灯函数

}

else if (Mqtt_Buff == "on#off") {//如果接收字符off,亮灯

turnup();//关灯函数

}

else if (Mqtt_Buff == "off#on") {//如果接收字符off,亮灯

turndown();//关灯函数

}

Mqtt_Buff = "";

}

void reconnect() {

// Loop until we're reconnected

while (!client.connected()) {

Serial.print("Attempting MQTT connection…");

// Attempt to connect

if (client.connect(ID_MQTT)) {//连接mqtt

Serial.println("connected");

client.subscribe(dhttopic);//修改,修改为你的主题

} else {

Serial.print("failed, rc=");

Serial.print(client.state());

Serial.println(" try again in 5 seconds");

// Wait 5 seconds before retrying

delay(5000);

}

}

}

void setup() {

pinMode(B_led, OUTPUT);

Serial.begin(115200);

setup_wifi();

client.setServer(mqtt_server, mqtt_server_port);

client.setCallback(callback);

digitalWrite(B_led, HIGH);

}

void loop() {

if (!client.connected()) {//判断mqtt是否连接

reconnect();

}

client.loop();//mqtt客户端

long now = millis();//获取当前时间戳

if (now – lastMsg > timeval) {//如果达到3s,进行数据上传

lastMsg = now;

String msg = "#" + ledstatus; //数据封装#温度#湿度#开关状态#

client.publish(dhttopic, msg.c_str());//数据上传

}

}

//打开灯泡

void turnOnLed() {

ledstatus = "on";

Serial.println("turn on light");

digitalWrite(B_led, LOW);

String msg = "#" + ledstatus; //数据封装#温度#湿度#开关状态#

client.publish(dhttopic, msg.c_str());//数据上传

}

//关闭灯泡

void turnOffLed() {

ledstatus = "off";

Serial.println("turn off light");

digitalWrite(B_led, HIGH);

analogWrite(ENV_D7, 0);

digitalWrite(M_D1, LOW);

digitalWrite(M_D2, LOW);

String msg = "#" + ledstatus; //数据封装#温度#湿度#开关状态#

client.publish(dhttopic, msg.c_str());//数据上传

}

//源码结束

esp8266l298n控制电机连接天猫精灵

巴法云登录后可以创建mqtt云,创建主题后可以和esp8266通讯,在天猫精灵app中可以关联巴法云,里面就会有你建立的主题了。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 9月 10日 下午12:31
下一篇 2023年 9月 10日 下午12:44

相关推荐

  • windows 无法连接到此网络

    试图连接到网络时遇到错误?不要担心,并执行这些简单有效的解决办法。 在过去的几年里,计算机和互联网已经成为同义词。每当你打开电脑,你首先要检查的是你是否连接到了互联网。然而,许多用…

    2023年 6月 14日
  • 常用的8个大数据分析工具整理,大数据分析常用的三个方法

    昨天晚上在《空白市场引爆点》课程中提到了三个方法来快速寻找没有竞争的空白领域。 其中一个方法就是要用大数据分析,视频直播课程讲的过程中,不同的人可能只记住了一部分,这里我把课程中提…

    2023年 5月 14日
  • QQ截图竟能做到这9件事!这就是传说中的办公神器吧!长知识了

    QQ其实是一款办公神器这件事你们知道吗?它不仅可以永久地保存群文件,截图工具也是非常好用的,无论是学习还是工作的时候,我打开电脑之后总是会登录QQ,就是为了使用它的截图工具。 平常…

    2023年 1月 9日
  • 一个手机号可以申请两个微信号码怎么申请

    微信近日发布功能更新消息 冲上了热搜 将允许用户 在无需额外手机号的情况下 该功能虽未正式上线 但近期内测名额范围正在陆续扩大相关话题登上热搜榜具体操作如下:点“微信-我-设置”,…

    2023年 4月 13日
  • 如何测试已被别人删除微信好友,怎么快速验证微信好友是否被删除

    Hello!大家好啊,这里是每天分享一点办公技巧的的小F! 微信是我们平时用得最多的社交软件,在工作生活中经常使用微信联系朋友、同事、亲人,但是有时候我们给好久没有联系的朋友发消息…

    2023年 5月 19日
  • 微博app使用教程

    微桌面app是一款专门为Android用户设计的桌面替换软件,由原来的qq桌面升级而来的,能够支持自定义主题、海量应用搜索与下载,帮你轻松找到称心的主题,让你不再为管理越来越多的a…

    2023年 9月 27日
  • 怎么用手机在电脑上打字,怎么在手机上玩电脑游戏

    有的朋友工作中需要用到电脑,但是电脑上用键盘打字不熟练,耽误时间,那该怎么办? 有两种方法,第一种是买一块手写板,连接上电脑,优点是使用方法很简单,缺点是打字速度太慢。 还有种方法…

    2023年 4月 5日
  • 电脑同时登录两个微信的快捷方法

    电脑上怎么登两个微信?微信是我们平时交流办公最常用的通讯程序之一,很多用户为了区分生活和工作,都会申请两个账号,那么接下来问题来了,一台电脑上怎么登录两个微信呢?别急,下面就让小编…

    2023年 4月 4日
  • 家人如何共享医保账户,医保亲情绑定个人承诺书怎么写

    家人参加居民医保没有职工医保个人账户,到药店买药无法刷医保个人账户怎么办?随着广东“门诊共济”改革逐项落地,职工医保参保人与家人绑定“亲情账号”也能共同享受到相关医保权益啦。近期,…

    互联网 2023年 4月 16日
  • 网页上的无法怎么办

    如果您在从网页下载视频时遇到问题,可以尝试以下几种方法: 检查您的互联网连接:确保您的互联网连接稳定且快速,因为缓慢或断断续续的连接会影响您下载视频的能力。 使用不同的浏览器:尝试…

    2023年 8月 29日