• 方案介紹
    • ISS 天線:打造你的桌面太空追蹤器
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于ESP8266的桌面太空追蹤器

19小時(shí)前
286
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

聯(lián)系方式.txt

共1個(gè)文件

ISS 天線:打造你的桌面太空追蹤器

在浩瀚的宇宙中,國際空間站(ISS)作為一個(gè)重要的科研平臺,始終吸引著無數(shù)太空愛好者的目光。作為一名太空愛好者,我曾多次嘗試通過在線服務(wù)追蹤 ISS 的位置,但隨著這些服務(wù)的逐漸消失,我決定自己動手打造一個(gè)能夠?qū)崟r(shí)提醒我 ISS 過境的桌面天線。今天,我將分享這個(gè)項(xiàng)目的詳細(xì)制作過程,希望它能成為你或你朋友的下一個(gè)有趣項(xiàng)目。

在這里插入圖片描述

在這里插入圖片描述

項(xiàng)目簡介

這個(gè) ISS 天線項(xiàng)目是我制作的第三個(gè) ISS 跟蹤設(shè)備。它不僅能告訴你 ISS 是否在你的頭頂上方,還能顯示它離你有多遠(yuǎn)。這個(gè)迷你桌面天線的核心是一個(gè) RGB LED,當(dāng) ISS 遠(yuǎn)離你的位置時(shí),它會發(fā)出紅色光芒;當(dāng) ISS 接近大約 1000 公里范圍內(nèi)時(shí),它會發(fā)出黃色光芒并緩慢閃爍;當(dāng) ISS 進(jìn)入可見范圍時(shí),它會發(fā)出綠色光芒并快速閃爍。這正是你沖到外面欣賞 ISS 飛越的絕佳時(shí)機(jī)。

這個(gè)項(xiàng)目不僅外觀酷炫,而且非常實(shí)用,適合作為禮物送給任何太空愛好者。接下來,我將詳細(xì)介紹如何制作這個(gè) ISS 天線。
在這里插入圖片描述

所需材料

在開始制作之前,我們需要準(zhǔn)備以下材料和工具:

電子元件

  1. ESP8266 微控制器:例如 Wemos D1 Mini,用于處理數(shù)據(jù)和控制 LED。
  2. 陰極 RGB LED:用于顯示 ISS 的位置信息。
  3. 470Ω 電阻:用于限制 LED 的電流,防止損壞。
  4. 連接線:用于連接各個(gè)組件。
  5. Micro USB 數(shù)據(jù)線:用于給 ESP8266 供電。

3D 打印材料

  • PLA 或 ABS 耗材:用于打印天線的外殼。
  • 3D 打印機(jī):用于打印天線的各個(gè)部件。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

其他材料

  • 噴漆(可選):用于給天線外殼上色。
  • 膠水:用于固定各個(gè)部件。

設(shè)計(jì)與 3D 打印

設(shè)計(jì)思路

為了制作這個(gè) ISS 天線,我使用了 Fusion 360 進(jìn)行建模。整個(gè)天線由以下幾個(gè)部分組成:

  1. 側(cè)三角架:用于支撐整個(gè)天線結(jié)構(gòu)。
  2. 外殼:用于容納 ESP8266 微控制器和電線。
  3. 橋接部分:用于固定天線的碟形部分。
  4. 碟形部分:用于安裝 RGB LED。
  5. 圓形蓋板:用于覆蓋 LED 引腳的焊接部分。

在這里插入圖片描述

3D 打印過程

  1. 模型設(shè)計(jì):在 Fusion 360 中設(shè)計(jì)好各個(gè)部件后,將模型導(dǎo)出為 STL 文件。
  2. 切片設(shè)置:將 STL 文件導(dǎo)入到切片軟件(如 Cura)中,設(shè)置打印參數(shù)。建議使用默認(rèn)參數(shù),以確保打印質(zhì)量。
  3. 打印過程:將 PLA 或 ABS 耗材裝入 3D 打印機(jī),開始打印。打印完成后,檢查各個(gè)部件是否有瑕疵,如有需要可以進(jìn)行簡單的清理。

