衡阳派盒市场营销有限公司

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2913

    文章

    44927

    瀏覽量

    377049
  • 機智云
    +關注

    關注

    2

    文章

    591

    瀏覽量

    26460

原文標題:機友分享 | Arduino使用ESP8266連接機智云物聯網平臺

文章出處:【微信號:IoTMaker,微信公眾號:機智云開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32連接機智,代碼移植,NTP實時時間獲取(一)

    目錄一、機智介紹二、固件下載三、項目例程下載四、代碼移植五、代碼編寫準備(已配置完畢,正式開始編寫代碼)六、設備配對與連接七、NTP(網絡時間協議)實現八、網盤資料鏈
    的頭像 發表于 11-19 01:01 ?390次閱讀
    STM32<b class='flag-5'>連接機智</b><b class='flag-5'>云</b>,代碼移植,NTP實時時間獲取(一)

    esp8266連接阿里平臺時mqtt連接超時

    esp8266nodemcu在使用arduino.ide連接阿里平臺的時候,wifi配置正常但連接
    發表于 10-26 21:39

    機智入門必備》手把手教你燒錄GAgent固件

    云中主要用于實現聯網設備的聯網功能。它通過Wi-Fi連接到互
    的頭像 發表于 09-12 08:04 ?444次閱讀
    《<b class='flag-5'>機智</b><b class='flag-5'>云</b>入門必備》手把手教你燒錄GAgent固件

    arduino(1)--ESP8266配置

    硬件準備 首先需要準備一個開發板,這里我準備的是淘寶購買的兼容arduinoESP8266模塊。 arduino配置 我使用的是arduino來編程
    發表于 09-06 11:00

    STM32 ESP8266阿里鏈接源碼

    stm32F103C8T6 ESP8266 聯網電表 登錄阿里
    發表于 08-29 14:21 ?6次下載

    esp8266不燒錄可以使用嗎

    ESP8266是一款非常流行的Wi-Fi模塊,廣泛應用于聯網項目中。然而,如果不進行燒錄,ESP8266將無法正常工作。 1. ESP8266
    的頭像 發表于 08-19 17:28 ?999次閱讀

    esp8266wifi模塊怎么連接手機

    ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現通過路由器連接(STA模式)和直
    的頭像 發表于 08-19 17:27 ?3574次閱讀

    機智ESP8266開發板RGB彩燈控件

    隨著智能家居技術的迅猛發展,RGB彩燈控件正逐漸成為現代家庭不可或缺的一部分。在這一潮流中,機智(Gizwits)的ESP8266開發板RGB彩燈控件以其先進的
    的頭像 發表于 08-09 08:10 ?453次閱讀
    <b class='flag-5'>機智</b><b class='flag-5'>云</b><b class='flag-5'>ESP8266</b>開發板RGB彩燈控件

    STM32F103 + ESP8266機智開發常見問題集錦:入門者必讀!

    關于ESP8266模塊的選擇針對初學者,強烈建議選擇帶有串口的ESP8266開發板!這可以避免像我曾經遇到的燒錄固件失敗等問題。推薦直接購買已預裝機智固件的模塊,或者帶有串口下載功能
    的頭像 發表于 07-18 08:11 ?586次閱讀
    STM32F103 + <b class='flag-5'>ESP8266</b>與<b class='flag-5'>機智</b><b class='flag-5'>云</b>開發常見問題集錦:入門者必讀!

    使用ESP8266arduino連接到thinkspeak,無法將其連接到任何網頁,為什么?

    我正在嘗試使用 ESP8266arduino 連接到 thinkspeak 。所以我能夠將 esp 模塊
    發表于 07-16 07:43

    ESP8266為什么不響應Arduino

    我是這個 wifi 芯片的新手。我的問題是,當我將其與 arduino mega 連接時,我無法從 esp8266 獲得響應。 像許多在線教程一樣,我按照說明進行操作,但仍然無法得到任何回應
    發表于 07-16 06:39

    能將ESP8266連接arduino UNO上,使用mesh組網嗎?

    現在已將ESP8266連接到了arduino,并且成功驅動,但是有個問題就是組網的問題,想使用mesh,但是還有有些疑問。1、將帶有mesh的固件燒錄到ESP8266中,就能自動尋找節
    發表于 07-11 06:46

    是否可以通過WPS連接ESP8266 AP?

    是否可以通過 WPS 連接ESP8266 AP(而不是通過 ESP8266 連接到具有 WPS
    發表于 07-10 06:09

    確定ESP8266固件下載成功的方法

    聯網設備的開發過程中,確定esp8266固件是否成功下載至設備十分關鍵。以下是一種簡單有效的確認方法:機智
    的頭像 發表于 05-16 08:10 ?691次閱讀
    確定<b class='flag-5'>ESP8266</b>固件下載成功的方法

    STM32、ESP8266與MQTT連接阿里聯網的串口通信異常解析

    STM32、ESP8266與MQTT協議連接阿里聯網平臺時常見的串口通信異常介紹 在構建物
    的頭像 發表于 04-19 17:19 ?1565次閱讀
    百家乐官网破解秘籍| 百家乐官网真人娱乐城陈小春| 钱隆百家乐软件| 百家乐官网赢的秘籍在哪| 利都百家乐国际娱乐场开户注册 | 世界杯赌球| 破战百家乐的玩法技巧和规则| 百家乐官网系列抢庄龙| 吉林市| 二八杠玩法| 澳门百家乐十大缆| 百家乐官网博欲乐城| 和硕县| 百家乐官网ho168平台| 威尼斯人娱乐城评价| 百家乐5式直缆投注法| 百家乐官网大西洋| 金榜百家乐官网现金网| 网络百家乐游戏| 二八杠自行车| 百家乐网站可信吗| 百家乐捡揽方法| 百家乐官网大赌城| 百家乐官网桌蓝盾在线| 葡京线上娱乐| 易玩棋牌怎么样| 大发888 188| 至尊百家乐官网facebook| 鼎龙国际娱乐城| bet365进不去| 现金网开户| 大发888资讯网net| 在线百家乐下注| 百家乐顶路| 新2百家乐现金网百家乐现金网| 百家乐官网麻将筹码币| 新时代百家乐官网的玩法技巧和规则| 百家乐官网21点| 临江市| 百家乐官网网络赌博网址| 磴口县|