本篇使用arduino实现esp8266ESP8266模块连接WiFi,并与阿里云建立连接。
一、arduino配置esp8266开发环境
首先下载好arduino,我选择的版本是arduino IDE 2.3.2。下载好安装包后直接安装,有个USB驱动选项记得看看选了没有,一般默认是选了。
然后在文件-首选项-开发板管理器地址,添上下面的网址。
http://arduino.esp8266.com/stable/package_esp8266com_index.json
打开工具–开发板-开发板管理器,搜索esp或esp8266,然后选择版本,安装。
下载完成后,开发板管理器会有esp8266的选项,找到你需要的那一款。将esp8266连接到电脑上,端口也选择其对应的。
二、编写程序
本程序使用的头文件如下:
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
#include <AliyunIoTSDK.h>
连接物联网平台的代码:
#define PRODUCT_KEY "xxxx"//请用自己的参数替换
#define DEVICE_NAME "xxx"//请用自己的参数替换
#define DEVICE_SECRET "xxxx"//请用自己的参数替换
#define REGION_ID "cn-shanghai"
连接WiFi的代码
#define WIFI_SSID "xxxx"//请用自己的参数替换
#define WIFI_PASSWD "xxxxx"//请用自己的参数替换
wifi_Init初始化
void wifiInit(const char *ssid, const char *passphrase)
{
WiFi.mode(WIFI_STA);//esp8266工作模式为无线终端模式
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 powerCallback(JsonVariant p)
{
int PowerSwitch = p["OF"];
if (PowerSwitch == 1)
{
//看是否会响应云平台的内容
Serial.println("OF=1 ");
digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level
AliyunIoTSDK::send("OF", 1);
}
else
{
//是否会响应平台的内容
Serial.println("OF=0");
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH
AliyunIoTSDK::send("OF", 0);
}
}
程序写好后编译并上传。
三、测试
esp8266成功连接WiFi和阿里云后,平台会显示设备在线。选择在线调试,通过手动开关,观察小灯是否按要求执行。