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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arduino UNO R3通過ESP8266-01模塊連接機智云平臺的實現

9GxC_IoTMaker ? 來源:小雨編程 ? 作者:小雨 ? 2021-05-25 16:38 ? 次閱讀

本文實現Arduino UNO R3通過ESP8266-01模塊連接機智云平臺,從而實現用手機APP遠程點亮LED燈。

ESP8266模塊本地調試

1

當我們參考機智云官網給的教程時,關于Arduino平臺主要都是關于機智云官方自己的開發板Gokit資料。但當我們只使用Arduino UNO R3接入機智云平臺,有很多教程通過添加了兩個按鍵來選擇airlink和softap模式,其實我們只要在本地給ESP8266配好了網絡連接,就不需要每次通過按鍵切換配網模式。

第一步:首先在官網下載機智云固件GAgent,

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

第三步:在機智云官網下載機智云串口調試助手,

將ESP8266通過串口轉USB工具插在電腦上,安裝好驅動,選擇中確的驅動后,打開串口,填入在官網申請的product_key和Product Secret后,就能在右邊看見數據點了,此時再打開指令界面,點擊AirLink命令,ESP8266就進入了自動配網模式;

第四步:下載機智云移動端APP

打開APP,點擊一鍵配置,輸入家里的WiFi賬號及密碼,選擇樂鑫,因為剛才我們已經將ESP8266設置成AirLink透傳模式,現在通過APP就可以將家里的WiFi信息發送給ESP8266,此時APP發現新設備下會出現你的WiFi模組,點擊后就會看到你定義的數據點了。

硬件搭建

2

2.1硬件連接圖

LED接上220歐姆電阻,連在Arduino的D4上,ESP8266CH-PD和vcc都接高電平。

注意:

在給Arduino燒錄程序的時候要斷開ESP8266與Arduino的串口連接,否則會有干擾導致代碼燒錄不成功;

ESP8266-01只能供給3.3v電壓,5v電壓可能會燒壞WiFi模組

2.2項目源碼

#include

《Gizwits.h》

#include

《Wire.h》

#include

《SoftwareSerial.h》

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

unsignedlong

Last_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;

}

return

0

;

}

return

0

;

}

return

0

;

}

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;

}

return

0

;

}

return

0

;

}

return

0

;

}

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

* 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,微信公眾號:機智云開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

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

    本文《機智入門必備》將詳細講解GAgent固件的燒錄過程,從基礎設置到實際操作,將一步步帶你完成每一個環節,確保你的設備順利連接機智平臺
    的頭像 發表于 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

    esp8266wifi模塊怎么連接手機

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

    ESP8266-01如何更新固件?

    您好,我有 ESP8266-01,我需要通過 Arduino 更新固件......我有這個版本......esp_iot_sdk_v1.4.0_15_09_18.zip 可以給任何鏈
    發表于 07-22 07:33

    如何將ESP8266-01模塊用作物理層設備?

    嗨,大家好。我想將 ESP8266-01 模塊用作物理層設備,就像射頻發射器和接收器一樣。 一個模塊將用作發射器,它在沒有 WI-Fi 連接的情況下工作,并將發送原始數據,第二個
    發表于 07-19 12:18

    如何使用ESP8266-01構建一個電池供電的數據記錄器?

    我正在嘗試使用 ESP8266-01 構建一個電池供電的數據記錄器。它將每小時進行一次測量,通過 WiFi 報告,然后再 60 分鐘不做任何事情(睡眠)。時序將由TPL5111芯片處理,該芯片似乎是
    發表于 07-19 06:53

    使用ESP8266-01Arduino SDK安裝AT固件失敗了怎么解決?

    在使用我的 ESP8266-01Arduino SDK 玩了一會兒后,我想再次在其上安裝 AT 固件,但我失敗了。 我嘗試從ESP8266_NONOS_SDK-3.0.5開始,按如下方式安裝它
    發表于 07-19 06:08

    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>開發常見問題集錦:入門者必讀!

    ESP8266-01適合長時間使用嗎?

    我正在使用ESP8266-01,運行NONOS_SDK_V2.0.0_16_07_19。程序正在使芯片進入深度睡眠 2 分鐘,然后收集數據。它運行良好大約 ~20 小時,ESP UART 輸出符合
    發表于 07-18 06:45

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

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

    ESP8266-01在幾個小時后停止響應了如何解決?

    我已經使用 Arduino IDE 為我的家庭自動化項目編寫了 ESP8266-01。ESP-01 會在一段時間后停止響應接收到的 UDP 廣播數據。 有人可以告訴我如何解決這個問題嗎?
    發表于 07-15 07:31

    ESP8266-01將ch_pd引腳與直接vcc連接,電池功耗持續非常高,怎么解決?

    我使用 ESP8266-01 開發產品并與其他主機 MCU 接口,主機 MCU 使用 UART 和 AT 命令進行 ESP 通信。我們的產品是在低功耗的電池源上,如果我想與主機 MCU 建立
    發表于 07-15 06:37

    使用Wi-Fi ESP8266方案模組接入平臺

    ESP8266模塊芯片是基于無線通信協議的UARTWi-Fi透傳模塊芯片,支持802.11b/g/n的無線標準,并帶有三種可選擇的工作模式。ESP8266
    的頭像 發表于 05-10 08:20 ?1933次閱讀
    使用Wi-Fi <b class='flag-5'>ESP8266</b>方案模組接入<b class='flag-5'>云</b><b class='flag-5'>平臺</b>

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

    STM32、ESP8266與MQTT協議連接阿里物聯網平臺時常見的串口通信異常介紹 在構建物聯網應用時,STM32、ESP8266與MQT
    的頭像 發表于 04-19 17:19 ?1565次閱讀
    德州扑克 比赛| 百家乐赌场筹码| 灵寿县| 百家乐娱乐分析软件v4.0| 国际百家乐官网规则| 百家乐里靴是什么意识| 足球.百家乐官网投注网出租| 大发888 博彩| 百家乐室系统软件| 长乐坊百家乐官网娱乐城| 大发888娱乐城送白菜| 基础百家乐官网博牌规| 网上真钱轮盘| 线上百家乐是如何作弊| 至尊百家乐官网娱乐网| 博发娱乐| 真人百家乐免费送钱| 棋牌室营业执照| 百家乐路单破解方法| bet365最新网址| 玩百家乐游戏的最高技巧| 网络百家乐官网程序| 简阳市| 乌兰浩特市| 大发888刮刮乐下载| 万宝路百家乐的玩法技巧和规则| 百家乐是如何骗人的| 瑞士百家乐官网的玩法技巧和规则 | 世嘉百家乐的玩法技巧和规则 | 百家乐官网真人游戏网上投注| 博彩| 大发888线上娱乐加盟合作| 最新百家乐的玩法技巧和规则| 百家乐有方式赢钱吗| 网上百家乐官网公司| 赌百家乐官网到底能赌博赢| 百家乐官网投注之对冲投注 | 大发888娱乐城手机版| 名人百家乐的玩法技巧和规则| 百家乐必学技巧| 做生意人的风水|