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

Arduino 기반 날씨 풍선 데이터 로거

구성품 및 소모품

Maxim 통합 DS18B20 프로그래밍 가능 분해능 1선식 디지털 온도계
× 2
DHT22 온도 센서
× 1
SparkFun 3축 가속도계 브레이크아웃 - ADXL335
× 1
남성 헤더 36 위치 1 행 길이(0.1")
× 2
Arduino Mega 2560
× 1
5050 SMD LED
× 1
저항 4.75k 옴
× 2
저항 100옴
× 3
저항 10k 옴
× 1
플래시 메모리 카드, MicroSD 카드
× 1
마이크로 SD 카드 모듈
× 1

필요한 도구 및 기계

납땜 인두(일반)
납땜 와이어, 무연

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

안녕 모두들!! 아두이노를 우주로 보낼 수 있는지 궁금할 것입니다. 거의. 날씨 풍선을 사용하여 Arduino, 카메라, 마늘 빵 또는 원하는 모든 것을 우주로의 3분의 1로 보낼 수 있습니다! 우주로 가는 길의 3분의 1이지만 대기의 거의 99%가 존재하지 않기 때문에 우리는 그것을 "우주의 가장자리"라고 부릅니다. 이 가이드는 매우 길지만 이 프로젝트를 확인하지 않는 한 Path 1까지 모든 내용을 읽으십시오. 어쨌든, 이 작업을 수행하는 방법에 대해 알아보겠습니다.

원하는 것과 기술 수준에 따라 세 가지 경로를 따라야 합니다. 세 가지 경로 모두 성층권의 엄청난 바람으로 인해 약간의 납땜 기술이 필요합니다. 각 경로는 어쨌든 다른 것보다 낫지 않습니다. 단지 여러분이 관심을 갖고 있는 것에 기반합니다. 빠르게 살펴보겠습니다.

경로 1:약간의 납땜 기술로 프로토 보드, 다양한 센서를 사용하여 간단한 데이터 로거 만들기.

경로 2:사전 설계된 PCB 실드(인쇄 회로 기판)를 사용하여 당사에서 설계 및 테스트한 깨끗하고 멋진 보드를 갖습니다.

경로 3:프로그램에서 자신의 PCB를 만드십시오. 이 가이드는 자신의 PCB를 설계하고 만드는 방법에 대해 자세히 설명하지 않지만 생각할 수 있는 몇 가지 지침에 대해 설명합니다. 배울 수 있는 멋진 가이드를 링크해 드리겠습니다.

각 경로에 대해 조금 더 살펴보겠지만 다음은 선택에 도움이 되는 몇 가지 팁입니다.

경로 1이 가장 쉽고 약간의 유연성을 허용합니다. 보드에서 센서, 보드 및 기능을 선택할 수 있습니다. 비행 중에 모든 것이 함께 유지되도록 하려면 약간의 납땜 기술이 필요합니다.

경로 2는 가장 제한적입니다. 즉, 지정된 센서 세트, 특정 Arduino 보드를 사용해야 하지만 PCB가 정말 깨끗하고 납땜이나 코딩에 대해 걱정할 필요가 없습니다. PCB에 대해 배우기 시작합니다. Gerber 파일, 내보내기 설정 및 살펴보실 수 있는 코드를 제공해 드립니다. PCB는 그리 비싸지 않으며 어디서 얻는지에 따라 달라질 수 있습니다. 이 PCB 5개를 2달러에 구입했지만 이 가격은 구입처에 따라 다를 수 있습니다.

경로 3은 가장 어렵고 많은 기술이 필요합니다. 자신의 PCB 또는 Arduino PCB 실드를 만드는 방법, 전체 코딩 방법, 보드 납땜 방법을 알아야 합니다. 이 모든 작업을 수행하는 방법을 알고 있다면 이 프로젝트를 직접 수행할 수도 있지만 이 가이드가 도움이 될 수 있는 몇 가지 매우 중요한 제한 사항과 세부 정보가 있습니다.

괜찮아!! 엄청난! 지금 가고자 하는 경로를 선택했어야 합니다! 하지만 바로 시작하기 전에 명심해야 할 매우 중요한 규칙이 있습니다. 거주 지역에 따라 날씨 풍선으로 물건을 보내는 것이 제한될 수 있으므로 이 규칙을 반드시 읽으십시오. 이 가이드에서는 올바른 풍선을 선택하는 방법, 페이로드 베이를 만드는 방법 및 풍선을 채우는 방법에 대해 설명하지 않지만 이 작업을 수행하는 방법에 대한 많은 가이드가 있으므로 링크해 드리겠습니다. Arduino Datalogger에 대한 제한 사항을 살펴보고 추가 FAA 제한 사항에 대한 링크를 남길 것입니다(미국에 거주하는 경우). 다음은 염두에 두어야 할 사항입니다.

1. 페이로드 베이에는 휴대폰 신호가 있을 수 없습니다. 어떤 이유로든 기내에 휴대전화가 있다면 비행기 모드여야 합니다.

2. GPS를 사용하여 풍선을 찾는 경우 HAM 무선 면허(시험 및 수수료 필요)를 취득해야 합니다.

3. 페이로드의 무게 대 크기 비율이 3.0온스/제곱인치를 초과하는 경우 총 페이로드 무게는 4파운드 미만이어야 합니다.

4. 모든 개별 페이로드/패키지는 6파운드 미만이어야 합니다.

5. 두 개의 페이로드가 있는 경우 총 페이로드 무게는 12파운드 미만이어야 합니다.

이것은 미국 거주자를 위한 FAA의 전체 지침에 대한 링크입니다.

경로 1 - 프로토 보드!

디자인을 시작하기 전에 염두에 두어야 할 몇 가지 고려 사항이 있습니다. 첫째, 당신이 거기에서 원하는 것. 제공된 회로도에는 간단한 온도 및 습도 센서, 기압 센서, IMU 및 SD 카드 모듈이 있습니다. 대부분의 프로젝트에서는 이것으로 충분하지만 Arduino로 페이로드 베이를 찾으려면 GPS 모듈을 포함하는 것이 좋습니다. 몇 가지 복구 옵션이 있습니다.

1. SPOT GPS 모듈. 이들은 장점과 단점이 있습니다. 이것들은 사용하기 정말 쉽고, 범위가 무제한이며(위성을 사용하여 휴대전화로 좌표를 전송합니다.) 배터리 수명이 길고 쉽게 구할 수 있습니다. 그러나 값이 비싸고 거꾸로 작동하지 않으며 신호가 두꺼운 물체에 의해 차단될 수 있습니다.

이것이 우리가 사용한 방법이지만 짐벌을 똑바로 유지하도록 설계하고 3D로 인쇄했습니다. SPOT 3 Satellite Messenger(Amazon)를 권장하지만, 이를 조사하고 다양한 유형의 이점을 확인하는 한 전적으로 귀하에게 달려 있습니다.

2. APRS 라디오. 이것은 가장 신뢰할 수 있고 많은 것을 할 수 있습니다. 모듈을 Arduino에 연결하고 라디오가 데이터, 좌표 등을 다시 보내도록 할 수 있습니다. 이렇게 하면 정확한 고도 측정을 얻을 수도 있습니다.

불행히도 이것은 배선도에 포함되지 않으므로 직접 배선하는 방법을 배워야 합니다. 또한 테스트에 필요한 HAM 무선 라이센스를 취득하고 소정의 수수료를 지불해야 합니다. 이 라이센스는 매우 유용하므로 그만한 가치가 있습니다. (미국 - 제한 사항은 거주 지역에 따라 다를 수 있음).

3. 휴대폰. 이 방법은 정말 사용하시면 안됩니다. 비행 후 휴대전화를 비행기 모드에서 해제하는 방법을 찾아야 할 뿐만 아니라 휴대전화 자체가 일반 SPOT보다 더 비쌀 것입니다. 이것이 목록에 있는 이유는 많은 사람들이 휴대전화를 백업으로 사용하기 때문입니다. 그러나 실제로 사용해서는 안 되는 것입니다.

페이로드를 복구하는 방법을 결정했으므로 이제 비행이 어떻게 생겼는지 살펴봐야 합니다. 예를 들어 Arduino가 낙하산을 원격으로 배포하도록 하려면 그렇게 하는 방법을 찾아야 합니다. 또한 어떤 센서를 사용할지 결정해야 합니다(온도가 -40C(-40F)까지 내려갈 수 있으므로 이를 고려해야 합니다.

Arduino에 전원을 공급하는 방법에 대해서도 생각하고 싶을 것입니다. 추운 온도는 많은 배터리의 성능을 저하시키므로 무게 제한 미만으로 유지하면서 물건을 아늑하게 유지하기 위해 스티로폼 상자와 같은 인클로저와 함께 대용량 전원 공급 장치가 필요할 수 있습니다.

얻고자 하는 데이터 유형, 카메라를 탑재할 예정인지, 탑재할 계획인지에 따라 일종의 체크리스트를 만드는 것이 좋습니다. 페이로드 베이를 만든 다음 페이로드를 기반으로 데이터 로거를 설계하는 것도 좋은 아이디어일 수 있습니다. 실제로 디자인하기 전에 생각하고 확인해야 할 사항이 많으므로 모든 것을 검토하는 데 정말 길고 신중한 시간을 들여야 합니다.

자, 여기 우리의 경로를 따라가는 경우 센서의 회로도 및 배선도가 있습니다.

Mega는 이러한 센서에 대해 매우 과도하지만 우리 코드도 사용하려면 Mega를 사용해야 합니다. Nano와 같은 것을 사용할 계획이라면 MicroSD 카드 모듈 핀아웃을 보드의 SPI 핀으로 변경하십시오.

부품 목록은 다음과 같습니다.

SparkFun ADXL337

헤더 핀

마이크로 SD 카드 모듈

DHT22 습도 센서

DS18B20 온도 센서

프로토 보드

아두이노 메가

내부 온도를 읽기 위해 다른 DS18B20을 추가하고 원하는 센서를 추가할 수 있지만 제공된 코드를 사용하려면 위의 배선도를 사용하십시오.

//DHT22 Setup#include "DHT.h#define DHTPIN 2#define DHTTYPE DHT22DHT dht(DHTPIN, DHTTYPE);//SD 카드 설정#include #include 파일 sdcard_file;int CS_pin =10;//DS18B20 온도 센서#include #include#define ONE_WIRE_BUS 3OneWire oneWire(ONE_WIRE_BUS);달라스 온도 센서(&oneWire 3);int scale =// ADXL337의 경우 3(±3g), ADXL377의 경우 200(±200g) 부울 micro_is_5V =true; // Arduino Uno와 같은 5V 마이크로 컨트롤러를 사용하는 경우 true로 설정하고 3.3V 마이크로 컨트롤러를 사용하는 경우 false로 설정하면 센서 해석에 영향을 줍니다. datavoid setup() {Serial.begin(9600);sensors.begin(); dht.begin(); pinMode(CS_pin, OUTPUT);//CS 핀을 출력 핀으로 선언 if (SD.begin()){ Serial.print("SD 카드를 찾았습니다!"); } else { Serial.print("SD 카드를 찾는 중 오류 발생"); 반품; } sdcard_file =SD.open("data.csv", FILE_WRITE); if (sdcard_file) { //파일이 있는 경우 } else { Serial.print("SD 카드 초기화 오류"); }sdcard_file.print("DS18B20");sdcard_file.print(",");sdcard_file.print("DHT22 Temp");sdcard_file.print(",");sdcard_file.print("흠");sdcard_file.print (",");sdcard_file.print("H.InX");sdcard_file.print(",");sdcard_file.print("rawX");sdcard_file.print(",");sdcard_file.print("rawY ");sdcard_file.print(",");sdcard_file.print("rawZ");sdcard_file.print(",");sdcard_file.print("scaledX");sdcard_file.print(",");sdcard_file. print("scaledY");sdcard_file.print(",");sdcard_file.print("scaledZ");sdcard_file.print(",");sdcard_file.println(" ");}무효 루프() {지연( 222);//가속도계 int rawX =analogRead(A0); int rawY =analogRead(A1); int rawZ =analogRead(A2); float scaledX, scaledY, scaledZ; if (micro_is_5V) // 전압이 5V인 경우 데이터 스케일링 (그것이다) { scaledX =mapf(rawX, 0, 675, -scale, scale); scaledY =mapf(rawY, 0, 675, -scale, scale); scaledZ =mapf(rawZ, 0, 675, -scale, scale); } else // 전압이 3.3V인 경우 데이터 스케일링 { scaledX =mapf(rawX, 0, 1023, -scale, scale); scaledY =mapf(rawY, 0, 1023, -scale, scale); scaledZ =mapf(rawZ, 0, 1023, -scale, scale); }//DS18B20 Tempsensors.requestTemperatures();int etemp=sensors.getTempCByIndex(0);//DS18B20 습도 센서 float h =dht.readHumidity(); float t =dht.readTemperature(); float f =dht.readTemperature(true); // 읽기가 실패했는지 확인하고 DHT에 대해 일찍 종료합니다. if (isnan(h) || isnan(t) || isnan(f)) { return; } // 화씨로 열 지수를 계산합니다(기본값) float hif =dht.computeHeatIndex(f, h); // 섭씨 열 지수 계산(isFahreheit =false) float hic =dht.computeHeatIndex(t, h, false); sdcard_file.print(etemp); sdcard_file.print(","); sdcard_file.print(t); sdcard_file.print(","); sdcard_file.print(h); sdcard_file.print(","); sdcard_file.print(hic); sdcard_file.print(","); sdcard_file.print(rawX); sdcard_file.print(","); sdcard_file.print(원시); sdcard_file.print(","); sdcard_file.print(rawZ); sdcard_file.print(","); sdcard_file.print(scaledX); sdcard_file.print(","); sdcard_file.print(scaledY); sdcard_file.print(","); sdcard_file.print(scaledZ); sdcard_file.print(","); sdcard_file.print(" "); sdcard_file.println(" ");sdcard_file.close();delay(223);}float mapf(float x, float in_min, float in_max, float out_min, float out_max){ return (x - in_min) * (out_max - out_min ) / (in_max - in_min) + out_min;}  

문제가 있는 경우 배선을 확인하고 각 개별 센서의 코드를 사용하여 문제를 격리하십시오. SD 또는 MicroSD 카드가 FAT16 또는 FAT32로 포맷되어 있고 16GB 이하인지 확인하십시오.

또한 데이터 로거의 상태 표시를 표시하기 위해 LED를 연결하는 것이 좋습니다. 데이터 로거가 실행되지 않는 상태에서 풍선을 보내고 싶지 않으므로 모든 항목을 세 번 확인하십시오.

또한 SD 카드 모듈에 문제가 계속 발생하면 전원을 변경해 보십시오. 많은 테스트 후 일부 모듈은 전원에 매우 민감하므로 안정적인 전원 소스를 찾으십시오.

저기요! 데이터 로거가 완료되었습니다. 온도, 습도 및 가속도계 데이터를 읽고 SD 카드에 기록해야 합니다. 고도 판독을 원하면 GPS를 사용해야 합니다. 기압 센서 기반 고도계의 90%는 30,000피트 이상에서는 작동하지 않습니다. 풍선이 이 임계값(아마도)을 넘으면 기압계를 사용할 수 없습니다. 나머지 과정에 대한 멋진 가이드가 필요하면 이 가이드를 확인하고 질문이 있는 경우 이 웹사이트를 통해 언제든지 문의하세요. 우리는 이 분야의 전문가는 아니지만 최선을 다해 도와드릴 의향이 있습니다.

문제가 있으면 아래에 댓글을 달거나 저희에게 연락하십시오. 가이드의 이 부분이 마음에 들었다면 YouTube 채널을 확인하고 아래에 댓글과 존경심을 남겨주세요. 영감과 멋진 아이디어를 위해 다른 경로를 살펴보는 것이 좋습니다!

경로 2 - 사전 설계된 PCB

그래서! 미리 설계된 PCB를 사용할 계획입니다. 이 사전 설계된 PCB를 사용하면 내부 온도, 외부 온도, 습도 및 가속도계 판독값을 얻을 수 있습니다. 납땜 기술과 다음 구성 요소가 필요합니다.

5050 SMD LED

SparkFun ADXL337

많은 헤더 핀

마이크로 SD 카드 모듈

DHT22 습도 센서

2X DS18B20 온도 센서

아두이노 메가

이클립스 PCB

PCB용 Gerber 파일은 이 GitHub 저장소에 있습니다. PCB/도식을 편집하려면 이 웹페이지로 이동하여 필요한 세부 정보를 입력하십시오. 파일 형식, 원하는 파일, 질문 등. 이 PCB/Arduino 실드의 작동 방식, PCB 서비스에서 올바르게 주문하는 방법(최소 $2), 올바르게 조립하는 방법에 대해 알아보겠습니다.

운 좋게도 우리는 비행 중에 이 PCB를 사용했기 때문에 많은 테스트를 수행했고 비행 후에 개선을 시켰지만 어쨌든 시작하겠습니다.

또한 PCB의 조립 및 세부 사항에 대한 몇 가지 비디오가 있습니다.

자, Gerber 파일 다운로드를 시작하겠습니다. GitHub 저장소로 이동하여 ZIP 파일을 다운로드하고 Gerber Eclipse 파일을 복사하여 붙여넣습니다. 온라인 서비스에서 ZIP 파일로 사용하기 때문에 거버용 ZIP 파일을 압축된 상태로 유지하는 것이 중요합니다.

이제 PCB를 찾을 시간을 옮겼습니다. 검색 엔진에서 PCB 서비스를 찾습니다. 선택할 수 있는 것이 많으며 그 중 많은 것이 장단점이 있습니다. 더 저렴한 가격으로 JLC PCB와 같은 일부 중국 제조 회사를 고려할 수 있습니다. 조금 더 지불할 의향이 있다면 일부 미국 기반 회사를 ​​보고 싶을 수도 있습니다. 구매하는 서비스는 중요하지 않습니다. 그들은 모두 훌륭한 가격에 정말 고품질의 PCB를 제공할 것이므로 전적으로 귀하에게 달려 있습니다.

이제 서비스를 선택했으므로 압축된 거버 파일을 업로드하고 다음 설정을 선택합니다.

<울>
  • 레이어와 치수는 그대로 두십시오.
  • <울>
  • 단일 PCB
  • <울>
  • 1.6mm 두께
  • <울>
  • 원하는 모든 색상(녹색이 일반적으로 더 빨리 생성됨)
  • <울>
  • 표면 마무리용 HASL(납 포함). 무연 땜납을 사용하는 경우 이를 변경해야 할 수도 있습니다.
  • <울>
  • 1oz 구리 중량
  • <울>
  • 골드 핑거 없음 및 프로덕션 파일 확인
  • <울>
  • Flying Probe 테스트를 위한 전체 테스트
  • <울>
  • 성곽 구멍 없음
  • <울>
  • 원하는 수량!
  • 이 설정의 대부분은 이미 설정되어 있으므로 색상만 변경하면 됩니다. 계속해서 주문하면 PCB가 생산을 시작합니다! 위에 나열된 센서를 주문하기에 좋은 시기이기도 합니다.

    이제 PCB를 조립할 차례입니다. 우리는 브레이크아웃 보드가 있는 센서를 사용하고 있고 이 PCB가 실드 역할을 하기 때문에 이것은 정말 쉬울 것입니다. 아래에는 납땜 가이드가 있습니다.

    또한 모든 헤더 핀을 PCB 측면에 납땜하십시오. 이것들은 Arduino Mega의 바로 위에 맞고 모든 배선을 할 것입니다.

    이 PCB가 작동하는 방식을 아는 것이 중요하므로 문제가 발생한 경우 문제를 해결하는 방법을 알 수 있습니다. PCB 내부에는 매우 작은 0.35mm 와이어가 있습니다. 이 와이어는 각 센서에서 PCB의 특정 헤더 핀으로 연결되어 Arduino에 연결됩니다. 이것은 깨끗한 빌드를 만들고 기존의 프로토보드 및 브레드보드보다 더 강력하고 안정적입니다. 이것은 정말 간단한 요약이지만, 더 자세히 알고 싶다면 여기 PCB 작동 방식에 대한 훌륭한 비디오가 있습니다.

    네! PCB를 납땜하여 Arduino Mega에 놓고 컴퓨터에 연결합니다. Arduino IDE를 열고 PCB 파일을 가져온 GitHub 리포지토리에 포함된 1.6 코드를 엽니다.

    microSD 카드를 FAT16 또는 FAT32로 포맷하십시오. microSD 카드 모듈은 16GB 이하여야 합니다. 그렇지 않으면 작동하지 않습니다. 2GB microSD 카메라라도 2시간 비행에 충분한 저장 공간이 될 것입니다.

    이제 모듈에 SD 카드를 삽입하고 1.6 코드를 업로드합니다. 직렬 모니터 내에서 SD 카드가 작동했다는 성공 메시지가 표시되고 데이터 로깅이 즉시 시작되어야 합니다.

    10초 정도 기다린 다음 SD 카드를 꺼내 컴퓨터에 삽입합니다. 모든 데이터가 포함된 .csv 파일이 있어야 합니다!

    GitHub 리포지토리가 작동하지 않는 경우를 위한 코드입니다.

    //DHT22 Setup#include "DHT.h#define DHTPIN 2#define DHTTYPE DHT22DHT dht(DHTPIN, DHTTYPE);//SD 카드 설정#include #include 파일 sdcard_file;int CS_pin =10;//DS18B20 온도 센서#include #include#define ONE_WIRE_BUS 3OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensor(&oneLometer3115) Setup;//AMP #include Adafruit_MPL3115A2 baro =Adafruit_MPL3115A2();int scale =3;boolean micro_is_5V =true;//LEDint Blue =7;int Red =6;int Green =5;void setup() {핀모드(23, 입력); //sdcard 쓰기를 중지하고 datasensors.begin();pinMode(Blue, OUTPUT);pinMode(Red, OUTPUT);pinMode(Green, OUTPUT);digitalWrite(Green, HIGH)를 저장하기 위해 스위치가 켜져 있는지 감지합니다. ); dht.begin(); pinMode(CS_pin, OUTPUT); // CS 핀을 출력 핀으로 선언 if (SD.begin()){ digitalWrite(Green, LOW); 디지털 쓰기(녹색, 높음); 디지털 쓰기(녹색, 낮음); 디지털 쓰기(녹색, 높음); 디지털 쓰기(녹색, 낮음); 디지털 쓰기(녹색, 높음); } else { digitalWrite(녹색, 낮음); 디지털 쓰기(빨간색, 높음); 지연(5000); 반품; } sdcard_file =SD.open("data.csv", FILE_WRITE); if (sdcard_file) { //파일이 발견되면 digitalWrite(Red, LOW); 디지털 쓰기(파란색, 낮음); 디지털 쓰기(녹색, 높음); } else { digitalWrite(녹색, 낮음); 디지털 쓰기(빨간색, 높음); 지연(1000); 디지털 쓰기(빨간색, 낮음); 디지털 쓰기(파란색, 높음); 지연(1000); 디지털 쓰기(녹색, 낮음); 디지털 쓰기(빨간색, 높음); 지연(1000); 디지털 쓰기(빨간색, 낮음); 디지털 쓰기(파란색, 높음); 지연(1000); 디지털 쓰기(빨간색, 높음); 디지털 쓰기(파란색, 낮음); }sdcard_file.print(",");sdcard_file.print("DS18B20");sdcard_file.print(",");sdcard_file.print("DHT22 Temp");sdcard_file.print(",");sdcard_file.print ("흠");sdcard_file.print(",");sdcard_file.print("H.InX");sdcard_file.print(",");sdcard_file.print("Int. Temp");sdcard_file.print( ",");sdcard_file.print("프레스. Pasc.");sdcard_file.print(",");sdcard_file.print("alt.");sdcard_file.print(",");sdcard_file.print(" rawX");sdcard_file.print(",");sdcard_file.print("rawY");sdcard_file.print(",");sdcard_file.print("rawZ");sdcard_file.print(",");sdcard_file .print("scaledX");sdcard_file.print(",");sdcard_file.print("scaledY");sdcard_file.print(",");sdcard_file.print("scaledZ");}무효 루프() { delay(222);digitalWrite(Green, LOW);digitalWrite(Blue, HIGH);if(! baro.begin()) {}float 파스칼 =baro.getPressure();float altm =baro.getAltitude();float tempC =baro.getTemperature();//가속도계 int rawX =analogRead(A0); int rawY =analogRead(A1); int rawZ =analogRead(A2); float scaledX, scaledY, scaledZ; if (micro_is_5V) // 전압이 5V인 경우 데이터 스케일링 (그것이다) { scaledX =mapf(rawX, 0, 675, -scale, scale); scaledY =mapf(rawY, 0, 675, -scale, scale); scaledZ =mapf(rawZ, 0, 675, -scale, scale); } else // 전압이 3.3V인 경우 데이터 스케일링 { scaledX =mapf(rawX, 0, 1023, -scale, scale); scaledY =mapf(rawY, 0, 1023, -scale, scale); scaledZ =mapf(rawZ, 0, 1023, -scale, scale); }//DS18B20 Tempsensors.requestTemperatures();//DS18B20 습도 센서 float h =dht.readHumidity(); float t =dht.readTemperature(); float f =dht.readTemperature(true); // 읽기가 실패했는지 확인하고 DHT에 대해 일찍 종료합니다. if (isnan(h) || isnan(t) || isnan(f)) { return; } // 화씨로 열 지수를 계산합니다(기본값) float hif =dht.computeHeatIndex(f, h); // 섭씨 열 지수 계산(isFahreheit =false) float hic =dht.computeHeatIndex(t, h, false); sdcard_file.println(sensors.getTempCByIndex(0)); sdcard_file.print(","); sdcard_file.print(t); sdcard_file.print(","); sdcard_file.print(h); sdcard_file.print(","); sdcard_file.print(hic); sdcard_file.print(","); sdcard_file.print(tempC); sdcard_file.print(","); sdcard_file.print(파스칼); sdcard_file.print(","); sdcard_file.print(altm); sdcard_file.print(","); sdcard_file.print(rawX); sdcard_file.print(","); sdcard_file.print(원시); sdcard_file.print(","); sdcard_file.print(rawZ); sdcard_file.print(","); sdcard_file.print(scaledX); sdcard_file.print(","); sdcard_file.print(scaledY); sdcard_file.print(","); sdcard_file.print(scaledZ); sdcard_file.print(",");delay(223);sdcard_file.close();}float mapf(float x, float in_min, float in_max, float out_min, float out_max){ return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;} 

    저기요! 데이터 로거가 완료되었습니다. 온도, 습도 및 가속도계 데이터를 읽고 SD 카드에 기록해야 합니다. 고도 판독을 원하면 GPS를 사용해야 합니다. 기압 센서 기반 고도계의 90%는 30,000피트 이상에서는 작동하지 않습니다. 풍선이 이 임계값(아마도)을 넘으면 기압계를 사용할 수 없습니다. 나머지 과정에 대한 멋진 가이드가 필요하면 이 가이드를 확인하고 이 웹 사이트를 통해 언제든지 문의하십시오. 질문이 있거나 우리 디자인을 기반으로 더 나은 PCB를 만들고 싶다면. 우리는 이 분야의 전문가는 아니지만 최선을 다해 도와드릴 의향이 있습니다.

    문제가 있으면 아래에 댓글을 달거나 저희에게 연락하십시오. 가이드의 이 부분이 마음에 들었다면 YouTube 채널을 확인하고 아래에 댓글과 존경심을 남기고 영감과 멋진 아이디어를 위해 다른 경로를 살펴보는 것이 좋습니다!

    경로 3 - 나만의 PCB 만들기

    이제 이 가이드에서는 자신의 PCB를 만드는 방법을 보여주지 않습니다. 따라서 진행하기 전에 PCB를 만드는 방법 또는 방법을 배워야 합니다. 이 부분에서는 법률을 위반하지 않는지 확인하기 위해 거쳐야 하는 몇 가지 기본 지침만 다룰 것입니다. 게시된 지침은 미국을 위한 것입니다!

    먼저, 이 비행에서 얻고자 하는 것을 브레인스토밍하고 적어야 합니다.

    다음은 표준 항공편에 포함되는 몇 가지 사항입니다.

    <울>
  • 온도
  • <울>
  • 습도
  • <울>
  • 고도
  • <울>
  • 대기질
  • <울>
  • 방사선
  • <울>
  • GPS
  • 원하는 모든 것을 포함할 수 있지만 모든 것을 살펴보아야 합니다. 온도 센서는 -50C(-58F)까지 읽을 수 있어야 하며 가능한 한 정확해야 합니다. 온도 판독은 태양의 태양 복사로 인해 매우 높은 온도에서 부정확할 수 있으므로 약간 보일 것입니다. 생각보다 따뜻합니다!

    당신은 또한 이것을 복구하는 방법에 대해 생각하고 싶을 것입니다. 다음은 옵션에 대한 간략한 설명입니다. 이에 대해 더 조사하고 싶을 수도 있습니다.

    스팟 GPS 모듈. 이들은 장점과 단점이 있습니다. 이것들은 사용하기 정말 쉽고, 범위가 무제한이며(위성을 사용하여 휴대전화로 좌표를 전송합니다.) 배터리 수명이 길고 쉽게 구할 수 있습니다. 그러나 값이 비싸고 거꾸로 작동하지 않으며 신호가 두꺼운 물체에 의해 차단될 수 있습니다.

    이것이 우리가 사용한 방법이지만 짐벌을 똑바로 유지하도록 설계하고 3D로 인쇄했습니다. SPOT 3 Satellite Messenger(Amazon)를 권장하지만, 이를 조사하고 다양한 유형의 이점을 확인하는 한 전적으로 귀하에게 달려 있습니다.

    2. APRS 라디오. 이것은 가장 신뢰할 수 있고 많은 것을 할 수 있습니다. 모듈을 Arduino에 연결하고 라디오가 데이터, 좌표 등을 다시 보내도록 할 수 있습니다. 이렇게 하면 정확한 고도 측정을 얻을 수도 있습니다.

    시험에 응시하고 소정의 수수료를 지불해야 하는 HAM 무선 면허를 취득해야 합니다. 이 라이센스는 매우 유용하므로 그만한 가치가 있습니다. (미국 - 제한 사항은 거주 지역에 따라 다를 수 있음).

    3. 휴대폰. 이 방법은 정말 사용하시면 안됩니다. 비행 후 휴대전화를 비행기 모드에서 해제하는 방법을 찾아야 할 뿐만 아니라 휴대전화 자체가 일반 SPOT보다 더 비쌀 것입니다. 이것이 목록에 있는 이유는 많은 사람들이 휴대전화를 백업으로 사용하기 때문입니다. 그러나 실제로 사용해서는 안 되는 것입니다.

    이것은 디자인에 도움이 될 수 있는 지침서입니다. 이를 위해 많은 제한 사항과 고려해야 할 사항이 있으므로 시간을 들여야 합니다!

    또 다른 디자인 고려 사항은 무게입니다. 이 가이드의 소개에서 언급했듯이 페이로드 유형에 따라 페이로드는 12lbs, 6lbs 또는 4lbs 미만이어야 합니다. 또한 대부분이 30,000피트를 넘지 못하기 때문에 고도 측정에 기압계를 사용할 수 없습니다.

    마지막 고려 사항은 전원입니다. 성층권에서는 기온이 매우 낮아질 것입니다. 배터리가 고장날 것이고 Arduino도 고장날 가능성이 매우 높습니다. 이에 대한 해결책을 찾아야 합니다. 틀림없이 가장 좋은 전략은 데이터 로거를 스티로폼 상자 안에 넣는 것입니다. 이렇게 하면 실내 온도가 실내 온도만큼 높게 유지됩니다. 태양 전지판이나 손난로를 고려할 수도 있습니다.

    괜찮아! 당신은 모든 것을 생각하고 원하는 센서를 다시 확인하고 모든 것을 기록했습니다. 회로도와 PCB를 만들 차례입니다. 회로도 및 PCB의 경우 이전과 같이 PCB 실드를 만들거나 전체 PCB를 만들 수 있습니다. (이 부분에 대해서는 경험이 있어야 하므로) 결정하도록 하겠습니다.

    PCB/쉴드를 구축한 후 모든 것을 다시 확인하여 작동하는지 확인하고 지침을 따르고 있는지 확인하십시오.

    저기요! 데이터 로거가 완료되었습니다. 온도, 습도 및 가속도계 데이터를 읽고 SD 카드에 기록해야 합니다. 고도 측정을 원하면 GPS를 사용해야 합니다. 기압 센서 기반 고도계의 90%는 30,000피트 이상에서는 작동하지 않습니다. 풍선이 이 임계값(아마도)을 넘으면 기압계를 사용할 수 없습니다. 나머지 과정에 대한 멋진 가이드가 필요하면 이 가이드를 확인하고 질문이 있는 경우 이 웹사이트를 통해 언제든지 문의하세요. 우리는 이 분야의 전문가는 아니지만 최선을 다해 도와드릴 의향이 있습니다.

    문제가 있으면 아래에 댓글을 달거나 저희에게 연락하십시오. 가이드의 이 부분이 마음에 들었다면 YouTube 채널을 확인하고 아래에 댓글과 존경심을 남기고 영감과 멋진 아이디어를 위해 다른 경로를 살펴보는 것이 좋습니다!

    결론

    날씨 풍선은 물건을 성층권으로 보내는 정말 멋지고 간단한 방법입니다. 너무 많은 규정 없이 카메라(이 경우 360도 카메라)를 높은 고도로 보내고 멋진 영상과 데이터를 얻을 수 있습니다. 하지만 한 가지!

    이것을 읽어보세요!!

    비행 전에 모든 규칙을 준수하고 레이더 디플렉터를 추가하고 NOTAM(항공사에 대한 통지)을 제출하십시오. 풍선 탑재량이 비행기에 부딪힐 가능성이 매우 높으며 생명을 손상시키거나 위험에 빠뜨리고 싶지 않습니다. 손상의 위험을 줄이기 위해 할 수 있는 모든 일을 하고, 물건을 떨어뜨리지 않도록 모든 것이 튼튼한지 확인하십시오. FAA는 이에 대해 많은 제한이 없습니다. Please do not make it so they have to restrict everything and ruin it for others by just simply following the rules.

    Anyways, I really, sincerely hope this guide helped out, and we enjoy making guides like these. If you want to support our club, please consider subscribing to our YouTube channel, and be sure to comment or contact us if you have any problems or questions!

    Happy Arduinoing! (is that even a term?)

    NM Rocketry Reviews

    맞춤형 부품 및 인클로저

    This is the .stl for the gimbal we made for the Spot Personal Tracker to keep it upright during the flight.stl file for the gimbal we used to keep the SPOT Personal Tracker Upright

    회로도

    For Path 1 For reference
    GitHub Repository for PCB files and Code
    Use this to download Gerber file for predesigned PCB and the code for it.https://github.com/nmrocketryreviews/HADLdatalogger

    제조공정

    1. Arduino 디지털 주사위
    2. 다중 온도 센서
    3. Arduino 게임 컨트롤러
    4. 모션센스
    5. 3D 프린터 화재 안전
    6. 픽셀 체이서 게임
    7. Arduino, Yaler 및 IFTTT가 포함된 IoT 게이지
    8. Arduino 반발 전자기 부상
    9. 단일 LED 매트릭스 Arduino 플립 시계
    10. CoroFence - 열 감지기🖖