산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

고급 GPS 데이터 로거: 실시간 비행 추적, 최고 고도 및 속도 모니터링

부품 및 소모품

부품 수량
Arduino UNO 1
점퍼(버스바), 점퍼 리드 세트 1
Arduino 프로토 실드 1
1.8" TFT SPI LCD 화면 (마이크로 SD 소켓 포함) 1
u-blox GPS NEO 6M 1

필요한 도구 및 장비

프로젝트 소개

개요

저는 항공 모형 애호가로서 제 비행기의 속도와 고도를 알고 싶었습니다. 하지만 상용 GPS 데이터 로거는 매우 비쌉니다. 그래서 50유로 미만의 비용으로 Arduino 기반 GPS 데이터 로거를 직접 제작하기로 했습니다.

첫 번째 프로토타입

첫 번째 프로토타입은 Arduino Uno R3, 통합 SD 카드가 있는 Sainsmart ST7735 화면, NEO 6M V2 GPS 모듈로 구성되었습니다.

두 번째 프로토타입 (계획 중)

두 번째 버전에서는 Arduino Nano, SSD1306 OLED 화면, 동일한 GPS 모듈, 마이크로 SD 카드를 사용할 예정입니다. 케이스 포함 무게는 약 40g으로, 중형 항공기(50mm × 30mm × 22mm)에 쉽게 장착할 수 있습니다. 현재 부품 수령 대기 중입니다.

테스트

자동차 안에서 Arduino 화면을 촬영하기는 쉽지 않지만, 테스트 영상을 통해 결과를 확인할 수 있습니다. 다음 테스트는 더 작고 가벼운 프로토타입으로 무선 조종 항공기에서 진행할 예정입니다.

소스 코드

GPS 데이터 로거 (기본 버전)

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#define cs 10
#define dc 9
#define rst 8
#include <TinyGPS++.h>
#include <SoftwareSerial.h>

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
#define OLED_RESET 5

TinyGPSPlus gps;
SoftwareSerial ss(RXPin, TXPin);

int x = 80, xh = 80;
int maxhigh = 0;
int maxspeed = 0, speed1 = 0;
int high1 = 0;

void setup() {
  Serial.begin(9600);
  ss.begin(GPSBaud);
  tft.initR(INITR_GREENTAB);
  tft.fillScreen(ST7735_BLACK);
  tft.setCursor(5, 58);
  tft.setTextSize(1);
  tft.setTextColor(ST7735_GREEN, ST7735_BLACK);
  tft.print("초기화 중");
}

void loop() {
  tft.setTextSize(1);
  tft.setTextColor(ST7735_GREEN, ST7735_BLACK);

  while (ss.available() > 0) {
    gps.encode(ss.read());
    if (gps.location.isUpdated()) {
      drawFrame();
      displayLocation();
      displayDateTime();
      displayAltitude();
      displaySpeed();
      displaySatellites();
      smartDelay(400);
    }
  }
}

// 주요 함수들: drawFrame(), displayLocation(), displayDateTime(), displayAltitude(), displaySpeed(), displaySatellites(), smartDelay(), courbe(), courbeh(), vmax(), hmax()
// 상세 구현은 원본 코드 참조

SD 카드 저장 기능이 포함된 버전

// 기본 코드에 SD 라이브러리 추가 및 파일 쓰기 로직 포함
#include <SD.h>
const int cs_sd = 4;

void setup() {
  // ... 기존 초기화 코드 ...
  tft.setCursor(5, 70);
  tft.print("SD 초기화");
  delay(1000);
  if (!SD.begin(cs_sd)) {
    tft.setCursor(5, 82);
    tft.print("SD 오류");
    return;
  }
  tft.setCursor(5, 82);
  tft.print("SD 카드 OK");
  delay(1000);
  tft.fillScreen(ST7735_BLACK);
  
  File data = SD.open("donnees.txt", FILE_WRITE);
  data.println("");
  data.println("데이터 수집 시작");
  data.close();
}

void loop() {
  // ... 기존 루프 코드 ...
  // GPS 데이터 수신 시마다 SD 카드에 기록
  File data = SD.open("donnees.txt", FILE_WRITE);
  data.println(날짜 + " " + 시간 + " " + 위도 + " " + 경도 + " " + 고도 + " " + 최대고도 + " " + 속도 + " " + 최대속도);
  data.close();
}

회로도

회로도 이미지는 원본 프로젝트 페이지에서 확인할 수 있습니다. 주요 연결: GPS 모듈 TX→Arduino 핀 4, RX→핀 3, TFT SPI 인터페이스, SD 카드 모듈 CS 핀 4.

제조공정

  1. 삼성 SAMI, 아두이노 우노, 라즈베리 파이로 빠르고 신뢰성 높은 화재 감지 시스템 구축
  2. 아두이노로 태양광 패널 실시간 모니터링 - 저비용 데이터 수집 시스템
  3. 아두이노 에너지 모니터 & 데이터 로거 만들기 – Dr. Wattson 보드 활용
  4. 아두이노 우노로 만드는 LCD 애니메이션 & 게임 기초
  5. 아두이노 DHT11 이더넷 실드 온습도 데이터 로거
  6. 아두이노 우노로 기초 계산기 만들기 - 쉬운 프로젝트
  7. 아두이노 우노와 ATtiny85로 만드는 휴대용 POV(잔상) 디스플레이
  8. u-blox LEA-6H GPS 모듈: 아두이노 & 파이썬 연동 가이드
  9. 아두이노 우노와 1Sheeld로 만드는 4x4x4 LED 큐브 – 인터랙티브 LED 프로젝트
  10. 파이썬 3로 아두이노 우노 제어하기 – 시리얼 통신 LED 제어 기초