基于Arduino环境的ESP32连接阿里云程序

这是我第一次发布文章,还请大家多多支持小李!
这里我给大家分享的是基于Arduino环境下如何使用ESP32的开发板连接阿里云。
话不多说,阿里云物联网的设备注册那些问题已经有其他博主讲过,我这里引用一下这位优秀博主的文章,大家学会变通就行。
添加链接描述
前半部分已经教大家如何在阿里云创建自己的物联网设备了,我们程序要改的地方是下图标注红色的这里很重要!
很重要!!!!
很重要!!!!
很重要!!!!

在这里插入图片描述
在这里插入图片描述
这里两个对应程序需要修改否则导致连接不上。
下面直接上程序:
#include<WiFi.h>
#include<PubSubClient.h>
上面这两个头文件没有的话自己在Arduino IDE库管理下载
下面还有一个坑记得看完!

#include<WiFi.h>
#include<PubSubClient.h>
 
const char* ssid ="nova";//wifi名
const char*password ="12345678";//wifi密码
const char*mqttHostUrl = "a1WZaCEwkny.iot-as-mqtt.cn-shanghai.aliyuncs.com";//阿里云服务器域名
const int mqttPort =1883;//端口号
const char*mqttUser = "DianCan&a1WZaCEwkny";//username
const char*mqttPassword = "eb6e1c9038df6f972369b509c30da93f7ec5f06445edc869f4883d135ab66f44";//密钥
const char*clientId = "a1WZaCEwkny.DianCan|securemode=2,signmethod=hmacsha256,timestamp=1681216576659|" ;//连接id

#define PRODUCT_KEY       "a1WZaCEwkny"
#define DEVICE_NAME       "DianCan"
//下面组包用
#define ALINK_BODY_FORMAT         "{\"id\":\"level\",\"version\":\"1.0\",\"method\":\"thing.event.property.post\",\"params\":%s}"
#define ALINK_TOPIC_PROP_POST     "/sys/"PRODUCT_KEY"/"DEVICE_NAME"/thing/event/property/post"
 
unsigned long lastMs = 0;

WiFiClient espClient;
PubSubClient client(espClient);


//连接wifi
void wifiInit()
{
  WiFi.begin(ssid,password);
  while (WiFi.status()!= WL_CONNECTED) {
    delay(500);
    Serial.println("Connectingto WiFi..");
  }
     Serial.println("Connectedto the WiFi network"); 
}


//mqtt连接
void mqttCheckConnect()
{
   client.setServer(mqttHostUrl,mqttPort);
  while (!client.connected()){
    Serial.println("Connectingto MQTT...");
    if (client.connect(clientId,mqttUser, mqttPassword )) {
      Serial.println("connected");
    }else {
      Serial.print("failedwith state ");
      Serial.print(client.state());
      delay(2000);
    }
  }

}


//组数据帧并发送
void mqttIntervalPost()
{
    char param[32];
    char jsonBuf[128];
      
    sprintf(param, "{\"num8\":%d}", 9);
    sprintf(jsonBuf, ALINK_BODY_FORMAT, param);
    
    Serial.println(jsonBuf);
    client.publish(ALINK_TOPIC_PROP_POST, jsonBuf);
 
   
}


void setup() {
  Serial.begin(115200);
  wifiInit();//连接wifi
  mqttCheckConnect();//连接阿里云
}
 
void loop() {
  client.loop();
 
  if (millis() - lastMs >= 5000)
    {//定时检查或上报数据
        lastMs = millis();
        mqttCheckConnect(); 
        // 上报 
        mqttIntervalPost();
    }
}

程序的相应地方改完还不行会报错,2 这是他的一个状态具体方法是:
打开IDE首选项查看这个路径
在这里插入图片描述
然后在你电脑搜索出来,进去有一个libraries文件,进去之后上面你下载过的头文件在里面,找到文件PubSubClient,打开里面.h文件
修改两个宏:
MQTT_MAX_PACKET_SIZE 1024;
MQTT_KEEPALIVE 60;
保存之后就可以正常链接了,有问题评论区见!
感谢支持!

  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
arduino是一种电子积木,适合入门硬件开发。arduino的编程简单,IDE功能强大,支持的开发板和功能库文件丰富,还有全球无数的贡献者不停地完善整个软硬件生态,所以吸引了许多国家无数的开发群体。arduino能开发物联网吗?答案是“相当能”。本课程就以arduino体系中支持的一款价格便宜、开发简便的开发板---wemos d1为硬件平台,带您一步步入门物联网开发。物联网开发肯定需要一个云平台,本课程推荐您用阿里云物联网平台,它运行可靠,功能丰富,开发简便,非常适合物联网知识的学习。有许多同学愿意使用“一键式”“无代码式”的开发平台,在此本课程并不推荐,因为学习的知识越多,对大家应对未来挑战的能力越有帮助。从入门角度而言,以arduino的编程方式,链接高大上的阿里云物联网平台,就成为了一种有易学、有趣、专业的组合。通过本课程的学习,您将学习到arduino的基本操作、硬件资源介绍、阿里云物联网平台使用基础、mqtt通信基础、阿里云物联网平台库文件介绍、一个物联网小灯实例、以及IoT Studio的基本知识。学完本课程之后,您将学会使用ESP8266开发简单的物联网硬件。  而开发方式是非常简单的arduino方式,这种方式相比esp-idf等命令行方式要易学不少,但是对物联网学习的深刻程度比esp-idf一点不次。     本视频使用到的零件与淘宝上大致价格:   wemos d1开发板,大约20元或者esp8266小黑板  大约20元 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值