性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

程序員小哈
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
作者動態(tài)
自動洗碗機(jī)綜合實例第二講 - 最小系統(tǒng)核心板PCB繪制
2024-07-18 09:21
自動洗碗機(jī)綜合實例第一講 - 最小系統(tǒng)核心板原理圖繪制
2024-07-16 09:40
線路板焊接的干貨都在這里呢
2024-07-14 12:08
基于單片機(jī)的智能風(fēng)扇DIY總結(jié)
2024-07-13 14:42
基于HAL庫實現(xiàn)按鍵(外部中斷)翻轉(zhuǎn)一個LED
2024-06-30 14:02

Arduino+涂鴉云,教你輕松制作炫彩燈帶

大家好,我是程序員小哈。

前一陣參加了涂鴉智能【幻彩燈帶】Arduino開發(fā)實戰(zhàn)訓(xùn)練營,參與完整個過程,收獲頗豐,今天對本次制作的幻彩燈帶進(jìn)行一下小結(jié),希望以后可以再次參與其他內(nèi)容的訓(xùn)練營活動。

概況

本次DIY內(nèi)容為基于Arduino+tuya SDK實現(xiàn)的幻彩燈帶。實現(xiàn)了通過 涂鴉智能 App 下發(fā)打開燈帶指令控制WS2812全彩燈板的開關(guān),下發(fā)音樂指令控制燈帶進(jìn)入音樂律動模式。

物料清單

硬件

  • 涂鴉WiFi模組(CBU)
  • Arduino UNO開發(fā)板
  • 聲音傳感器模塊
  • 8位WS2812全彩燈板

軟件

  • 涂鴉智能 App
  • Arduino 開發(fā)環(huán)境

步驟

創(chuàng)建產(chǎn)品

  1. 在涂鴉智能IoT 平臺  上,在后臺產(chǎn)品開發(fā)-->照明-->幻彩燈帶 下,創(chuàng)建一款 幻彩燈帶 產(chǎn)品,產(chǎn)品方案選擇自定義方案

  1. 創(chuàng)建產(chǎn)品后,添加功能定義。由于要控制燈帶的開關(guān),需要添加一個布爾型功能點。需要設(shè)置不同的工作模式,所以需要添加一個枚舉類型的功能點。

注意記錄上圖中的PID值,此值在稍后的Arduino UNO代碼中會使用。

填寫一個較規(guī)范的標(biāo)識符。因為是通過標(biāo)識符控制功能的實現(xiàn)。

  1. 進(jìn)入硬件開發(fā)標(biāo)簽。

如果要跟MCU配合使用,即CBU模組只負(fù)責(zé)上網(wǎng),MCU做主控。那么“已選云端對接方式”要選擇涂鴉標(biāo)準(zhǔn)模組MCU SDK開發(fā)。

然后選擇模組,這里推薦WBR3模組CBU模組。

模組選擇完畢,在此頁面的下方,下載資料區(qū)域,涂鴉IoT平臺會根據(jù)你選擇的模組和定義的功能,提供一份開發(fā)資料,下載此資料可以讓您快速了解涂鴉物聯(lián)網(wǎng)平臺如何使用,并加速開發(fā)過程。

公共資料區(qū)域,還可以下載涂鴉智能App。

本實例中選用的是CBU模組。

開發(fā)資源包

模組調(diào)試

要想實現(xiàn)MCU+模組組合在一起的開發(fā)方式,首先我們要對MCU和模組之間的通訊協(xié)議了解清楚,而要了解通訊協(xié)議,我們可以借助官方的模組調(diào)試助手,利用它可以方便、快速的理解MCU與模組的交互過程。

遇到困難,也方便調(diào)試解決問題。

模組調(diào)試助手使用教程  https://developer.tuya.com/cn/docs/iot/module-debugging-assistant-instruction?id=K9hs0cj3lf0au

在 MCU 模擬模式中,涂鴉模組調(diào)試助手會模擬 MCU 自動回復(fù)模組正確的協(xié)議數(shù)據(jù),用手機(jī)給模組配網(wǎng)后可測試 DP 數(shù)據(jù)的上報下發(fā)。

對應(yīng)上面的信息,模組的串口2的發(fā)送引腳,輸出的Log信息如下:

好了,有了上面的了解,我們接下來看一下使用Arduino+CBU模組實現(xiàn)的幻彩燈帶如何進(jìn)行控制。

Arduino代碼移植

引用Arduino 庫

菜單“項目”-->“加載庫”

  1. 引用tuya庫

如果Arduino官方已經(jīng)收錄了涂鴉SDK的話,那么在“管理庫”中檢索tuya即可;

如果沒有被收錄,那么使用“添加.ZIP庫”文件的方式加載庫。

  1. 引用Adafruit_NeoPixel庫

如果因為網(wǎng)絡(luò)的原因,管理庫中下載Arduino庫困難,也可以使用別人下好的庫,將其放在Window系統(tǒng)下的:我的電腦>文檔>Arduino>libraries 文件夾中。

Arduino初始化

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  strip.begin(); // Initialize NeoPixel strip object (REQUIRED)
  strip.show();  // Initialize all pixels to 'off'

  DebugSerial.begin(9600);

  Serial.begin(9600);
  //Initialize led port, turn off led.
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);
  //Initialize networking keys.
  pinMode(key_pin, INPUT_PULLUP);

  //incoming all DPs and their types array, DP numbers
  //Enter the PID and MCU software version
  my_device.init(pid, mcu_ver);
  my_device.set_dp_cmd_total(dp_array, 17);
  //register DP download processing callback function
  my_device.dp_process_func_register(dp_process);
  //register upload all DP callback function
  my_device.dp_update_all_func_register(dp_update_all);

  last_time = millis();
  music_last_time = millis();
}

循環(huán)操作

void loop() {
  //進(jìn)入配網(wǎng)模式
  //Enter the connection network mode when Pin7 is pressed.
  if (digitalRead(key_pin) == LOW) {
    delay(80);
    if (digitalRead(key_pin) == LOW) {
      my_device.mcu_set_wifi_mode(SMART_CONFIG);      
    }
  }
  
  my_device.uart_service();

  /* LED blinks when network is being connected */
  if ((my_device.mcu_get_wifi_work_state() != WIFI_LOW_POWER) && (my_device.mcu_get_wifi_work_state() != WIFI_CONN_CLOUD) && (my_device.mcu_get_wifi_work_state() != WIFI_SATE_UNKNOW)) {
    if (millis()- last_time >= 500) {
      last_time = millis();

      if (led_state == LOW) {
        led_state = HIGH;
      } else {
        led_state = LOW;
      }
      digitalWrite(LED_BUILTIN, led_state);
    }
  }

  if(work_mode==3)
  {
    if (millis()- music_last_time >= 50)
    {
      music_last_time = millis();
      visualize_music();
    }
  }
}

編譯與下載

注意:下載的時候,先不要連接涂鴉WiFi模組,避免干擾。

配網(wǎng)

總結(jié)

整個開發(fā)過程簡單高效,大大節(jié)省了開發(fā)時間,為傳統(tǒng)設(shè)備實現(xiàn)上云,提供了一個快速接入的方案。

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 1
收藏 1
關(guān)注 69
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