如果你沒有 3D 打印機(jī),也可以使用 PVC 板手工制作天線的各個(gè)部件。例如,你可以用冰激凌杯作為碟形部分。

電路搭建

電路連接

在這里插入圖片描述

在這里插入圖片描述

  1. 連接 RGB LED
    • RGB LED 的紅色引腳連接到 ESP8266 的 D5 引腳。
    • RGB LED 的綠色引腳連接到 ESP8266 的 D6 引腳。
    • RGB LED 的藍(lán)色引腳連接到 ESP8266 的 D7 引腳。
    • RGB LED 的共陰極引腳連接到 ESP8266 的 GND 引腳。
  2. 連接電阻
    • 在每個(gè) LED 引腳和 ESP8266 引腳之間串聯(lián)一個(gè) 470Ω 電阻,以限制電流。
  3. 連接電源
    • 使用 Micro USB 數(shù)據(jù)線為 ESP8266 供電。
      在這里插入圖片描述

焊接過程

  1. 焊接電阻:將 470Ω 電阻焊接到 RGB LED 的每個(gè)引腳上。
  2. 連接電線:將電阻的另一端連接到 ESP8266 的對應(yīng)引腳上。
  3. 固定 LED:將 LED 安裝到圓形蓋板上,并用膠水固定。

在這里插入圖片描述

在這里插入圖片描述

最終組裝

組裝步驟

    1. 安裝三角架:將三角架的各個(gè)部分用膠水粘合在一起,確保結(jié)構(gòu)穩(wěn)固。
    2. 安裝外殼:將 ESP8266 微控制器放入外殼中,并用膠水固定。
    3. 安裝碟形部分:將碟形部分安裝到橋接部分上,并用膠水固定。
    4. 安裝 LED:將 RGB LED 安裝到碟形部分的中心,并用膠水固定。
    5. 連接電線:將所有電線通過外殼的孔洞引出,并連接到 ESP8266 上。
    6. 安裝天線:將天線安裝到橋接部分上,并用膠水固定。

在這里插入圖片描述

在這里插入圖片描述

上色與裝飾

  1. 噴漆:使用噴漆為天線的各個(gè)部件上色,使其外觀更加美觀。
  2. 組裝完成:將所有部件組裝在一起,完成整個(gè)天線的制作。

代碼上傳

代碼功能

這個(gè)項(xiàng)目的代碼主要實(shí)現(xiàn)以下功能:

  1. 獲取 ISS 的實(shí)時(shí)位置:通過 Open Notify API 獲取 ISS 的實(shí)時(shí)經(jīng)緯度。
  2. 計(jì)算距離:使用 Haversine 公式計(jì)算 ISS 與你當(dāng)前位置的距離。
  3. 更新 LED 顏色:根據(jù) ISS 的距離,更新 RGB LED 的顏色和閃爍頻率。

代碼示例

以下是代碼的核心部分:

#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
#include <Adafruit_NeoPixel.h>

#define LED_PIN     D5
#define LED_COUNT   1
#define WIFI_SSID   "your_ssid"
#define WIFI_PASS   "your_password"

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

const char* api_url = "http://api.open-notify.org/iss-now.json";
const double home_lat = 37.7749; // 替換為你的緯度
const double home_lon = -122.4194; // 替換為你的經(jīng)度

void setup() {
  Serial.begin(115200);
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi connected");

  strip.begin();
  strip.show();
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin(api_url);
    int httpCode = http.GET();
    if (httpCode > 0) {
      String payload = http.getString();
      DynamicJsonDocument doc(1024);
      deserializeJson(doc, payload);

      double iss_lat = doc["iss_position"]["latitude"];
      double iss_lon = doc["iss_position"]["longitude"];

      double distance = haversine(home_lat, home_lon, iss_lat, iss_lon);
      updateLED(distance);
    }
    http.end();
  }
  delay(30000); // 每 30 秒更新一次
}

