arduino Uno+arduino D1 实现 阿里云物联网控制+IIC总线通信点灯
连线图
①由于arduino D1在Fritzinig中没找到,用一个arduino代替一下((ˉ▽ˉ;)…强行改名字)
②三块板子的SCL连在一起,SDA连在一起。

代码
主机代码(arduino D1):
#include <ESP8266WiFi.h>//安装esp8266arduino开发环境
#include <Wire.h> //声明I2C库文件
#include <AliyunIoTSDK.h>//引入阿里云 IoT SDK
//需要安装crypto库、PubSubClient库
static WiFiClient espClient;
//设置产品和设备的信息,从阿里云设备信息里查看
//物联网平台→实例概览→公共实例→设备管理→设备→查看→DeviceSecre(右边的查看)
#define PRODUCT_KEY "*********"//替换自己的PRODUCT_KEY
#define DEVICE_NAME "*********"//替换自己的DEVICE_NAME
#define DEVICE_SECRET "*********"//替换自己的DEVICE_SECRET
#define REGION_ID "cn-shanghai"//默认cn-shanghai
//设置连接WiFi信息
#define WIFI_SSID "*********"//自己的WIFI名称(热点同样)
#define WIFI_PASSWD "*********"//自己的WIFI密码
//-------------------------------------------------------------------------
unsigned long lastMsMain = 0;
char a; //从机LED1状态,用于发送到云平台
char b; //从机LED2状态,用于发送到云平台
//-------------------------------------------------------------------------
void setup()
{
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
//连接到wifi
wifiInit(WIFI_SSID, WIFI_PASSWD);
//初始化 iot,需传入 wifi 的 client,和设备产品信息
AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);
//绑定一个设备属性回调,当远程修改此属性,会触发LED函数
AliyunIoTSDK::bindData("LED", LED);//主机的板载LED
AliyunIoTSDK::bindData("LED1", LED1);//从机1的板载LED
AliyunIoTSDK::bindData("LED2", LED2);//从机2的板载LED
Wire.begin(); // 加入 i2c 总线,作为主机
}
//-------------------------------------------------------------------------
void loop()
{
AliyunIoTSDK::loop();//必要函数
if (millis() - lastMsMain >= 2000)//每2秒发送一次
{
lastMsMain = millis()

本文介绍了如何使用arduino Uno和D1通过IIC总线通信实现灯光控制,并结合阿里云物联网平台进行设备创建和在线调试。首先,详细说明了硬件连线图,然后提供了主机和从机的Arduino代码。接着,逐步指导了在阿里云物联网平台上创建产品、设备的过程,并利用在线调试功能验证设备连接。最后,提到了使用IoT Studio进行阿里云web可视化的初步步骤。
最低0.47元/天 解锁文章
3564





