0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现用Arduino通过ESP8266连接机智云物联网平台?

9GxC_IoTMaker 来源:机智云开发者 作者:机智云开发者 2021-01-06 11:55 次阅读

本文实现Arduino UNO R3通过ESP8266-01模块连接机智云平台,从而实现用手机APP远程点亮LED灯。

ESP8266模块本地调试

1

当我们参考机智云官网给的教程时,关于Arduino平台主要都是关于机智云官方自己的开发板Gokit资料。但当我们只使用Arduino UNO R3接入机智云平台,有很多教程通过添加了两个按键来选择airlink和softap模式,其实我们只要在本地给ESP8266配好了网络连接,就不需要每次通过按键切换配网模式。

第一步:首先在官网下载机智云固件GAgent,

6469d834-4f98-11eb-8b86-12bb97331649.jpg

第二步:使用ESP8266下载工具ESPFlashDownloadTool,将固件下载至ESP8266中。

64c1b8c4-4f98-11eb-8b86-12bb97331649.png

第三步:在机智云官网下载机智云串口调试助手,

650806ee-4f98-11eb-8b86-12bb97331649.jpg

将ESP8266通过串口转USB工具插在电脑上,安装好驱动,选择中确的驱动后,打开串口,填入在官网申请的product_key和Product Secret后,就能在右边看见数据点了,此时再打开指令界面,点击AirLink命令,ESP8266就进入了自动配网模式;

第四步:下载机智云移动端APP

65586d8c-4f98-11eb-8b86-12bb97331649.jpg

打开APP,点击一键配置,输入家里的WiFi账号及密码,选择乐鑫,因为刚才我们已经将ESP8266设置成AirLink透传模式,现在通过APP就可以将家里的WiFi信息发送给ESP8266,此时APP发现新设备下会出现你的WiFi模组,点击后就会看到你定义的数据点了。

硬件搭建

2

2.1硬件连接图

659dd7aa-4f98-11eb-8b86-12bb97331649.jpg

LED接上220欧姆电阻,连在Arduino的D4上,ESP8266CH-PD和vcc都接高电平。

注意:

在给Arduino烧录程序的时候要断开ESP8266与Arduino的串口连接,否则会有干扰导致代码烧录不成功;

ESP8266-01只能供给3.3v电压,5v电压可能会烧坏WiFi模组

2.2项目源码

#include

#include

#include

int ledPin = 13; // LED connected to digital pin 13,it's used for status

int myledPin = 4; // my LED connected to digital pin 4

int sensorValue = 0; // value read from the pot

bool varR_LED_OnOff = 0;

Gizwits myGizwits;

#define KEY1 6

#define KEY2 7

#define KEY1_SHORT_PRESS 1

#define KEY1_LONG_PRESS 2

#define KEY2_SHORT_PRESS 4

#define KEY2_LONG_PRESS 8

#define NO_KEY 0

#define KEY_LONG_TIMER 3

unsignedlongLast_KeyTime= 0;

unsignedlong gokit_time_s(void)

{

return millis() / 1000;

}

char gokit_key1down(void)

{

unsignedlong keep_time = 0;

if(digitalRead(KEY1) == LOW)

{

delay(100);

if(digitalRead(KEY1) == LOW)

{

keep_time = gokit_time_s();

while(digitalRead(KEY1) == LOW)

{

if((gokit_time_s() - keep_time) > KEY_LONG_TIMER)

{

Last_KeyTime= gokit_time_s();

return KEY1_LONG_PRESS;

}

} //until open the key

if((gokit_time_s() - Last_KeyTime) > KEY_LONG_TIMER)

{

return KEY1_SHORT_PRESS;

}

return0;

}

return0;

}

return0;

}

char gokit_key2down(void)

{

intunsignedlong keep_time = 0;

if(digitalRead(KEY2) == LOW)

{

delay(100);

if(digitalRead(KEY2) == LOW)

{

keep_time = gokit_time_s();

while(digitalRead(KEY2) == LOW) //until open the key

{

if((gokit_time_s() - keep_time) > KEY_LONG_TIMER)

{

Last_KeyTime= gokit_time_s();

return KEY2_LONG_PRESS;

}

}

if((gokit_time_s() - Last_KeyTime) > KEY_LONG_TIMER)

{

return KEY2_SHORT_PRESS;

}

return0;

}

return0;

}

return0;

}

