• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

IoTmaker

사물인터넷에 대한 모든 것 여기서 해결하셔요!

  • 홈
  • 책:마이크로파이썬을 활용한 사물인터넷
  • 책:따라 하면서 배우는 사물인터넷
  • 온라인 교육 코스
  • 새로운 소식
  • 의견보내기
  • 내 수강정보
  • 로그인
  • 회원가입

보관된 글: 10월 2020

ESP8266에서 analogRead() 함수 사용할 때 mqtt 연결이 끊어지는 문제 해결 방법

2020-10-18 작성자 IoTmaker

책에서 사용하는 부품 구입하기 ESP8266(Wemos d1 mi)에서는 analogRead(A0)를 소트웨어적인 방법으로 처리합니다. 이 함수를 연속으로 호출하면 마이크로컨트롤러의 시간을 독점하게 됩니다. 그래서 시간에 민감한 라이브러리에 나쁜 영향을 미쳐서 mqtt의 연결이 끊어지는 오류가 발생합니다.

가장 좋은 방법은 값이 필요한 주기를 정하여 analogRead(A0) 함수를 실행하는 것입니다.

또 다른 방법은 적당한 인수 값의 delay() 함수를 삽입하여 analogRead(A0) 함수의 호출 간격을 조절하는 것입니다. delay(10) 이면 오류 발생을 피할 수 있는데, 상황에 따라 그 값을 바꾸면 됩니다.

이 웹페이지에 나오는 아두이노 프로그램에서는 Aim 또는 Aims_로 시작되는 라이브러리를 사용합니다. 다음 링크에서 라이브러리를 다운로드 받을 수 있습니다. AIM 라이브러리 설치하기   AIMS 스니펫 정보
방법1: 주기적으로 실행하기
#include <myConfig.h>
#include <AimMqtt.h>
#include <AimTimer.h>

AimMqtt mqtt;
AimTimer tmRead(1.0);

void setup() {
    Serial.begin(115200);
    Serial.println();
    mqtt.begin(mqttSub,mqttCB);
}

void loop() {
    mqtt.run();

    if (tmRead.isOn()) {
        int v = analogRead(A0);
        Serial.println(v);
    }
}

void mqttSub() {

}

void mqttCB(String topic, String payload) {

}
방법2: delay()함수 추가
#include <myConfig.h>
#include <AimMqtt.h>
AimMqtt mqtt;

void setup() {
    Serial.begin(115200);
    Serial.println();
    mqtt.begin(mqttSub,mqttCB);
}

void loop() {
    mqtt.run();

    int v = analogRead(A0);
    Serial.println(v);
    delay(1000);
}

void mqttSub() {

}

void mqttCB(String topic, String payload) {

}

카테고리:ESP8266, IoTbook

Primary Sidebar

최신 글

  • 윈도우즈에서 Node-RED에 인증서 등록하고 SSL 적용하기
  • 윈도우즈에 Openssl 설치하고 인증서 만들기
  • 윈도우즈에 Node-RED 설치하고 실행하기
  • 아두이노 2.0 설치하고 ESP8266/ESP32 보드매니저 설정하기
  • 윈도우즈에 설치한 Mosquitto에 원격 접속허용하기

최신 댓글

    보관함

    • 2023년 3월
    • 2023년 2월
    • 2021년 8월
    • 2021년 2월
    • 2020년 10월
    • 2020년 8월
    • 2020년 7월

    카테고리

    • ESP32
    • ESP8266
    • IoT
    • IoTbook
    • Node-RED
    • 분류안됨

    메타

    • 로그인
    • 엔트리 피드
    • 댓글 피드
    • WordPress.org

    Footer

    Copyright © 2025 ·로그인