概述
最近工作需要,接触了一下ESP32,这次记录下自己的学习过程
内容和esp8266接入阿里云差不多。可以参考->ESP8266接入阿里云
还是复制三元组(三元组别复制我的哈),复制我的代码就行了。
说明:任何ESP32系列都可以。
就更改这3样就好了。
下面附带详细代码
main.h
#include <WiFi.h>
#include <Wire.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include "aliyun_mqtt.h"
#define SENSOR_PIN 10
//以下信息需要自己修改
#define WIFI_SSID "AA"//替换自己的WIFI
#define WIFI_PASSWD "22223333"//替换自己的WIFI
#define PRODUCT_KEY "a1rpMDX42C5" //替换自己的PRODUCT_KEY
#define DEVICE_NAME "wendu" //替换自己的DEVICE_NAME
#define DEVICE_SECRET "4b2e2205a07f4184f35ee5f959c184fe"//替换自己的DEVICE_SECRET
//以下不需修改
#define DEV_VERSION "S-TH-WIFI-v1.0-20190220" //固件版本信息
#define ALINK_BODY_FORMAT "{"id":"123","version":"1.0","method":"%s","params":%s}"
#define ALINK_TOPIC_PROP_POST "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post"
#define ALINK_TOPIC_PROP_POSTRSP "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post_reply"
#define ALINK_TOPIC_PROP_SET "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/service/property/set"
#define ALINK_METHOD_PROP_POST "thing.event.property.post"
#define ALINK_TOPIC_DEV_INFO "/ota/device/inform/" PRODUCT_KEY "/" DEVICE_NAME ""
#define ALINK_VERSION_FROMA "{"id": 123,"params": {"version": "%s"}}"
unsigned long lastMs = 0;
WiFiClient espClient;
PubSubClient mqttClient(espClient);
void init_wifi(const char *ssid, const char *password)
{
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
Serial.println("WiFi does not connect, try again ...");
delay(500);
}
Serial.println("Wifi is connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void mqtt_callback(char *topic, byte *payload, unsigned int length)
{
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
payload[length] = '