/*******************************************************

* function : gokit_keydown

* Description : check the gokit key1 or key2 event

* return : KEY1_LONG_PRESS KEY1_SHORT_PRESS

* KEY2_LONG_PRESS KEY2_SHORT_PRESS

* 0-no keydown event.

* Add by Alex.lin --2014-12-25

******************************************************/

char gokit_keydown(void)

{

char ret = 0;

ret |= gokit_key2down();

ret |= gokit_key1down();

return ret;

}

void KEY_Handle(void)

{

/* Press for over than 3 second is Long Press */

switch(gokit_keydown())

{

case KEY1_SHORT_PRESS:

// Serial.println(F("KEY1_SHORT_PRESS , Production Test Mode "));

myGizwits.setBindMode(WIFI_PRODUCTION_TEST);

break;

case KEY1_LONG_PRESS:

// Serial.println(F("KEY1_LONG_PRESS ,Wifi Reset"));

myGizwits.setBindMode(WIFI_RESET_MODE);

break;

case KEY2_SHORT_PRESS:

// Serial.println(F("KEY2_SHORT_PRESS Soft AP mode"));

myGizwits.setBindMode(WIFI_SOFTAP_MODE);

//Soft AP mode

break;

case KEY2_LONG_PRESS:

// Serial.println(F("KEY2_LONG_PRESS ,AirLink mode"));

digitalWrite(ledPin, HIGH); // sets the LED on

myGizwits.setBindMode(WIFI_AIRLINK_MODE);

//AirLink mode

break;

default:

break;

}

}

void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

pinMode(ledPin, OUTPUT); // sets the digital pin as output

pinMode(myledPin, OUTPUT); // sets the digital pin as output

pinMode(KEY1, INPUT_PULLUP);

pinMode(KEY2, INPUT_PULLUP);

myGizwits.begin();

}

void wifiStatusHandle()

{

// if(myGizwits.wifiHasBeenSet(WIFI_SOFTAP))

// Serial.println(F("WIFI_SOFTAP!"));

//

// if(myGizwits.wifiHasBeenSet(WIFI_AIRLINK))

// Serial.println(F("WIFI_AIRLINK!"));

//

// if(myGizwits.wifiHasBeenSet(WIFI_STATION))

// Serial.println(F("WIFI_STATION!"));

//

if(myGizwits.wifiHasBeenSet(WIFI_CON_ROUTER))

digitalWrite(ledPin, LOW); // sets the LED off

// Serial.println(F("WIFI_CON_ROUTER!"));

//

// if(myGizwits.wifiHasBeenSet(WIFI_DISCON_ROUTER))

// Serial.println(F("WIFI_DISCON_ROUTER!"));

//

// if(myGizwits.wifiHasBeenSet(WIFI_CON_M2M))

// Serial.println(F("WIFI_CON_M2M!"));

//

// if(myGizwits.wifiHasBeenSet(WIFI_DISCON_M2M))

// Serial.println(F("WIFI_DISCON_M2M!"));

}

void loop() {

//Configure network

//if(XXX) //Trigger Condition

//myGizwits.setBindMode(0x02); //0x01:Enter AP Mode;0x02:Enter Airlink Mode

/*

unsigned long varW_ADCValue = 0;//Add Sensor Data Collection

myGizwits.write(VALUE_ADCVALUE, varW_ADCValue);

bool varR_LED_OnOff = 0;

if(myGizwits.hasBeenSet(EVENT_LED_ONOFF))

{

myGizwits.read(EVENT_LED_ONOFF,&varR_LED_OnOff);//Address for storing data

}

//binary datapoint handle

*/

sensorValue = analogRead(A0);

unsignedlong varW_ADCValue = sensorValue;//Add Sensor Data Collection

myGizwits.write(VALUE_ADCVALUE, varW_ADCValue);

if(myGizwits.hasBeenSet(EVENT_led_onoff))

{

myGizwits.read(EVENT_led_onoff,&varR_LED_OnOff);//Address for storing data

}

if(varR_LED_OnOff==1)

{

digitalWrite(myledPin, HIGH); // sets the user LED on

}

else

{

digitalWrite(myledPin, LOW); // sets the user LED off

}

KEY_Handle();//key handle , network configure

wifiStatusHandle();//WIFI Status Handle

myGizwits.process();

}

至此,你的ESP8266模组就成功连接上机智云服务平台了,无论你在任何地方,无论用WiFi和4G都能通过APP来控制LED等的亮灭了,机智云还提供了APP的开源框架,我们可以在此基础上高度自由地定制我们自己的APP接入机智云物联网平台。

