제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
그림> 그림> 그림>
무선 기상 관측소를 구축하는 것은 훌륭한 학습 경험입니다. 이 프로젝트 빌드를 마치면 무선 통신이 작동하는 방식, 센서가 작동하는 방식, Arduino 플랫폼이 얼마나 강력한지 더 잘 이해할 수 있을 것입니다. 이 프로젝트를 기반으로 하고 얻은 경험을 바탕으로 앞으로 더 복잡한 프로젝트를 쉽게 구축할 수 있을 것입니다.
기상 관측소는 다양한 센서를 사용하여 날씨 및 환경과 관련된 데이터를 수집하는 장치입니다. 다음과 같은 많은 것을 측정할 수 있습니다.
<울>우리가 만들 기상 관측소에서 두 위치의 온도와 습도를 측정하고 현재 날짜와 시간을 표시할 것입니다. 기상 관측소를 구축하는 것은 매우 쉽습니다. 하지만 제조사가 컬러 TFT 디스플레이와 상용 유닛에 필적하는 기능을 갖춘 유닛을 만들 수 있습니까? 대답은 예입니다! 오픈 소스 소프트웨어와 하드웨어의 힘으로 이 인상적인 기상 관측소를 쉽게 구축할 수 있습니다!
프로젝트는 송신기와 수신기의 두 부분으로 구성됩니다.
송신기 온도와 습도를 측정하고 데이터를 무선으로 수신기로 보냅니다. 수신자 온도와 습도를 측정하고 원격 센서에서 데이터를 수신하여 모든 것을 대형 컬러 TFT 디스플레이에 표시합니다.
이 프로젝트를 만들어 봅시다!
1단계:모든 부품 가져오기
이 프로젝트를 빌드하는 데 필요한 부품은 다음과 같습니다.
<울>프로젝트 비용은 약 40$입니다. Arduino Due 대신 Arduino Mega를 사용하면 프로젝트 비용을 5$로 줄일 수 있습니다. 나는 매우 빠르고 메모리가 많기 때문에 수신기에 Arduino Due를 사용하기로 결정했습니다. 이것은 우리가 프로젝트에 더 많은 기능을 추가함에 따라 앞으로 매우 유용할 것입니다.
2단계:온도 및 습도 센서 - DHT22
DHT22는 매우 인기 있는 온도 및 습도 센서입니다. 저렴하고 사용하기 쉬우며 사양에 따라 우수한 정밀도와 정확도가 요구됩니다.
DHT 센서는 정전식 습도 센서와 서미스터의 두 부분으로 구성됩니다. 또한 내부에 일부 아날로그에서 디지털로 변환을 수행하고 온도 및 습도와 함께 디지털 신호를 출력하는 칩이 있습니다. 디지털 신호는 모든 마이크로컨트롤러를 사용하여 상당히 읽기 쉽습니다.
DHT22의 특성
<울>Arduino와의 연결은 매우 쉽습니다. + 기호가 있는 센서 핀을 Arduino의 5V 또는 3.3V 출력에 연결합니다. - 기호가 있는 센서 핀을 GROUND에 연결합니다. 마지막으로 OUT 핀을 Arduino의 디지털 핀에 연결합니다.
아두이노에서 DHT22 센서를 사용하기 위해서는 DHT 라이브러리를 사용해야 합니다.
https://github.com/adafruit/DHT-sensor-library
3단계:DS3231 실시간 클록 모듈
DS3231 Real-Time Clock 모듈은 이름에서 알 수 있듯 실시간 클록이다. 배터리를 사용하면 전력 소비가 최소화되어 몇 년 동안 시간을 유지할 수 있습니다.
모듈 비용은 매우 낮습니다. 배터리를 포함하여 약 2$입니다! 우리는 기상 관측소 프로젝트에서 시간을 유지하기 위해 그것을 사용할 것입니다.
4단계:NRF24L01+:무선 모듈 그림>
NRF24L01 모듈은 저렴한 양방향 트랜시버 모듈입니다. 비용은 3$ 미만입니다! 2.4GHz 대역에서 작동하며 2Mbits의 데이터 전송률을 달성할 수 있습니다! 인상적이지 않나요? Arduino와 통신하기 위해 SPI 인터페이스를 사용하므로 사용하기가 매우 쉽습니다. Arduino와 작동하려면 모듈의 8개 핀 중 7개를 연결해야 합니다.
불행히도 모듈을 브레드보드에 연결할 수 없으므로 모듈을 Arduino에 연결하기 위해 암수 와이어를 사용할 것입니다. 모듈의 핀 번호 1은 GND입니다. 아두이노 그라운드에 연결해야 합니다. 다음 핀은 Vcc입니다. Arduino Uno의 3.3V 출력에 연결해야 합니다. 조심하세요! 5V에 연결하지 마십시오. 그렇지 않으면 모듈이 파손됩니다! 세 번째 핀의 이름은 CE이며 원하는 디지털 핀에 연결할 수 있습니다. 이 예에서는 디지털 핀 7에 연결하겠습니다. 핀 4는 CS이고 모든 디지털 핀에도 연결할 수 있습니다. 디지털 핀 8에 연결하겠습니다. 다음 핀은 Arduino Uno의 디지털 핀 13으로 가는 SCK입니다. 다음 핀은 디지털 핀 11로 가는 MOSI이고 디지털 핀 12로 가는 MISO의 마지막 핀입니다. 그게 다입니다!
Arduino 모듈을 사용하기 쉽게 하려면 다음 라이브러리를 사용해야 합니다. https://github.com/TMRh20/RF24
지금까지 NRF24L01+ 모듈을 사용해 본 적이 없다면, 간단한 프로젝트를 빌드하여 사용하는 방법은 첨부된 영상을 확인해주세요. 작동 방식을 이해하는 데 도움이 됩니다.
5단계:전송자 구축 그림> 그림>
먼저 송신기를 빌드해 보겠습니다. 매우 간단합니다.
우리가 사용하는 송신기의 경우:
<울>센서의 출력 핀을 Arduino Nano의 디지털 핀 4에 연결합니다. Ground와 Vcc를 연결하면 준비가 완료됩니다. 이제 NRF24L01 무선 모듈을 연결하기만 하면 됩니다.
세 번째 이미지에 표시된 핀을 사용하여 부착하세요. 자세한 내용은 이전 단계에서 제가 첨부한 상세 영상을 시청해주세요.
이제 송신기가 준비되었습니다. 이제 수신기로 이동하겠습니다.
6단계:수신기 만들기 그림> 그림> 그림> 그림> 그림>
수신기를 구축하려면 다음 부품이 필요합니다.
<울>먼저 7개의 헤더 핀을 구부려 Arduino Due 핀에 배치합니다. 접지에 하나, 3.3V에 하나가 필요합니다. I2C 핀에 2개가 필요합니다. 우리는 6에서 8까지의 나머지 3개의 디지털 핀이 필요합니다. 또한 Arduino Due 핀의 하드웨어 SPI 핀에 3개의 와이어를 납땜해야 합니다. MOSI, MISO 및 SCK가 필요합니다. 도표를 주의 깊게 확인하십시오. 전선을 헤더 핀에 연결하고 디스플레이를 연결할 준비가 되었습니다.
DS3231 연결
<울>DHT22 센서 연결
<울>NRF24L01 모듈 연결
<울>
7단계:송신기 코드
우선 NRF24L01 무선 모듈로 작업할 때 우리의 삶을 더 쉽게 만들기 위해 RF24 라이브러리를 다운로드해야 합니다. DHT22 센서용 DHT 라이브러리도 필요합니다.
<울>먼저 송신기 코드를 보자. 온도와 습도라는 두 개의 부동 소수점을 포함하는 간단한 데이터 구조를 보냅니다.
통신 링크를 설정하려면 두 모듈 사이에 "파이프"를 만들어야 합니다. 그 파이프에는 주소가 있어야 합니다. 두 모듈은 통신하기 위해 동일한 파이프에서 쓰고 읽어야 합니다. 이것이 우리가 코드에서 정의한 첫 번째 것입니다. 파이프 주소를 "0"으로 설정합니다. 다음으로 다른 모듈과 통신하려는 채널을 정의합니다. NRF24L01 칩은 126개의 다른 채널을 지원합니다. 두 모듈은 서로 통신하기 위해 동일한 채널을 사용해야 합니다. 이 예에서는 채널 115를 사용하고 있습니다. 다음으로 모듈이 제공하는 최대 전송 전력을 사용하도록 정의합니다. 더 많은 전력을 사용하지만 통신 범위를 확장합니다. 다음으로 전송 데이터 속도를 정의합니다. 더 나은 범위를 달성하기 위해 가능한 가장 낮은 데이터 속도인 250Kbs로 설정했습니다. 다음 단계는 나중에 쓰기 위해 파이프를 여는 것입니다.
루프 기능에서 센서의 온도 및 습도 값을 읽고 해당 데이터를 데이터 구조에 저장한 다음 데이터 구조를 파이프에 기록하여 데이터 구조를 보냅니다. 그게 다야 이 튜토리얼에서 첨부된 코드를 찾을 수 있습니다.
FU361QHIQFCEYSE.ino
8단계:수신자 코드 그림>
이제 수신자 코드를 보자. 4개의 라이브러리가 필요합니다. 먼저 다음 링크에서 디스플레이용 라이브러리를 다운로드해야 합니다.
디스플레이 라이브러리:https://github.com/Bodmer/TFT_HX8357_Due
라이브러리를 다운로드한 후 User_Setup.h 파일을 열어야 합니다. 우리가 가지고 있는 디스플레이가 HX8357C 드라이버를 사용하고 있기 때문에 주석 행 13과 주석 행 14를 제거하십시오. 이제 3개의 다른 라이브러리를 계속 사용할 수 있습니다. 실시간 시계를 위한 라이브러리 하나, DHT22 센서용 라이브러리, 무선 모듈용 라이브러리가 각각 하나씩 필요합니다.
<울>
코드를 살펴보겠습니다. 가장 먼저 해야 할 일은 실시간 시계 모듈이 아직 설정되지 않은 경우 시간을 설정하는 것입니다. 그러려면 setRTCTime
에 현재 날짜와 시간을 입력하세요. 함수에서 setRTCTime
의 주석 처리를 제거합니다. 54행에서 함수를 호출하고 프로그램을 Arduino에 업로드합니다. 이제 시간이 설정되었습니다. 하지만 setRTCTime
에 주석을 달아야 합니다. 함수를 다시 호출하고 프로그램을 Arduino에 다시 한 번 업로드합니다.
수신기의 코드는 다음과 같이 작동합니다. 설정 기능에서 모든 센서와 모듈을 초기화하고 사용자 인터페이스를 인쇄합니다. 그런 다음 루프 기능에서 새로운 무선 데이터를 지속적으로 확인합니다. 새 데이터가 있으면 해당 데이터를 변수에 저장하고 디스플레이에 인쇄합니다. 우리는 1분에 한 번씩 온도와 습도를 읽고 값에 변화가 있는 경우에만 디스플레이를 업데이트합니다. 이렇게 하면 디스플레이의 깜박임을 훨씬 더 줄일 수 있습니다! 또한 화씨 온도로 표시되는 코드 버전도 준비했습니다. 이 튜토리얼에 첨부된 두 버전의 코드를 모두 찾을 수 있습니다.
F053BTXIQFCEZ09.ino FNV3X4LIQFCEZ0C.ino
9단계:프로젝트 테스트 그림>
모든 것의 전원을 켜고 모든 것이 예상대로 작동하는지 확인하는 마지막 단계입니다. 그렇다면 디스플레이 상단에 현재 날짜와 시간이 표시됩니다. 디스플레이 하단에서 리모컨과 로컬 센서 모두에서 온도와 습도를 볼 수 있습니다.
원격 센서에 대한 데이터가 표시되지 않는 경우 , 송신기를 더 가까이 이동하십시오. 범위를 벗어났을 수 있습니다. 문제가 지속되면 모든 연결을 다시 한 번 확인하십시오. 문제가 있는 것 같습니다.
보시다시피, 이 프로젝트는 오픈 소스 하드웨어와 소프트웨어가 무엇을 할 수 있는지에 대한 훌륭한 시연입니다. 몇 시간 안에 이렇게 인상적인 프로젝트를 만들 수 있습니다! 물론 이것은 시작에 불과합니다. 프로젝트에 더 많은 기능을 추가할 수 있습니다. 곧 버튼을 추가하여 그래프를 표시하고 다른 모드를 사용할 수 있습니다. 또한 더 많은 센서, 데이터 로깅, 인터넷 연결 등을 추가할 수 있습니다. 우리는 Arduino Due를 사용하고 있으므로 더 많은 것을 구현할 수 있는 충분한 메모리가 있습니다. 이 프로젝트에 대한 귀하의 의견을 듣고 싶습니다. 어떻게 진화하는 것을 보고 싶습니까? 아래 댓글 섹션에 의견이나 아이디어를 게시해 주세요!
자세한 내용을 원하시면 소개의 YouTube 동영상을 보거나 제 웹 사이트를 방문하십시오. 봐주셔서 감사합니다!
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">제조공정
구성품 및 소모품 Arduino Nano R3 × 1 회전 전위차계(일반) × 7 SparkFun 푸시버튼 스위치 12mm × 7 MIDI 포트 × 1 저항 221옴 × 4 LED(일반) × 2 이 프로젝트 정보 2019년 3월 11일 업데이트 안녕하세요, 저는 아르페지에이터를 위한 새 펌웨어를 만들었습니다. 소스 코드가 완전히 다시 작성되었습니다. 이제 모듈식 구조를 통해 Arduino뿐만
이 튜토리얼에서는 Arduino 기반의 무선 기상 관측소를 만드는 방법을 배웁니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 실외 온도와 습도는 DHT22 센서를 사용하여 측정되며 이 데이터는 NRF24L01 송수신기 모듈을 사용하여 무선으로 실내기로 전송됩니다. 실내기에는 실내 온습도를 측정하는 또 다른 DHT22 센서와 아두이노 전원이 꺼지더라도 시간을 추적할 수 있는 DS3231 Real Time Clock 모듈이 있다. 이 모든 데이터는 0.96인치 OLED 디스플레이에 인쇄됩니다. Ar