ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ESP32+阿里云+vscode_Pio

2022-05-19 00:04:44  阅读:185  来源: 互联网

标签:代码 Pio vscode ESP32 WiFi 阿里 AliyunIoTSDK PowerSwitch void


用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
    {
        //
    }
}
这个就是主要的代码,很简单,把人家的example粘贴过来改一下就行。 有些地方要注意一下。

1.添加库。
点开PIO蚂蚁头。


搜索AliyunIoTSDK库和PubSubClient库。
然后我们复制example的时候,把头文件的esp8266改为WiFi,不然会报错。
还有就是它有个使用方法,记得按照他说的把一些参数改一下,一开始我就是因为参数值没改,虽然下载成功了,但是却连不上网,不能使设备在线。

2.代码中有个temperature,那个是我定义的一个物理模型,temperature是它的标识符,一定不能写错的。

不知道怎么建立物理模型的自行百度,不难。
本人能力有限,如有不足欢迎指正。

标签:代码,Pio,vscode,ESP32,WiFi,阿里,AliyunIoTSDK,PowerSwitch,void
来源: https://www.cnblogs.com/loremmoqi/p/16286862.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有