原文标题:机友分享 | Arduino使用ESP8266连接机智云物联网平台

文章出处:【微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2865

    文章

    41532

    浏览量

    358090
  • 机智云
    +关注

    关注

    2

    文章

    542

    浏览量

    26216

原文标题:机友分享 | Arduino使用ESP8266连接机智云物联网平台

文章出处:【微信号:IoTMaker,微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用CW32单片机通过ESP8266连接OneNET物联网平台

    这期视频向大家介绍如何使用CW32单片机通过ESP8266连接OneNET物联网平台,发送温湿度数据到
    的头像 发表于 11-09 14:32 595次阅读

    ESP8266-01如何单模块连接机智或ONENET等平台?

    ESP8266-01单模块可以直接连接机智吧,不通过MCU。 另外,如何利用APP控制ESP8266做一个智能插座。这个APP有可供直接使
    发表于 10-19 07:07

    【华秋推荐】联网入门学习模块 ESP8266

    随着全球信息技术的不断进步和普及,联网成为当今备受关注的技术热点之一。通过物理和数字设备之间的连接实现自动化和互联互通的网络。无线传感器
    发表于 08-04 11:27

    使用Firebase的ESP8266联网平台

    电子发烧友网站提供《使用Firebase的ESP8266联网平台.zip》资料免费下载
    发表于 07-03 09:54 0次下载
    使用Firebase的<b class='flag-5'>ESP8266</b>物<b class='flag-5'>联网</b><b class='flag-5'>平台</b>

    通过ESP8266连接阿里,固件哪里有?

    想用新唐的板子,通过esp8266连接阿里 有没有测试好的esp8266的固件? 还是说,这个固件要自己修改,自己写?
    发表于 06-27 07:40

    【IoT毕设】机智联网平台+arduino开发板+呼吸检测系统

    轻松构建物联网设备应用程序和功能。同时,它还提供了设备远程操控管理功能,使用户能够通过云端与联网设备进行通信和控制,实现远程监控和操作。
    发表于 06-26 18:55

    是否可以将ESP8266库与通过串行连接Arduino Pro Mini的ESP-05一起使用?

    是否可以将 ESP8266 库(https://github.com/esp8266/Arduino)与通过串行连接
    发表于 06-06 13:25

    ESP8266连接到了Arduino Mega,ESP8266蓝色LED不亮无反应怎么解决?

    我将我的 ESP8266 连接到了 Arduino Mega。连接是: ESP8266 | Arduin
    发表于 06-02 07:17

    基于机智联网平台的智能种树小车

    :一部分为蓝牙模块实现了种植过程的信息传递,发送命令等;另一部分通过联网机智模块可以实时上报种植数据至
    发表于 05-31 19:38

    如何通过ESP8266共享互联网

    我正在尝试通过 OTA 上传代码。但我无法将所有 ESP8266连接到互联网,所以我选择 hc12 进行远程传输。但我对如何通过
    发表于 05-31 08:17

    ArduinoESP8266连接,显示无穷无尽的垃圾值流是怎么回事?

    我已将 ArduinoESP8266 连接Arduino 引脚 2 连接ESP
    发表于 05-11 07:44

    ArduinoESP8266的疑问求解

    我有点为创造 Arduino 的人感到难过。他们震撼了世界。他们创造了这个行业。没有 Arduino 就没有联网。我在 Arduino
    发表于 05-11 06:40

    如何将ESP8266连接到Google表格?

    我正在尝试通过 ESP8266 模块将数据从 arduino 连接到 google 表格。我没有使用节点 mcu,这是大多数教程的基础。我有一个连接
    发表于 05-08 08:13

    基于arduinoesp8266和继电器实现小爱同学开关灯

    esp8266和继电器实现小爱同学开关灯 房间的灯离床太远了,于是想到用esp8266配合点灯科技app来实现用小爱同学开关灯。于是就用小led灯做了测试。 这些是我们需要的材料 在
    发表于 05-04 11:15 1次下载
    基于<b class='flag-5'>arduino</b>用<b class='flag-5'>esp8266</b>和继电器<b class='flag-5'>实现</b>小爱同学开关灯

    新的Blynk联网平台现在支持ESP8266吗?

    Blynk 最近推出了一个新的联网平台,对 ESP8266 提供开箱即用的支持,具有许多很酷的功能,包括设备配置和管理、云中的数据托管、固件无线更新、用户和组织管理、数据分析、各种自
    发表于 04-28 06:15