用ESP32在vscode使用PlatformPIO寫的程式碼。(程式碼是摺疊程式碼,不能一眼瞧見,我也不太會使用編輯器哈,剛寫博不久,望諒解。)
功能:esp32聯網,能夠通過聯網開啟在阿里雲平臺控制裝置線上狀態。我這個只是初步的能夠接入阿里雲。
一、我用的模組是ESP32-WROOM-32的開發板,什麼外設都沒接,就直接插入一根USB接電就行,小白也比較容易上手。
二、聯網的話,需要一些資訊,可以在阿里雲中裝置DeviceSecret檢視。
三、再連個熱點,電腦也可以提供熱點的,我也是孤陋寡聞,現在才知道。
四、其實這個esp32的框架是基於arduino的,所以說是可以調庫的。就改一下引數,然後傻瓜式的進行。
說這麼多,上程式碼。
點選檢視程式碼
#include <main.h>
static WiFiClient espClient;
AliyunIoTSDK iot;
void powerCallback(JsonVariant p);
void wifiInit(const char *ssid, const char *passphrase)
{
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, passphrase);
WiFi.setAutoConnect (true);
WiFi.setAutoReconnect (true);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("WiFi not Connect");
}
Serial.println("Connected to AP");
}
void setup()
{
Serial.begin(115200);
wifiInit(WIFI_SSID, WIFI_PASSWD);
AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);
// 繫結屬性回撥
AliyunIoTSDK::bindData("PowerSwitch", powerCallback);
}
unsigned long lastMsMain = 0;
void loop()
{
AliyunIoTSDK::loop();
if (millis() - lastMsMain >= 5000)
{
lastMsMain = millis();
// 傳送事件到阿里雲平臺
AliyunIoTSDK::sendEvent("xxx");
// 傳送模型屬性到阿里雲平臺
AliyunIoTSDK::send("temperature", 30);
}
}
void powerCallback(JsonVariant p)
{
int PowerSwitch = p["PowerSwitch"];
if (PowerSwitch == 1)
{
//
}
else
{
//
}
}
1.新增庫。
點開PIO螞蟻頭。
搜尋AliyunIoTSDK庫和PubSubClient庫。
然後我們複製example的時候,把標頭檔案的esp8266改為WiFi,不然會報錯。
還有就是它有個使用方法,記得按照他說的把一些引數改一下,一開始我就是因為引數值沒改,雖然下載成功了,但是卻連不上網,不能使裝置線上。
2.程式碼中有個temperature,那個是我定義的一個物理模型,temperature是它的識別符號,一定不能寫錯的。
不知道怎麼建立物理模型的自行百度,不難。
本人能力有限,如有不足歡迎指正。