• ESP32+阿里云+vscode_Pio


    用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是它的标识符,一定不能写错的。

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

  • 相关阅读:
    Spring Cloud都有哪些组件?
    网站whois查询易语言代码
    双端 Diff 算法原理解析及 snabbdom 简单实现
    WPF TreeView数据回填
    Python+selenium,轻松搭建Web自动化测试框架
    Cesium 展示——颜色使用汇总集合
    Ubuntu18.04双系统 + ROS Melodic + RoboRTS安装教程
    Fourier变换中的能量积分及其详细证明过程
    阿里面试官问我Redis该如何内存优化,这不有手就行?
    封装unordered_map和unordered_set
  • 原文地址:https://www.cnblogs.com/loremmoqi/p/16286862.html