• 方案介紹
    • Tinycorder:打造你的多功能環(huán)境感知與信號測試神器
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于ESP32的多功能環(huán)境感知與信號測試神器

4小時前
131
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

聯(lián)系方式.txt

共1個文件

Tinycorder:打造你的多功能環(huán)境感知與信號測試神器

在科幻電視劇《星際迷航》中,三錄儀(Tricorder)是一種多功能的便攜式設(shè)備,能夠感知環(huán)境、分析物質(zhì)成分、甚至進行醫(yī)療診斷。如今,這種看似只存在于科幻中的設(shè)備,正在逐漸走進現(xiàn)實。今天,我將為大家介紹一個非常有趣的 DIY 項目——Tinycorder。這是一個小巧的多功能設(shè)備,旨在向《星際迷航》中的三錄儀致敬。它不僅可以感知環(huán)境,還能測試電氣信號,甚至可以作為一個電子徽章使用。
在這里插入圖片描述
在這里插入圖片描述

項目簡介

Tinycorder 是一個由 SirGalaxy 在 Instructables 上分享的項目,它集成了多種傳感器,能夠測量光照、空氣質(zhì)量、溫度、濕度和氣壓等多種環(huán)境參數(shù)。此外,它還可以作為一個簡單的信號測試儀,測量模擬信號。這個設(shè)備小巧輕便(75x85x10mm,重量僅 70 克),并且功耗極低,非常適合日常攜帶和使用。

主要功能

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

Tinycorder 的主要功能包括:

  1. 環(huán)境感知
    • 光照測量:使用 AS7341 傳感器,能夠測量 7 個可見光和近紅外(NIR)波段的光照強度。
    • 空氣質(zhì)量測量:使用 SCD40 傳感器,能夠測量二氧化碳(CO2)濃度和空氣質(zhì)量。
    • 氣象測量:使用 BMP280 傳感器,能夠測量溫度、濕度和氣壓。
  2. 信號測試
    • 提供兩個前部引腳,可以測量模擬信號,類似于簡單的示波器功能。
  3. 顯示與交互
    • 配備一塊 400x240 像素的 Sharp Memory Display,功耗極低,適合長時間使用。
    • 提供一個電源開關(guān)和三個按鈕(上、下、確認(rèn)),用于用戶交互。
  4. 便攜性
    • 設(shè)備小巧輕便,配備掛繩孔,可以掛在脖子上或手上,方便攜帶。

所需材料

在開始制作之前,我們需要準(zhǔn)備以下材料和工具:
在這里插入圖片描述

電子元件

  1. Seeed Studio XIAO ESP32C3 微控制器:作為設(shè)備的核心處理單元。
  2. 150mAh 鋰電池:為設(shè)備供電。
  3. 電源開關(guān)和 3 個按鈕:用于控制設(shè)備的開關(guān)和用戶交互。
  4. Sharp Memory Display 400x240px低功耗顯示屏,用于顯示測量數(shù)據(jù)。
  5. AS7341 光照傳感器:用于測量 7 個可見光和近紅外波段的光照強度。
  6. SCD40 空氣質(zhì)量傳感器:用于測量 CO2 濃度和空氣質(zhì)量。
  7. BMP280 氣象傳感器:用于測量溫度、濕度和氣壓。
  8. 2 個引腳頭:用于測量模擬信號。
    在這里插入圖片描述

3D 打印材料

  • PLA 耗材:用于打印設(shè)備的外殼。
  • 3D 打印機:用于打印設(shè)備的上下外殼。

其他材料

  • 熱熔膠:用于固定傳感器和電線。
  • 螺絲和螺母(M3x10):用于連接上下外殼。

制作步驟

步驟 1:連接 Perfboard 和顯示屏

首先,我們需要將 Perfboard 和顯示屏連接在一起。根據(jù)提供的原理圖進行焊接或使用熱熔膠固定。注意,某些元件可能不在 Fritzing 庫中,因此實際連接可能與原理圖略有不同。務(wù)必仔細(xì)閱讀原理圖中的注釋。

步驟 2:連接所有傳感器和顯示屏

  1. 顯示屏:使用 3 個引腳連接 SPI 接口。
  2. 傳感器:使用 2 個引腳連接 I2C 接口。
  3. 按鈕:連接 3 個按鈕(上、下、確認(rèn))。
  4. 模擬信號引腳:將兩個引腳連接到前部的引腳頭上,用于測量模擬信號。
  5. 焊接 XIAO ESP32C3:將 XIAO ESP32C3 焊接到 Perfboard 上,注意對齊孔位。XIAO ESP32C3 的底部有兩個焊盤,用于連接電池,需要在底部焊接。
    在這里插入圖片描述

步驟 3:在底部粘貼傳感器和電線

將傳感器和電線粘貼到底部,確保所有元件固定牢固。參考圖片進行操作,確保傳感器和電線不會松動。
在這里插入圖片描述

步驟 4:在前部粘貼電池

將鋰電池粘貼到設(shè)備的前部,確保電池固定牢固。可以使用熱熔膠進行固定。
在這里插入圖片描述

步驟 5:連接上下外殼

使用 M3x10 螺絲和螺母將上下外殼連接在一起。在設(shè)計外殼時,我進行了多次迭代以確保所有組件都能完美適配。如果你已經(jīng)設(shè)計好外殼,建議先打印外殼,然后根據(jù)外殼的尺寸調(diào)整電子元件的位置,最后進行粘貼。我的設(shè)計中包含了一個用于手腕帶的孔,顏色與 PLA 一致,看起來非常協(xié)調(diào)。
在這里插入圖片描述

步驟 6:完成設(shè)備

