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

相关推荐

  • 微软官网如何win10镜像

    跟我一起,穿越时间! 不管是重装系统还是体验新系统,我们都离不开系统安装镜像,但是系统镜像的下载并不是那么容易,有很多人找不到下载官方原版系统的地方,那怎么办呢? 前几天我讲了如何…

    2023年 9月 28日
  • ios14屏幕设置装扮

    iOS14出来以后,大家都玩疯了! ■网友的设计灵感又一次被激发 / @黄馨瑶_ 都说这可能是苹果和安卓距离最近的一次了,屏幕页面都一毛一样的花里胡哨。 周到君怀着试一试的心态更新…

    2023年 6月 16日
  • idea安装配置教程

    IDEA简介 IDEA全称是IntelliJ,是JetBrains公司推出一个集成开发工具,是Java开发工具中的翘楚,基于这个开发工具可以快速开发我们的Java相关项目。相对于其…

    2023年 8月 14日
  • 淘宝店自运营淘抢购怎么开启

    能够报上淘抢购的产品,可以说一天的流量都够平时一年的流量了。作为淘宝卖家的你,怎么能错过这么大的流量呢? 相比天天特价等活动,淘抢购的门槛要高一些,但这并不意味着你就完全没有机会了…

    2023年 7月 31日
  • 如何让播放量提高(如何提高推荐量与播放量)

    1.以量取胜。 很多人会说,这算什么秘诀,这算什么技巧啊!但是我必须告诉你的是,最笨的方法往往是最牛逼的方法。 这个方法是我在看了一个专门做搬运视频的大号所受到的启发,这个大号每天…

    互联网 2023年 5月 12日
  • nba直播总决赛雄鹿对战太阳(雄鹿vs勇士1月14日字母哥)

    今日!CCTV5等5大平台直播NBA东西部领头羊对决,雄鹿VS掘金,字母哥PK约基奇 北京时间3月26日(今日)上午9时,2022-2023赛季美国职业篮球联赛(NBA)常规赛的一…

    2023年 4月 20日
  • 如何在服务器里借助iis搭建自己的网站

    通常开通服务器后,需要进行网站搭建,下面是windows2012、windows2008系统的操作方法,网站搭建前需要将域名解析到搭建的本机服务器ip,在哪里搞的域名就在哪里解析,…

    2023年 7月 16日
  • 5款自媒体文章排版编辑器分享(自媒体图文免费排版编辑)

    1,135编辑器。这个用惯了吧,操作比较简单。135编辑器是一个微信文章美化工具,操作简单方便,旨在提供丰富的样式,精美的模板。编辑文章时,就像拼积木一样,挑选样式,调整文字,搭配…

    2023年 6月 20日
  • 公众号怎么获得微信推荐增加更多流量呢

    昨天发的文章,刚一看阅读量马上破万了, 粉丝涨了100多个,而且还在持续增长中。。。 我去查了下后台数据,确认是因为这篇文章被系统推流了。 很多人都持悲观态度,并且最近还有很多人被…

    2023年 8月 14日
  • 年底了请注意你的支付宝积分(支付宝支付10000支付积分怎么算的)

    2018年的年底也快到了,小伙伴们支付宝里的积分也快到期了,千万别小看这积分,可以用积分兑换商品,还可以享受一些会员权益,还挺有意思的。 现在我们经常使用支付宝,成为了蚂蚁会员,但…

    2023年 6月 5日