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

IoTmaker

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

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

IoTmaker

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

라즈베리파이로 IoT 서버 만들기

2020-08-03 작성자 IoTmaker

스마트 홈이나 스마트 팜을 만들기 위해서는 여러 개의 디바이스가 필요합니다. 디바이스의 개수가 많아지면 디바이스를 서로 연결하기 위한 메시지 브로커가 필요하고, 이러한 디바이스를 통제할 대시보드도 필요하게 됩니다.

책 따라 하면서 배우는 사물인터넷에서는 라즈베리파이에 IoT 서버를 구성할 것을 권장합니다. IoT 서버의 기본 소프트웨어는 Mosquitto라는 메시지 브로커와 Node-RED라는 대시보드 소프트웨어입니다.

라즈베리파이는 5만원 정도에서 구입 가능한 싱글보드 컴퓨터입니다. 2.5A 정도의 USB어댑터를 전원으로 사용가능한 저전력 기기이므로 상시가동해도 부담이 적습니다.  

라즈베리파이의 운영 체제(OS)는 "데비안" 계열의 리눅스입니다. 윈도우즈에만 익숙한 사용자라면 라즈베리파이에 여러 소프트웨어를 설치하는 것이 쉽지 않을 수 있습니다. 이러한 문제를 해결하기 위하여 IoTstack이라는 메뉴 방식의 스크립트를 중심으로 웹 페이지를 구성하였습니다. 처음 접하는 환경이라 낯설겠지만, 웹페이지의 내용을 따라하면 크게 어렵지 않게 IoT 서버를 구성할 수 있습니다.

이 웹페이지에는 Mosquitto와 Node-RED를 설치하는 방법뿐만 아니라 외부 인터넷에서 안전하게 접속하기 위한 VPN(가상사설망)과 사용자 도메인을 관리하기 위한 duckdns.org 설정 방법도 포함되어 있습니다. 또한 포트 포워딩으로 AP(공유기)를 외부에 개방하는 방법도 안내합니다.

이 웹페이지에서는 도커(Docker)라고 하는 컨테이너 개념의 소프트웨어 플랫폼을 이용하여 여러 소프트웨어를 쉽게 설치할 수 있게 도와줍니다. 처음에는 Mosquitto와 Node-RED만 설치하면 되지만 나중에 필요한 소프트웨어를 쉽게 추가할 수 있습니다. 예를 들면 IoT 센서 데이터를 보관하기 위한 데이타 베이스인 InfluxDB나 데이터를 비주얼하게 보여주는 Grafana와 같은 소프트웨어도 추가로 설치할 수 있습니다.

라즈베리파이에 IoT 서버를 만들면 IoT 시스템을 구성하는 것이 쉬워집니다.

라즈베리파이에 IoT 서버 설치하기

카테고리:IoTbook 태그:Grafana, InfluxDB, IoTstack, Mosquitto, Node-RED

“따라 하면서 배우는 사물인터넷”을 출간합니다.

2020-07-22 작성자 IoTmaker

오늘 이 책을 출간했습니다. IoT 기기에 관한 책이 아니라 IoT 시스템에 관한 책입니다.

총 17장 450여 페이지의 두꺼운 책인데, 350페이지까지는 계속 코딩, IoT 서버 이런 것만 얘기합니다. 그나마 실제로 센서를 붙여서 하드웨어를 제어하는 사례는 60여 페이지 밖에 되지 않습니다.

뭔가 이상하지 않은가요?

시중에 나와 있는 IoT 책은 하드웨어 제어에 관한 내용이 주를 이루지만, 이 책은 주로 소프트웨어에 관해서 많은 얘기를 하고 있습니다.

우리나라 IoT 학습 환경을 보면 너무 하드웨어에 치우쳐 있다는 생각을 하게 됩니다. 그래서 그 반작용으로 소프트웨어에 대한 얘기를 좀 더 할 필요가 있다고 생각했습니다.

IoT 디바이스에 센서를 붙여서 활용하는 사례는 인터넷 검색을 하면 넘쳐납니다. 그러나 복잡한 IoT 시스템의 코딩을 잘 할 수 있는 방법에 관한 얘기는 별로 없습니다. 이 책은 이런 부분에 집중합니다.

저자가 IoT에 관심을 갖고 공부를 하면서 깜짝 놀란 것은, IoT 디바이스에 프로그램 코딩을 할 때 오브젝트 방식을 별로 사용하지 않는다는 점이었습니다. 난해한 코드가 길게 계속되는 경우가 많았습니다. 이런 방식으로 IoT 코딩은 너무 어렵습니다.

이 책에서는 저자가 만든 IoT용 오브젝트가 많이 제공됩니다. 그래서 이런 오브젝트만 연결해도 대부분의 문제를 해결할 수 있음을 보여줍니다.

IoT 디바이스 뿐만 아니라 IoT 서버도 필요합니다. 이 책에서는 이러한 서버에 대해서도 상당한 지면을 할애하고 있습니다. IoT 가 빅데이터나 AI와 연결되어 새로운 가치를 만들어 내기 위해서 좋은 서버는 반드시 필요합니다.

스마트 홈이나 스마트 팜과 같은 IoT 시스템을 만들어도 모바일로 원격에서 안전하게 접속하지 못하면 곤란합니다. 이 책에서는 이런 부분도 중요하게 다룹니다.

책 한권에 많은 것을 담고 싶었지만, 지면이 한정되어 있어서 많은 내용을 웹페이지로 옮겼습니다. 그리고 새로운 정보가 계속 웹페이지를 통하여 제공될 것입니다. 그래서 이책은 계속 성장해 나갈 것입니다.

이 책에서 제시되는 IoT용 오브젝트나 라이브러리는 모두 오픈 소스로 공개를 합니다. 누구든지 자유롭게 사용할 수 있게 했습니다. 이러한 저자의 노력이 국내 IoT 발전에 작은 거름이 되기를 기대하고 있습니다.

새로운 아이디어나 제언은 다음 링크에서 입력하면 저자에게 전달 됩니다.

저자에게 의견 보내기

카테고리:IoTbook

  • « Go to Previous Page
  • Page 1
  • Page 2

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 ·로그인