目前,Tinycorder 的代碼仍在開發(fā)中。主要功能(如主菜單、徽章模式和光譜儀)已經(jīng)完成,但其他功能仍在建設(shè)中。下一步計劃包括:

  1. 優(yōu)化代碼:完善主菜單和其他功能。
  2. 監(jiān)控電池電壓:通過指示燈顯示電池電量。
  3. 添加蜂鳴器:用于提醒和報警功能。
  4. 增加測試功能:如示波器功能。
  5. 新增功能:根據(jù)需求不斷添加新功能。
    在這里插入圖片描述

代碼示例

以下是 Tinycorder 的部分代碼示例,展示了如何初始化傳感器和顯示數(shù)據(jù):

#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_SCD4X.h>
#include <Adafruit_BMP280.h>
#include <Adafruit_AS7341.h>

#define SCREEN_WIDTH 400
#define SCREEN_HEIGHT 240
#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_SCD4X scd4x;
Adafruit_BMP280 bmp280;
Adafruit_AS7341 as7341;

void setup() {
  Serial.begin(115200);

  // Initialize display
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;);
  }
  display.clearDisplay();

  // Initialize SCD4X
  if (!scd4x.begin()) {
    Serial.println("SCD4X sensor not found");
    while (1);
  }

  // Initialize BMP280
  if (!bmp280.begin()) {
    Serial.println("BMP280 sensor not found");
    while (1);
  }

  // Initialize AS7341
  if (!as7341.begin()) {
    Serial.println("AS7341 sensor not found");
    while (1);
  }

  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 10);
  display.println("Tinycorder");
  display.display();
}

void loop() {
  // Read SCD4X data
  float co2 = scd4x.readCO2();
  float temp = scd4x.readTemperature();
  float humidity = scd4x.readHumidity();

  // Read BMP280 data
  float pressure = bmp280.readPressure() / 100.0;

  // Read AS7341 data
  uint16_t channels[7];
  as7341.getChannels(channels);

  // Display data
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.print("CO2: ");
  display.print(co2);
  display.print(" ppm");
  display.setCursor(0, 10);
  display.print("Temp: ");
  display.print(temp);
  display.print(" C");
  display.setCursor(0, 20);
  display.print("Humidity: ");
  display.print(humidity);
  display.print(" %");
  display.setCursor(0, 30);
  display.print("Pressure: ");
  display.print(pressure);
  display.print(" hPa");
  display.setCursor(0, 40);
  display.print("Light: ");
  for (int i = 0; i < 7; i++) {
    display.print(channels[i]);
    display.print(" ");
  }
  display.display();

  delay(1000);
}

測試與使用

測試步驟

  1. 連接電源:使用 Micro USB 數(shù)據(jù)線為 Tinycorder 供電。
  2. 檢查顯示屏:確保顯示屏能夠正常顯示數(shù)據(jù)。
  3. 測試傳感器:檢查各個傳感器是否能夠正常工作,顯示正確的數(shù)據(jù)。
  4. 測試按鈕:確保按鈕能夠正常響應(yīng),實現(xiàn)用戶交互功能。

使用建議

  • 日常攜帶:由于 Tinycorder 小巧輕便,可以方便地掛在脖子上或手上,適合日常攜帶。
  • 環(huán)境監(jiān)測:使用 Tinycorder 監(jiān)測環(huán)境參數(shù),如空氣質(zhì)量、溫度和濕度。
  • 信號測試:使用前部的引腳頭測量模擬信號,進行簡單的電氣測試。

項目擴展

Tinycorder 的設(shè)計和功能仍在不斷完善中,以下是一些擴展建議:

  1. 優(yōu)化代碼:進一步優(yōu)化代碼,完善更多功能,如示波器模式。
  2. 添加蜂鳴器:添加蜂鳴器,用于提醒和報警功能。
  3. 監(jiān)控電池電壓:通過指示燈顯示電池電量,及時提醒用戶充電。
  4. 美化外殼:使用噴漆或貼紙美化 3D 打印的外殼,使其更加美觀。
  5. 新增功能:根據(jù)需求不斷添加新功能,如藍(lán)牙傳輸、數(shù)據(jù)記錄等。

總結(jié)

Tinycorder 是一個非常有趣且實用的 DIY 項目,它不僅能夠讓你親手制作一個多功能的環(huán)境感知和信號測試設(shè)備,還能讓你學(xué)習(xí)到 3D 打印、電子電路搭建和 Arduino 編程的基礎(chǔ)知識。通過這個項目,你可以實現(xiàn)對多種環(huán)境參數(shù)的實時監(jiān)測,并通過低功耗的顯示屏清晰地顯示數(shù)據(jù)。更重要的是,你可以根據(jù)自己的需求對項目進行擴展和定制,讓它成為你獨一無二的多功能設(shè)備。

希望這篇文章能夠激發(fā)你的創(chuàng)造力,讓你動手制作屬于自己的 Tinycorder。如果你在制作過程中遇到任何問題,歡迎在評論區(qū)留言,我會盡力為你解答。如果你已經(jīng)完成了這個項目,也歡迎在評論區(qū)分享你的作品,讓我們一起交流和學(xué)習(xí)!

希望你喜歡這個項目,并在構(gòu)建過程中找到樂趣!如果你有任何問題或需要幫助,歡迎在評論區(qū)交流。

作者:Svan.


注意:本博文為不得在未經(jīng)本人同意進行轉(zhuǎn)載或者二次創(chuàng)作,違者必究!?。?/p>

博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實物的友友請關(guān)注、點贊,私信吧!

  • 聯(lián)系方式.txt
    下載

相關(guān)推薦