查看: 3000|回復: 1
打印 上一主題 下一主題

Blynk連續劇第四集:blynk+d1mini+oled環顯示藍牙心率帶心率脈動

[復制鏈接]
  • TA的每日心情
    開心
    2019-7-17 13:13
  • 簽到天數: 264 天

    [LV.8]以壇為家I

    跳轉到指定樓層
    樓主
    發表于 2017-5-7 12:47 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    【回顧前幾集的劇情】
        第一集:我們用DFRobotbeetle BLE搭建了第一個blynk應用,在blynk APP上顯示了來自計步器的步伐數據。并且簡要介紹了blynk這個優秀的項目。
        第二集:我們用arduino101加上blynk,實現了在blynkAPP上顯示來自101采集的藍牙心率帶數據。戲是演完了,但是由于“演員”不給力(101的以太網連接與blynk配合不好),只好將就修改劇本,讓101通過USB--PC這樣的組合連接blynk server,受到了很多玩家的疑問。
      第三集:使用blynkbridge控件在D1 mini上,驅動0.66oled顯示藍牙心率數據。

    【本劇劇情】
      本劇有一位穿戴的新秀,全彩led環(12位,基于ws2812b芯片)。我們將把心率數據用led環脈動的形式表達出來。進而可以做一款穿戴項鏈。
    這款項鏈可以用亮度變化(或者顏色變化)顯示心率脈動,而心率數據,理論上可以來自千里之外的家人(友人)。是不是一件很有趣的事情呢?


    【直接上代碼】
    [kenrobot_code]/*************************************************************
    代碼借鑒From http://www.geekstips.com/blynk-b ... etween-two-esp8266/
    2017-04-23
    將101----heart rate ,通過bridge,發送至8266,并且通過oled顯示出來
    it works
    2017-05-06
    加上了全彩led燈,表征心跳過程,使用亮度變化循環
    *************************************************************/


    #define BLYNK_PRINT Serial
    #include <ESP8266WiFi.h>
    #include <BlynkSimpleEsp8266.h>
    #include <WS2812FX.h>
    #include <math.h>
    #define TIMER_MS 5000
    #define LED_COUNT 12 //定義led的數量
    #define LED_PIN 12//定義led的引腳,(esp8266)gpio12----D6(d1 mini)
    int LEDBLINK_MS;//心跳間隔=(60000/實測bpm),單位:ms
    static unsigned long ledBlinkTime = 0; // LED blink time.

    WS2812FX ws2812fx = WS2812FX(LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800);

    #include <Wire.h>  // Include Wire if you're using I2C
    #include <SFE_MicroOLED.h>  // Include the SFE_MicroOLED library
    #define PIN_RESET 255  //
    #define DC_JUMPER 0  // I2C Addres: 0 - 0x3C, 1 - 0x3D

    //////////////////////////////////
    // MicroOLED Object Declaration //
    //////////////////////////////////

    MicroOLED oled(PIN_RESET, DC_JUMPER);  // I2C Example


    // You should get Auth Token in the Blynk App.
    // Go to the Project Settings (nut icon).
    char auth[] = "****your auth code********* ";//8266的令牌

    // Your WiFi credentials.
    // Set password to "" for open networks.
    char ssid[] = "your ssid";
    char pass[] = "your psw";

    // This code will update the virtual port 5
    BLYNK_WRITE(V5) {
      int pinData = param.asInt();
      oled.clear(PAGE);//clear the screen before we draw our image
      oled.setCursor(15, 25);
      oled.print(pinData);//打印心率值
      oled.display();//
      Serial.println(pinData);
      LEDBLINK_MS=ceil(60000/(pinData));//計算脈搏間隔,并且取整
      //ledBlink();//調用閃燈模擬心跳程序
    }


    void setup()
    {
      Serial.begin(9600);
      Blynk.begin(auth, ssid, pass,"192.168.0.146");
      oled.begin();
      oled.clear(ALL);
      oled.display();   
      delay(1000);
      ws2812fx.init();
      ws2812fx.setBrightness(100);
      //ws2812fx.setColor(0x007BFF);
       ws2812fx.setColor(0x00FF00);
      ws2812fx.setMode(FX_MODE_STATIC);
    // ws2812fx.setMode(12);
      ws2812fx.start();
    }

    void loop()
    {
      Blynk.run();
      ledBlink();//調用閃燈模擬心跳程序
    }
    void ledBlink()
    {
      // LED blinking heartbeat. Yes, we are alive.
      // For explanation, see:
      // http://playground.arduino.cc/Code/TimingRollover
      if ( (long)(millis()-ledBlinkTime) >= 0 )
      {
       ws2812fx.service();
       for (int j=120;j>10;j=j-5){
           ws2812fx.setBrightness(j);//j--亮度
       }
       
       ledBlinkTime = millis()+LEDBLINK_MS;
       
       //ws2812fx.setBrightness(0);//0亮度,相當于熄滅
      }
    } // End of ledBlink()
    [/kenrobot_code]

    【參考資料】
    這次我們依然使用了d1 mini(esp8266很棒的core板,帶有microusb接口,一鍵下載,不需要手動拉低gpio0,性價比極高)
    支持arduino ide。

    【小結】
    blynk+D1 mini+全彩led環,做一個酷酷的穿戴,完全可行,D1 MINI系列有電源管理擴展板,非常實用,值得嘗試。
    立夏啦,萬物勃發!



  • TA的每日心情
    開心
    2019-7-17 13:13
  • 簽到天數: 264 天

    [LV.8]以壇為家I

    沙發
     樓主| 發表于 2017-5-7 12:54 | 只看該作者
    附帶ws2812fx庫,來自github
    WS2812FX-master.zip (49.51 KB, 下載次數: 0)


    ws2812全彩環


    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    熱門推薦

    5分鐘帶你快速了解新一代開發板:M5STACK
    5分鐘帶你快速了解新一代
    一、什么是M5Stack M5Stack是一種模塊化、可堆疊擴展的開發板,每個模塊
    《Color Unit免費申請試用》
    《Color Unit免費申請試用
    COLOR 是一款顏色識別 Unit,其內部集成TCS3472彩色光數字轉換器,能夠將其檢測到顏色
    【Arduino】168種傳感器系列實驗(137)---TTS文字轉語音合成
    【Arduino】168種傳感器系
    37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是
    【Arduino】u8g2中文字庫制作教程 小白請進
    【Arduino】u8g2中文字庫
    我知道對于這個話題許多大佬們都會,發這個貼子也算是炒冷飯了,所以一開始我也十分糾
    【干貨分享】mega2560原理圖PCB圖紙altium designer18
    【干貨分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本內容被作者隱藏 **** ergo
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    3d每天组六27个号必中