> 웹 프론트엔드 > JS 튜토리얼 > ESP6 기반의 간단한 프로그래밍 가능 컨트롤러를 위한 자동 클라우드 보정 기능을 갖춘 RTC 설계

ESP6 기반의 간단한 프로그래밍 가능 컨트롤러를 위한 자동 클라우드 보정 기능을 갖춘 RTC 설계

Patricia Arquette
풀어 주다: 2024-10-20 14:35:29
원래의
537명이 탐색했습니다.

산업 및 농업의 자동화 제어 시스템에서 실시간 시계(RTC)는 매우 중요한 기능입니다.

예를 들어, 지정된 자동 급수 기간의 농업에서는 매일 8:00-9:00 사이에 솔레노이드 밸브 급수를 자동으로 엽니다.

이 기능을 사용하려면 컨트롤러에 RTC 시계와 솔레노이드 밸브의 켜짐/꺼짐을 제어하기 위한 출력 실행을 결정하는 달력이 필요합니다.

RTC 클럭의 중요한 특징은 정전 후에도 컨트롤러가 배터리에 의해 계속 전원을 공급받는다는 점입니다. 이를 위해서는 RTC 모듈의 전원 공급 장치가 프로세서의 다른 부분의 전원 공급 장치와 분리되어야 합니다. 정전 후 시계가 시간을 유지할 수 있을 만큼 길어지도록 하려면 작동 전류가 매우 낮아야 합니다.
예를 들어 STM32F103 프로세서에는 RTC 모듈 기능을 위한 별도의 VBAT 핀이 있으며 RTC 모듈의 작동 전류는 약 2uA 정도입니다. 5mAh 충전식 코인 셀 배터리 전원 공급 장치를 사용하는 경우 클록 유지 시간은 208일에 달할 수 있습니다. .

또한 RTC 클록에는 저전력 소비 목적을 달성하기 위한 클록을 제공하기 위해 저주파 32.768k 크리스털이 필요하며 패시브 크리스털은 일반적으로 약 30ppm 정확도에 도달할 수 있으며 1년의 시간 오류는 약 15입니다. 분.
능동 수정 발진기는 일반적으로 약 5ppm의 정확도를 달성할 수 있습니다. 시간 오차는 1년에 약 2분입니다.

ESP8266에는 이러한 RTC 모듈이 없습니다. I2C 외부 RTC 칩을 통한 인터페이스로 인해 제품 가격이 증가하고 약 30위안의 판매 가격에 도달할 수 없습니다.

하지만 ESP8266의 장점은 인터넷에 연결하기 쉽다는 점, 인터넷을 통해 자동으로 시간 보정을 할 수 있다는 점입니다.

따라서 저는 소프트웨어를 통해 RTC 시계 모듈을 설계했습니다. 일반적인 관행은 퍼페추얼 캘린더의 코드를 작성하고, 초를 계산하고, 분, 시간, 반올림 날짜 및 윤년을 처리하는 것입니다. 월 및 일련의 문제;

ESP8266은 mktime과 localtime의 두 가지 기능을 제공하여 달력과 타임스탬프의 상호 변환을 실현할 수 있습니다.
이 두 기능을 사용하려면 초만 계산하면 달력으로 변환할 수 있고 요일은 Caille 공식을 통해 연도, 월, 일로 계산할 수 있습니다.

클라우드 서버의 TCP 서버 코드에서는 컨트롤러로부터 하트비트 메시지가 수신되면 서버는 메시지에 포함된 컨트롤러의 현재 시간 값을 파싱하여 서버의 시간과 비교하고 그 차이가 특정 값을 입력하면 서버는 시간을 설정하고 컨트롤러의 시간을 보정하는 명령을 보냅니다.

컨트롤러 코드에서는 두 개의 변수 V225 및 V226을 사용하여 교정 시간 상태를 기록합니다. 여기서 V225는 컨트롤러 전원을 켠 후 0으로 지워지고 서버에서 교정 시간 명령이 오면 1로 설정됩니다. 수신되고 시간을 수정하는 작업이 수행됩니다.
V226은 전원을 켠 후 0으로 클리어되어 1초 틱 단위로 최대값까지 누적되며, 컨트롤러가 서버에서 캘리브레이션을 해야만 다시 0으로 클리어되어 계속해서 누적됩니다.

사용자는 자동화 제어를 위해 컨트롤러 시계가 정확한지 확인하기 위해 일부 작업을 실행하기 전에 스크립트를 사용하여 변수 V225가 1인지 판단하도록 프로그래밍할 수 있습니다.

V226을 특정 값, 출력 구현, 음향 및 조명 경보 장비 제어로 판단하여 컨트롤러가 정확한 시간, 즉석 경보 알림을 얻을 수 없도록 판단할 수도 있습니다.

또 다른 아이디어는 일부 컨트롤러를 네트워크로 연결하여 시간을 자동으로 수정할 수 없다는 것입니다. 타임스탬프를 FLASH에 저장할 수 있으며 정전 후 컨트롤러가 다시 시작되어 FLASH에서 저장된 타임스탬프를 읽어 시간을 계속해서 읽을 수 있습니다. 저장된 타임스탬프에 정전이 발생한 시간 사이의 시간 간격에 대한 시간 오류로 인한 정전인 재부팅이 발생하면 시간을 기본값으로 재설정하지 않습니다.

문제는 FLASH를 지울 수 있는 횟수에 제한이 있고, 모듈에 내장된 FLASH는 1000회 정도만 지울 수 있다는 점입니다.
타임스탬프가 1시간 간격으로 저장되면 1000회 삭제가 컨트롤러에서 약 41일 동안 지속됩니다.
이는 분명히 받아들일 수 없는 일입니다.

RTC design with automatic cloud calibration for simple programmable controller based on ESP6

RTC design with automatic cloud calibration for simple programmable controller based on ESP6

위 내용은 ESP6 기반의 간단한 프로그래밍 가능 컨트롤러를 위한 자동 클라우드 보정 기능을 갖춘 RTC 설계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