ESP8266/ESP32 NodeMCU接入阿里云物联网平台

这篇具有很好参考价值的文章主要介绍了ESP8266/ESP32 NodeMCU接入阿里云物联网平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

阿里云物联网平台公共实例是免费的,且不像然也等服务器一样无法区分不同用户发布的话题。本文采用常规的pubsubclient库连接阿里云。ESP8266/ESP32用pubsubclient接入阿里云平台截至写稿的现在,网上有的资源较少,现在我就来介绍一下使用方法

1.登录阿里云官网https://www.aliyun.com/

登录并搜索物联网平台,点击按钮开通公共实例,公共实例开通需要两分钟左右

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

2.在等待期间可在arduinoIDE,安装PubSubClient库用于MQTT通讯。

官网地址:https://pubsubclient.knolleary.net/

GitHub:https://github.com/knolleary/pubsubclient/

百度网盘下载: https://pan.baidu.com/s/12MHGbdfiOdwOGip5RMSSEQ 提取码: sizy

下载完成后,通过arduinoIDE 项目->包含库->添加.zip库找到安装包存放目录并添加

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

3.此时阿里云物联网平台已开通,点击进入公共实例,并按以下步骤创建产品

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

4.单击创建产品后,可设置如下参数,然后点击确定,创建完成

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

5.点击左侧导航栏设备标题进入并创建设备,选择产品位刚刚创建的产品名称,确认添加

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

6.在设备列表里点击查看,查看添加设备的参数,点击查看MQTT参数然后复制

要在代码中修改的参数分别为第7步的8,58,59,60行

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

7.左侧产品导航栏,进入topic类列表,点击自定义topic,这里的topic能在平台日志上查阅

点击复制update那一行的话题,填入第7步的81行,并修改其中参数为自己的devicename

/+/${deviceName}/user/update

这里的话题因人而异,请去自己账号复制

8.打开arduinoIDE将代码复制到IDE中,这里采用了太极创客的代码,并为了接入阿里云做了修改

太极创客MQTT教程:http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-tuttorial/mqtt-tutorial/esp8266-publish-mqtt/

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <Ticker.h>

// 设置wifi接入信息(请根据您的WiFi信息进行修改)
const char* ssid = "路由器名称";
const char* password = "路由器密码";
const char* mqttServer = "mqttHostUrl";  //*MQTT连接参数你的设备登陆网址*//

// 如以上MQTT服务器无法正常连接,请前往以下页面寻找解决方案
// http://www.taichi-maker.com/public-mqtt-broker/

Ticker ticker;
WiFiClient wifiClient;
PubSubClient mqttClient(wifiClient);

int count;    // Ticker计数用变量

void setup() {
  Serial.begin(9600);
  
  //设置ESP8266工作模式为无线终端模式
  WiFi.mode(WIFI_STA);
  
  // 连接WiFi
  connectWifi();
  
  // 设置MQTT服务器和端口号
  mqttClient.setServer(mqttServer, 1883);

  // 连接MQTT服务器
  connectMQTTServer();

  // Ticker定时对象
  ticker.attach(1, tickerCount);  
}

void loop() { 
  if (mqttClient.connected()) { // 如果开发板成功连接服务器
    // 每隔3秒钟发布一次信息
    if (count >= 3){
      pubMQTTmsg();
      count = 0;
    }    
    // 保持心跳
    mqttClient.loop();
  } else {                  // 如果开发板未能成功连接服务器
    connectMQTTServer();    // 则尝试连接服务器
  }
}

void tickerCount(){
  count++;
}

void connectMQTTServer(){
  // 根据ESP8266的MAC地址生成客户端ID(避免与其它ESP8266的客户端ID重名)
  String clientId = "clientId";   //*这里的字符串要与自己的设备MQTT参数相同*//
  String user = "username";
  String password = "password";

  // 连接MQTT服务器,原代码仅传clientid,通过查阅pubsubclient.cpp可发现多个connect重载
  if (mqttClient.connect(clientId.c_str(),user.c_str(),password.c_str())) { 
    Serial.println("MQTT Server Connected.");
    Serial.println("Server Address: ");
    Serial.println(mqttServer);
    Serial.println("ClientId:");
    Serial.println(clientId);
  } else {
    Serial.print("MQTT Server Connect Failed. Client State:");
    Serial.println(mqttClient.state());
    delay(3000);
  }   
}

