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

Arduino Temp. 3.2 디스플레이가 있는 모니터 및 실시간 시계

구성품 및 소모품

Arduino Due
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

소개

친애하는 친구, 다른 튜토리얼에 오신 것을 환영합니다! educ8s.tv의 Nick입니다. 오늘은 이 실시간 시계 및 온도 모니터를 개발하는 방법을 알아보겠습니다! 시작하겠습니다!

몇 주 전에 Arduino Mega 및 Due를 사용하여 Arduino용 3.2인치 컬러 TFT 디스플레이를 테스트했습니다. 디스플레이는 잘 작동하고 나는 그것으로 간단한 프로젝트를 만들었습니다. 온도 모니터 및 실시간 시계입니다. 상단에서 보시는 바와 같이 현재 날짜와 시간, 현재 온도, 하단에는 아두이노가 측정한 최저 온도와 최고 온도를 기록하고 있습니다. 또한 단순한 형태로 기본적인 사용자 인터페이스를 디자인하려고 노력했습니다. 보시다시피 모든 것이 잘 작동하며 구축하기에 매우 쉽고 유용한 프로젝트입니다. 어떻게 하는지 봅시다!

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

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

<울>
  • Arduino Due
  • <울>
  • 3.2인치 컬러 TFT 디스플레이
  • <울>
  • DS3231 RTC 모듈
  • <울>
  • 남성 헤더
  • <울>
  • 와이어
  • 프로젝트 비용은 약 24$입니다. Arduino Due에는 약 14$, 디스플레이에는 8$, RTC 모듈에는 약 2$가 필요합니다.

    2단계:DS3231 실시간 클록 모듈

    DS3231 실시간 클록 모듈은 이름에서 알 수 있듯이 실시간 클록입니다. 배터리를 사용하면 전력 소비가 최소화되어 몇 년 동안 시간을 ​​유지할 수 있습니다.

    DS3231은 온도 보상 수정 발진기(TCXO) 및 수정이 통합된 저가의 매우 정확한 I2C 실시간 클록(RTC)입니다. 이 장치는 배터리 입력을 통합하고 장치의 주 전원이 중단될 때 정확한 시간 기록을 유지합니다. 수정 공진기의 통합은 장치의 장기적인 정확도를 향상시킬 뿐만 아니라 제조 라인의 부품 수를 줄입니다.

    RTC는 초, 분, 시간, 일, 날짜, 월 및 연도 정보를 유지 관리합니다. 윤년 수정을 포함하여 31일 미만인 달은 말일 날짜가 자동으로 조정됩니다. 시계는 AM/PM 표시기가 있는 24시간 또는 12시간 형식으로 작동합니다. 프로그래밍 가능한 시간 알람 2개와 프로그래밍 가능한 구형파 출력이 제공됩니다. 주소와 데이터는 I2C 양방향 버스를 통해 직렬로 전송됩니다.

    모듈 비용은 매우 낮습니다. 배터리를 포함하여 약 2$입니다!

    여기에서 받으세요.

    시간을 유지하고 온도 판독값을 얻기 위해 이를 사용할 것입니다!

    3단계:3.2인치 컬러 TFT 디스플레이(HX8357C 또는 HX8357B)

    나는 항상 내 Arduino 프로젝트를 위한 큰 디스플레이를 갖고 싶었습니다. 그래서 몇 주 전에 가격이 너무 매력적이기 때문에 Arduino Mega 및 Arduino Due용 3.2인치 컬러 TFT 디스플레이를 구입하기로 결정했습니다! 3.2인치 컬러 TFT 디스플레이의 경우 10$ 미만입니다. 그 가격으로, 당신은 잘못 갈 수 없습니다.

    여기에서 받으세요.

    디스플레이는 480x320 픽셀의 해상도를 가지며 뒷면에 SD 카드 어댑터가 있습니다. 나는 지금까지 SD 카드 기능을 사용하지 않았습니다. 앞으로 이용하도록 노력하겠습니다. 주의 깊게 살펴보면 디스플레이도 3.3V 레귤레이터를 사용하므로 5V 및 3.3V 로직 레벨에서 잘 작동한다는 것을 알 수 있습니다.

    디스플레이는 두 가지 변형으로 제공됩니다. 그 중 하나는 HX8357C 컨트롤러를 사용하고 다른 하나는 HX8357B 컨트롤러를 사용합니다. 운 좋게도 우리는 둘 다에 대해 동일한 라이브러리를 사용할 수 있습니다.

    디스플레이 라이브러리.

    라이브러리를 다운로드한 후 사용자가 가지고 있는 디스플레이가 저와 같은 HX8357C 드라이버를 사용하는 경우에는 User_Setup.h 파일 주석 행 13을 열고 주석 행 14를 제거해야 합니다.

    4단계:부품 연결

    나는 약간 저렴하지만 느린 Arduino Mega를 사용할 수 있지만 이 프로젝트를 빌드하기 위해 Arduino Due를 사용할 것입니다. Arduino Due는 Arduino Mega보다 훨씬 빠르고 메모리도 많기 때문에 이 프로젝트에서 선호합니다.

    처음에는 모든 부품을 함께 연결해야 합니다. RTC 모듈을 Arduino DUE에 연결하기 위해 이 수컷 헤더를 사용할 것입니다.

    4개의 헤더 핀이 필요합니다. 2개는 전원용이고 2개는 I2C 인터페이스용입니다. 이렇게 구부려서 Arduino Due 보드의 3.3V 핀에 하나, GND에 하나, 보드의 SDA와 SCL 핀에 나머지 두 개를 연결합니다. 일부 암 와이어를 사용하여 모듈을 보드에 연결합니다. 그게 다야

    이제 디스플레이를 보드에 부착할 수 있습니다. 이 두 핀을 Arduino 보드에 연결할 필요가 없으므로 부동 상태로 두겠습니다.

    이제 프로젝트에 전원을 공급할 준비가 되었습니다. 보시다시피 잘 작동합니다! 그것은 쉽습니다! 이제 컴퓨터로 가서 프로젝트의 소프트웨어 측면을 살펴보겠습니다.

    5단계:프로젝트 코드

    이제 코드를 살펴볼 준비가 되었습니다. 우리는 이 프로젝트에서 두 개의 라이브러리를 사용하고 있습니다:

    <울>
  • 디스플레이 라이브러리
  • <울>
  • DS3231 라이브러리
  • 설치해야 프로젝트가 잘 컴파일됩니다!

    가장 먼저 해야 할 일은 실시간 시계 모듈이 아직 설정되지 않은 경우 시간을 설정하는 것입니다. 그러려면 void setRTCTime 함수에 현재 날짜와 시간을 입력하고,

    <사전><코드> 무효 setRTCTime(){ DateTime dt(2016, 4, 4, 13, 56, 30, 1); // 년, 월, 일, 시, 분, 초, 요일 rtc.setDateTime(dt); }

    Setup 함수에서 함수 호출의 주석 처리를 제거합니다.

    <사전><코드> 무효 설정(){ rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618); 지연(100); 인쇄UI(); setRTCTime();}

    그리고 아두이노에 프로그램을 업로드 합니다. 이제 시간이 설정되었습니다. 하지만 다시 setRTCTime 함수 호출을 주석 처리하고 프로그램을 Arduino에 다시 한 번 업로드해야 합니다.

    <사전><코드> 무효 설정(){ rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618); 지연(100); 인쇄UI(); //setRTCTime();}

    보시다시피 프로젝트의 코드는 간단합니다. 사용자 인터페이스를 인쇄한 다음 날짜와 시간을 표시합니다.

    void loop(){ float 온도 =rtc.getTemperature(); getAndPrintTime(); printTemperature(온도); if(온도>maxTemperature) { maxTemperature =온도; 업데이트 최대 온도(); }if(온도 

    이 단계에 첨부된 코드를 찾을 수 있습니다. 프로젝트 웹사이트에서 최신 버전의 코드를 다운로드할 수 있습니다. http://educ8s.tv/arduino-real-time-clock-32/

    DueRTC.ino

    6단계:최종 생각

    몇 줄의 코드로 알 수 있듯이 매우 저렴한 비용으로 매우 유용한 프로젝트를 구축할 수 있습니다. 더 많은 센서, 그래프 및 Wi-Fi 기능을 갖춘 고급 기상 관측소가 될 것이기 때문에 이 프로젝트에서 더 많은 작업을 수행할 것입니다.

    Arduino Due는 매우 빠르고 메모리가 많기 때문에 사용하기에 이상적인 Arduino 보드라고 생각합니다. 이 프로젝트에 대해 어떻게 생각하세요? 어떻게 진화하는 것을 보고 싶습니까?

    아래 댓글 섹션에 의견이나 아이디어를 게시해 주세요.

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

    코드

    <울>
  • 코드 스니펫 #2
  • 코드 스니펫 #3
  • 코드 스니펫 #4
  • 코드 스니펫 #2일반 텍스트
    <사전> 무효 설정(){ rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618); 지연(100); 인쇄UI(); setRTCTime();}
    코드 스니펫 #3일반 텍스트
    <사전> 무효 설정(){ rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618); 지연(100); 인쇄UI(); //setRTCTime();}
    코드 스니펫 #4일반 텍스트
    void 루프(){ 부동 온도 =rtc.getTemperature(); getAndPrintTime(); printTemperature(온도); if(온도>maxTemperature) { maxTemperature =온도; 업데이트 최대 온도(); }if(온도 
    깃허브
    https://github.com/Bodmer/TFT_HX8357_Duehttps://github.com/Bodmer/TFT_HX8357_Due
    깃허브
    https://github.com/SodaqMoja/Sodaq_DS3231https://github.com/SodaqMoja/Sodaq_DS3231

    제조공정

    1. 실제 센서로 효과 제어
    2. 이슬람 기도 시간이 있는 Arduino 시계
    3. 단어 단위의 시간 분해능이 있는 워드 시계
    4. Nextion 디스플레이로 재생
    5. 시간 설정 및 알람 기능이 있는 TM1637 디지털 시계
    6. Arduino 및 Nokia 5110 디스플레이가 있는 DIY 전압계
    7. Nextion 디스플레이의 BME280 온도, 습도 및 압력
    8. Arduino 및 MPU6050으로 서보 모터 제어
    9. U-blox LEA-6H 02 GPS 모듈(Arduino 및 Python 포함)
    10. DS1302 RTC가 있는 간단한 알람 시계