double haversine(double lat1, double lon1, double lat2, double lon2) {
  const double R = 6371; // 地球半徑,單位:公里
  double dLat = degToRad(lat2 - lat1);
  double dLon = degToRad(lon2 - lon1);
  double a = sin(dLat / 2) * sin(dLat / 2) +
             cos(degToRad(lat1)) * cos(degToRad(lat2)) *
             sin(dLon / 2) * sin(dLon / 2);
  double c = 2 * atan2(sqrt(a), sqrt(1 - a));
  return R * c;
}

void updateLED(double distance) {
  if (distance > 1000) {
    strip.setPixelColor(0, strip.Color(255, 0, 0)); // 紅色
  } else if (distance > 500) {
    strip.setPixelColor(0, strip.Color(255, 255, 0)); // 黃色
  } else {
    strip.setPixelColor(0, strip.Color(0, 255, 0)); // 綠色
  }
  strip.show();
}

上傳代碼

  1. 安裝 Arduino IDE:從 Arduino 官方網(wǎng)站下載并安裝 Arduino IDE。
  2. 安裝 ESP8266 板管理器:在 Arduino IDE 中,打開“文件”->“首選項(xiàng)”,然后打開“工具”->“開發(fā)板”->“開發(fā)板管理器”,搜索并安裝 ESP8266。
  3. 安裝所需庫:在 Arduino IDE 中,打開“草圖”->“包含庫”->“管理庫”,搜索并安裝以下庫:
    • ESP8266WiFi
    • ArduinoJson
  4. 上傳代碼:將上述代碼復(fù)制到 Arduino IDE 中,選擇正確的開發(fā)板類型(Wemos D1 Mini)和 COM 端口,然后點(diǎn)擊“上傳”按鈕。

測試與使用

測試步驟

  1. 連接電源:使用 Micro USB 數(shù)據(jù)線為 ESP8266 供電。
  2. 檢查 LED:觀察 RGB LED 的顏色變化,確保其能夠根據(jù) ISS 的距離正確顯示顏色。
  3. 調(diào)整位置:將天線放置在你的工作桌上,確保其能夠正常工作。
    在這里插入圖片描述
    在這里插入圖片描述

使用建議

  • 夜間觀察:在夜間,你可以通過 LED 的顏色變化快速判斷 ISS 是否在可見范圍內(nèi)。
  • 個(gè)性化:你可以通過修改代碼來調(diào)整 LED 的顏色和閃爍頻率,使其更適合你的需求。
  • 美化外殼:你可以使用噴漆或貼紙來美化 3D 打印的外殼,使其更加符合你的個(gè)人風(fēng)格。

項(xiàng)目擴(kuò)展

這個(gè)項(xiàng)目不僅是一個(gè)有趣的 DIY 項(xiàng)目,還可以根據(jù)你的需求進(jìn)行擴(kuò)展和定制。以下是一些擴(kuò)展建議:

  1. 添加更多傳感器:例如,添加溫度傳感器濕度傳感器,擴(kuò)展設(shè)備的功能。
  2. 數(shù)據(jù)記錄:添加一個(gè) SD 卡模塊,用于記錄 ISS 的過境數(shù)據(jù),方便后續(xù)分析。
  3. 添加藍(lán)牙功能:通過添加藍(lán)牙模塊,將測量數(shù)據(jù)傳輸到手機(jī)或其他設(shè)備。
  4. 美化外殼:使用噴漆或貼紙來美化 3D 打印的外殼,使其更加符合你的個(gè)人風(fēng)格。

總結(jié)

這個(gè) ISS 天線項(xiàng)目是一個(gè)非常有趣且實(shí)用的 DIY 項(xiàng)目,它不僅能夠讓你親手制作一個(gè)能夠?qū)崟r(shí)提醒你 ISS 過境的桌面天線,還能讓你學(xué)習(xí)到 3D 打印、電子電路搭建和 Arduino 編程的基礎(chǔ)知識。通過這個(gè)項(xiàng)目,你可以實(shí)現(xiàn)對 ISS 的實(shí)時(shí)追蹤,并通過 RGB LED 清晰地顯示其位置信息。更重要的是,你可以根據(jù)自己的需求對項(xiàng)目進(jìn)行擴(kuò)展和定制,讓它成為你獨(dú)一無二的桌面裝飾品。

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

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

作者:Svan.


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

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

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

相關(guān)推薦