// 发布信息
void pubMQTTmsg(){
  static int value; // 客户端发布信息用数字

  // 确保不同用户进行MQTT信息发布时,ESP8266客户端名称各不相同,
  String topicString = "topic话题名称";//更改自己的devicename
  char publishTopic[topicString.length() + 1];  
  strcpy(publishTopic, topicString.c_str());

  // 建立发布信息。信息内容以Hello World为起始,后面添加发布次数。
  String messageString = "Hello World " + String(value++); 
  char publishMsg[messageString.length() + 1];   
  strcpy(publishMsg, messageString.c_str());
  
  // 实现ESP8266向主题发布信息
  if(mqttClient.publish(publishTopic, publishMsg)){
    Serial.println("Publish Topic:");Serial.println(publishTopic);
    Serial.println("Publish message:");Serial.println(publishMsg);    
  } else {
    Serial.println("Message Publish Failed."); 
  }
}

// ESP8266连接wifi
void connectWifi(){

  WiFi.begin(ssid, password);
 
  //等待WiFi连接,成功连接后输出成功信息
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi Connected!");  
  Serial.println(""); 
}

9.下载置esp8266/esp32开发板,打开串口助手,有些同学会发现“MQTT Server Connect Failed. Client State:2”的错误

参考大神的方法:https://ieeee.blog.csdn.net/article/details/118441704

1.将链接的路由器信号从5GHz设置成2.4GHz

2.修改库pubsubclient.h头文件的参数

这里采用了第二种方法。

a.找到arduinoIDE目录下的libraries文件夹默认位置在 /我的文档/arduino/pubsubclient-版本号/src打开并求改pubsubclient.h头文件,找到MQTT_MAX_PACKET_SIZE,将256修改为1024,再找到MQTT_KEEPALIVE,将15修改为60

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

b.再次下载程序至开发板,问题解决并在串口助手中输出一下信息,此时开发板已经连接上了阿里物联网平台,并定时向服务器中的topic发布hello world

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

10.物联网平台打开设备,并查看日志,发现话题中已经有消息输入了

esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档
esp8266可以连接哪个物联网平台,阿里云,物联网,云计算,iot,Powered by 金山文档

总结:至此,esp8266 nodemcu接入阿里物联网平台方法介绍完毕,接入的关键是阿里云物联网平台的使用以及对arduino库函数的修改。本文采用的参考方法均已给出网址,请大家自行参阅。文章来源地址https://www.toymoban.com/news/detail-784629.html

