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

Arduino 무선 기상 관측소

구성품 및 소모품

Arduino Due
또는 Arduino Mega.
× 1
3.2" TFT HX8357C
× 1
DS3231 실시간 클록 모듈
× 1
DHT22 온도 센서
× 1
SparkFun 트랜시버 브레이크아웃 - nRF24L01+
× 1
브레드보드(일반)
× 1
남성 헤더 36 위치 1 행 길이(0.1")
핀 7개
× 1
점퍼 와이어(일반)
여러 개
× 1
Arduino Nano R3
× 1
샤오미 파워뱅크
× 1

이 프로젝트 정보

무선 기상 관측소를 구축하는 것은 훌륭한 학습 경험입니다. 이 프로젝트 빌드를 마치면 무선 통신이 작동하는 방식, 센서가 작동하는 방식, Arduino 플랫폼이 얼마나 강력한지 더 잘 이해할 수 있을 것입니다. 이 프로젝트를 기반으로 하고 얻은 경험을 바탕으로 앞으로 더 복잡한 프로젝트를 쉽게 구축할 수 있을 것입니다.

기상 관측소는 다양한 센서를 사용하여 날씨 및 환경과 관련된 데이터를 수집하는 장치입니다. 다음과 같은 많은 것을 측정할 수 있습니다.

<울>
  • 온도
  • <울>
  • 습도
  • <울>
  • 바람
  • <울>
  • 기압
  • <울>
  • 자외선 지수
  • <울>
  • 우리가 만들 기상 관측소에서 두 위치의 온도와 습도를 측정하고 현재 날짜와 시간을 표시할 것입니다. 기상 관측소를 구축하는 것은 매우 쉽습니다. 하지만 제조사가 컬러 TFT 디스플레이와 상용 유닛에 필적하는 기능을 갖춘 유닛을 만들 수 있습니까? 대답은 예입니다! 오픈 소스 소프트웨어와 하드웨어의 힘으로 이 인상적인 기상 관측소를 쉽게 구축할 수 있습니다!

    프로젝트는 송신기와 수신기의 두 부분으로 구성됩니다.

    송신기 온도와 습도를 측정하고 데이터를 무선으로 수신기로 보냅니다. 수신자 온도와 습도를 측정하고 원격 센서에서 데이터를 수신하여 모든 것을 대형 컬러 TFT 디스플레이에 표시합니다.

    이 프로젝트를 만들어 봅시다!

    1단계:모든 부품 가져오기

    이 프로젝트를 빌드하는 데 필요한 부품은 다음과 같습니다.

    <울>
  • Arduino Due ▶ http://educ8s.tv/part/ArduinoDue
  • <울>
  • 아두이노 메가 ▶ http://educ8s.tv/part/ArduinoMega
  • <울>
  • 아두이노 나노 ▶ http://educ8s.tv/part/ArduinoNano
  • <울>
  • 3.2인치 TFT 디스플레이 ▶ http://educ8s.tv/part/32TFT
  • <울>
  • DHT22 ▶ http://educ8s.tv/part/DHT22
  • <울>
  • NRF24L01 ▶ http://educ8s.tv/part/NRF24L01
  • <울>
  • DS3231 RTC ▶ http://educ8s.tv/part/DS3231
  • <울>
  • 브레드보드 ▶ http://educ8s.tv/part/SmallBreadboard
  • <울>
  • 전선 ▶ http://educ8s.tv/part/Wires
  • <울>
  • 헤더 핀 ▶ http://educ8s.tv/part/HeaderPins
  • <울>
  • 샤오미 파워뱅크 ▶ http://educ8s.tv/part/Powerbank
  • 프로젝트 비용은 약 40$입니다. Arduino Due 대신 Arduino Mega를 사용하면 프로젝트 비용을 5$로 줄일 수 있습니다. 나는 매우 빠르고 메모리가 많기 때문에 수신기에 Arduino Due를 사용하기로 결정했습니다. 이것은 우리가 프로젝트에 더 많은 기능을 추가함에 따라 앞으로 매우 유용할 것입니다.

    2단계:온도 및 습도 센서 - DHT22

    DHT22는 매우 인기 있는 온도 및 습도 센서입니다. 저렴하고 사용하기 쉬우며 사양에 따라 우수한 정밀도와 정확도가 요구됩니다.

    DHT 센서는 정전식 습도 센서와 서미스터의 두 부분으로 구성됩니다. 또한 내부에 일부 아날로그에서 디지털로 변환을 수행하고 온도 및 습도와 함께 디지털 신호를 출력하는 칩이 있습니다. 디지털 신호는 모든 마이크로컨트롤러를 사용하여 상당히 읽기 쉽습니다.

    DHT22의 특성

    <울>
  • 저비용
  • <울>
  • 3~5V 전원 및 I/O
  • <울>
  • 변환 중 최대 2.5mA 전류 사용
  • <울>
  • 2-5% 정확도로 0-100% 습도 판독값
  • <울>
  • -40 ~ 125°C 온도 판독값 ±0.5°C 정확도
  • <울>
  • 느림
  • 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 나노
  • <울>
  • DHT22 센서
  • <울>
  • NRF24L01+ 무선 모듈
  • <울>
  • 브레드보드
  • <울>
  • 일부 전선
  • 센서의 출력 핀을 Arduino Nano의 디지털 핀 4에 연결합니다. Ground와 Vcc를 연결하면 준비가 완료됩니다. 이제 NRF24L01 무선 모듈을 연결하기만 하면 됩니다.

    세 번째 이미지에 표시된 핀을 사용하여 부착하세요. 자세한 내용은 이전 단계에서 제가 첨부한 상세 영상을 시청해주세요.

    이제 송신기가 준비되었습니다. 이제 수신기로 이동하겠습니다.

    6단계:수신기 만들기

    수신기를 구축하려면 다음 부품이 필요합니다.

    <울>
  • Arduino Due 또는 Mega
  • <울>
  • DS3231 실시간 클록 모듈
  • <울>
  • DHT22 온도 및 습도 센서
  • <울>
  • NRF24L01+ 무선 모듈
  • <울>
  • 3.2인치 컬러 TFT 디스플레이
  • <울>
  • 브레드보드
  • <울>
  • 7개의 헤더 핀
  • <울>
  • 일부 전선
  • 먼저 7개의 헤더 핀을 구부려 Arduino Due 핀에 배치합니다. 접지에 하나, 3.3V에 하나가 필요합니다. I2C 핀에 2개가 필요합니다. 우리는 6에서 8까지의 나머지 3개의 디지털 핀이 필요합니다. 또한 Arduino Due 핀의 하드웨어 SPI 핀에 3개의 와이어를 납땜해야 합니다. MOSI, MISO 및 SCK가 필요합니다. 도표를 주의 깊게 확인하십시오. 전선을 헤더 핀에 연결하고 디스플레이를 연결할 준비가 되었습니다.

    DS3231 연결

    <울>
  • Arduino의 3.3V 출력에 있는 VCC 핀
  • <울>
  • GND 핀을 Arduino의 GND에 연결하고
  • <울>
  • SDA(직렬 데이터 라인) 핀과 Arduino의 SDA 핀
  • <울>
  • SCL(직렬 클록 라인) 핀을 Arduino의 SCL 핀으로
  • DHT22 센서 연결

    <울>
  • Arduino의 3.3V 출력에 있는 VCC 핀
  • <울>
  • GND 핀을 Arduino의 GND에 연결하고
  • <울>
  • Arduino의 디지털 핀 8에 대한 출력 핀
  • NRF24L01 모듈 연결

    <울>
  • GND 핀을 Arduino의 GND로
  • <울>
  • VCC 핀 - Arduino 3.3V
  • <울>
  • Arduino의 디지털 핀 6에 대한 세 번째 핀
  • <울>
  • Arduino의 디지털 핀 7에 대한 4번째 핀
  • <울>
  • 우리가 납땜한 SCK 핀에 대한 5번째 핀
  • <울>
  • 우리가 납땜한 MOSI 핀에 대한 6번째 핀
  • <울>
  • 우리가 납땜한 MISO 핀에 대한 7번째 핀
  • 7단계:송신기 코드

    우선 NRF24L01 무선 모듈로 작업할 때 우리의 삶을 더 쉽게 만들기 위해 RF24 라이브러리를 다운로드해야 합니다. DHT22 센서용 DHT 라이브러리도 필요합니다.

    <울>
  • DHT22 라이브러리:https://github.com/adafruit/DHT-sensor-library
  • 먼저 송신기 코드를 보자. 온도와 습도라는 두 개의 부동 소수점을 포함하는 간단한 데이터 구조를 보냅니다.

    통신 링크를 설정하려면 두 모듈 사이에 "파이프"를 만들어야 합니다. 그 파이프에는 주소가 있어야 합니다. 두 모듈은 통신하기 위해 동일한 파이프에서 쓰고 읽어야 합니다. 이것이 우리가 코드에서 정의한 첫 번째 것입니다. 파이프 주소를 "0"으로 설정합니다. 다음으로 다른 모듈과 통신하려는 채널을 정의합니다. NRF24L01 칩은 126개의 다른 채널을 지원합니다. 두 모듈은 서로 통신하기 위해 동일한 채널을 사용해야 합니다. 이 예에서는 채널 115를 사용하고 있습니다. 다음으로 모듈이 제공하는 최대 전송 전력을 사용하도록 정의합니다. 더 많은 전력을 사용하지만 통신 범위를 확장합니다. 다음으로 전송 데이터 속도를 정의합니다. 더 나은 범위를 달성하기 위해 가능한 가장 낮은 데이터 속도인 250Kbs로 설정했습니다. 다음 단계는 나중에 쓰기 위해 파이프를 여는 것입니다.

    루프 기능에서 센서의 온도 및 습도 값을 읽고 해당 데이터를 데이터 구조에 저장한 다음 데이터 구조를 파이프에 기록하여 데이터 구조를 보냅니다. 그게 다야 이 튜토리얼에서 첨부된 코드를 찾을 수 있습니다.

    FU361QHIQFCEYSE.ino

    8단계:수신자 코드

    이제 수신자 코드를 보자. 4개의 라이브러리가 필요합니다. 먼저 다음 링크에서 디스플레이용 라이브러리를 다운로드해야 합니다.

    디스플레이 라이브러리:https://github.com/Bodmer/TFT_HX8357_Due

    라이브러리를 다운로드한 후 User_Setup.h 파일을 열어야 합니다. 우리가 가지고 있는 디스플레이가 HX8357C 드라이버를 사용하고 있기 때문에 주석 행 13과 주석 행 14를 제거하십시오. 이제 3개의 다른 라이브러리를 계속 사용할 수 있습니다. 실시간 시계를 위한 라이브러리 하나, DHT22 센서용 라이브러리, 무선 모듈용 라이브러리가 각각 하나씩 필요합니다.

    <울>
  • NRF24L01:https://github.com/TMRh20/RF24
  • <울>
  • DHT22:https://github.com/adafruit/DHT-sensor-library
  • <울>
  • DS3231:https://github.com/SodaqMoja/Sodaq_DS3231
  • 코드를 살펴보겠습니다. 가장 먼저 해야 할 일은 실시간 시계 모듈이 아직 설정되지 않은 경우 시간을 설정하는 것입니다. 그러려면 setRTCTime에 현재 날짜와 시간을 입력하세요. 함수에서 setRTCTime의 주석 처리를 제거합니다. 54행에서 함수를 호출하고 프로그램을 Arduino에 업로드합니다. 이제 시간이 설정되었습니다. 하지만 setRTCTime에 주석을 달아야 합니다. 함수를 다시 호출하고 프로그램을 Arduino에 다시 한 번 업로드합니다.

    수신기의 코드는 다음과 같이 작동합니다. 설정 기능에서 모든 센서와 모듈을 초기화하고 사용자 인터페이스를 인쇄합니다. 그런 다음 루프 기능에서 새로운 무선 데이터를 지속적으로 확인합니다. 새 데이터가 있으면 해당 데이터를 변수에 저장하고 디스플레이에 인쇄합니다. 우리는 1분에 한 번씩 온도와 습도를 읽고 값에 변화가 있는 경우에만 디스플레이를 업데이트합니다. 이렇게 하면 디스플레이의 깜박임을 훨씬 더 줄일 수 있습니다! 또한 화씨 온도로 표시되는 코드 버전도 준비했습니다. 이 튜토리얼에 첨부된 두 버전의 코드를 모두 찾을 수 있습니다.

    F053BTXIQFCEZ09.ino FNV3X4LIQFCEZ0C.ino

    9단계:프로젝트 테스트

    모든 것의 전원을 켜고 모든 것이 예상대로 작동하는지 확인하는 마지막 단계입니다. 그렇다면 디스플레이 상단에 현재 날짜와 시간이 표시됩니다. 디스플레이 하단에서 리모컨과 로컬 센서 모두에서 온도와 습도를 볼 수 있습니다.

    원격 센서에 대한 데이터가 표시되지 않는 경우 , 송신기를 더 가까이 이동하십시오. 범위를 벗어났을 수 있습니다. 문제가 지속되면 모든 연결을 다시 한 번 확인하십시오. 문제가 있는 것 같습니다.

    보시다시피, 이 프로젝트는 오픈 소스 하드웨어와 소프트웨어가 무엇을 할 수 있는지에 대한 훌륭한 시연입니다. 몇 시간 안에 이렇게 인상적인 프로젝트를 만들 수 있습니다! 물론 이것은 시작에 불과합니다. 프로젝트에 더 많은 기능을 추가할 수 있습니다. 곧 버튼을 추가하여 그래프를 표시하고 다른 모드를 사용할 수 있습니다. 또한 더 많은 센서, 데이터 로깅, 인터넷 연결 등을 추가할 수 있습니다. 우리는 Arduino Due를 사용하고 있으므로 더 많은 것을 구현할 수 있는 충분한 메모리가 있습니다. 이 프로젝트에 대한 귀하의 의견을 듣고 싶습니다. 어떻게 진화하는 것을 보고 싶습니까? 아래 댓글 섹션에 의견이나 아이디어를 게시해 주세요!

    자세한 내용을 원하시면 소개의 YouTube 동영상을 보거나 제 웹 사이트를 방문하십시오. 봐주셔서 감사합니다!

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    깃허브
    https://github.com/adafruit/DHT-sensor-libraryhttps://github.com/adafruit/DHT-sensor-library
    깃허브
    https://github.com/TMRh20/RF24https://github.com/TMRh20/RF24
    깃허브
    http://DISPLAY:%20https://github.com/Bodmer/TFT_HX8357_Duehttp://DISPLAY:%20https://github.com/Bodmer/TFT_HX8357_Due
    깃허브
    https://github.com/SodaqMoja/Sodaq_DS3231https://github.com/SodaqMoja/Sodaq_DS3231

    제조공정

    1. Raspberry Pi 2 기상 관측소
    2. 라즈베리 파이 기상 관측소
    3. Weather Station V 2.0
    4. Arduino 디지털 주사위
    5. 아이언맨
    6. 나를 찾기
    7. Arduino 3D 인쇄 로봇 팔
    8. Arduino 가습기 제어
    9. $10 휴대용 Arduino 기상 관측소(AWS)
    10. eDOT - Arduino 기반 정밀 시계 및 기상 관측소