到了这里,关于ESP8266/ESP32 NodeMCU接入阿里云物联网平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32+ESP8266+APP连接阿里云监测环境温湿度系列笔记1:阿里云物联网平台配置及数据上传

            在数据传递过程中阿里云物联网平台相当于服务器,ESP8266为客户端,通过路由器连接服务器时需要在物联网平台创建设备,具体过程如下: 1. 首先 在物联网平台创建公共实例,并点击进入, 图1 2.可见设备接入物联网平台的整体流程如图2中红色方框所示, 接下

    2024年02月04日
    浏览(39)
  • 【ESP-01S / ESP8266 AT指令连接阿里云物联网平台】

    关注+星标 公众号,不错过精彩内容 作者 | MakingClub 微信公众号 | electronic造物实验室 注册阿里云账号并搜索物联网服务。选择并进入物联网平台产品页。 点击管理控制台,进入物联网平台管理界面。 选择公共实例(如果尚未开通,需要先进行开通,具体步骤不再赘述),然

    2024年02月07日
    浏览(40)
  • STM32 标准库+ESP8266+华为云物联网平台

    文章内容:     STM32标准库通过串口发送AT指令完成与ESP8266的控制实现接入华为云物联网平台,并完成基本通信与控制,包括设备属性上报和命令下发解析与响应,并将相关代码打包成HuaweiIOT_at_esp8266.c和HuaweiIOT_at_esp8266.h驱动文件。 一、华为云物联网平台 创建 产品与设备

    2024年02月12日
    浏览(40)
  • STM32 HAL库+ESP8266+华为云物联网平台

    文章内容:     STM32 HAL库通过串口发送AT指令完成与ESP8266的控制实现接入华为云物联网平台,并完成基本通信与控制,包括设备属性上报和命令下发解析与响应。     文末获取 “STM32 HAL库+ESP8266+华为云物联网平台keil工程 ”下载的链接。 一、华为云物联网平台 创建 产品

    2024年02月14日
    浏览(39)
  • STM32、ESP8266与MQTT连接阿里云物联网的串口通信异常解析

    STM32、ESP8266与MQTT协议连接阿里云物联网平台时常见的串口通信异常介绍 在构建物联网应用时,STM32、ESP8266与MQTT协议的结合是实现设备与网络间稳定通信的关键。然而,在连接阿里云物联网平台的过程中,串口通信异常成为了一个常见的挑战。本文将探讨这些异常现象及其可

    2024年04月22日
    浏览(30)
  • 物联网点灯项目:阿里云物联网平台+ESP32IDF+uniapp

    首先看效果(不太清晰)   视频演示效果 其次我讲一下大概的实现过程:前端用uniapp,(后来软工学长告诉我如果不是跨端开发的话完全可以不用uniapp,如果你要开发微信小程序就用微信开发者工具,如果你要开发移动端app就用安卓studio,因为我是自己琢磨的,当时只知道

    2024年01月21日
    浏览(34)
  • STM32+ESP8266(AT固件)连接阿里云物联网 保姆级教学(附代码)--1.创建产品和设备

    提示:这里是从实际应用如何使用教学配置,未从原理讲解,适合小白从零开始到成功,比较有成就感 STM32+ESP8266(AT固件)连接阿里云物联网系列保姆级教学 1. 创建产品和设备 2. 设置产品Topic数据和功能定义设备物模型数据显示 3. 硬件连接+代码修改 4. Web数据可视化 5.功能

    2024年04月25日
    浏览(59)
  • 【代码分享】ESP32接入华为云物联网平台完成属性定时上报(Arduino IDE开发)

    更多相关:华为云IOT物联网 论坛  之前带着大家写过使用esp8266接入华为云物联网平台的教程,有小伙伴后台私信,在ESP32接入华为云时遇到了问题,ESP32和ESP8266的代码几乎差不多的,ESP8266代码中用了“ESP8266.h”开发;ESP32可以直接用“WIFI.h”开发,教程基本和esp8266的那期教

    2024年02月13日
    浏览(39)
  • STM32+ESP8266(AT固件)连接阿里云物联网 保姆级教学(附代码)--4. Web数据可视化

    提示:这里是从实际应用如何使用教学配置,未从原理讲解,适合小白从零开始到成功,比较有成就感 STM32+ESP8266(AT固件)连接阿里云物联网系列保姆级教学 1. 创建产品和设备 2. 设置产品Topic数据和功能定义设备物模型数据显示 3. 硬件连接+代码修改 4. Web数据可视化 5.功能

    2024年04月10日
    浏览(38)
  • STM32+ESP8266(AT固件)连接阿里云物联网 保姆级教学(附代码) --3. STM32硬件连接+keil代码修改

    提示:这里是从实际应用如何使用教学配置,未从原理讲解,适合小白从零开始到成功,比较有成就感 STM32+ESP8266(AT固件)连接阿里云物联网系列保姆级教学 1. 创建产品和设备 2. 设置产品Topic数据和功能定义设备物模型数据显示 3. 硬件连接+代码修改 4. Web数据可视化 5.功能

    2024年02月05日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包