본문 바로가기

Hardware/MCU(Arduino,ESP8266)48

온풍기용 스마트 콘센트 업그레이드 - WebSocket으로 동적 제어 및 센서값 기록하기 배경 ESP8266 모듈을 사용하는 데 있어서, 제 수준에서는 나름 끝판왕 프로젝트라고 할 수 있을 것 같습니다. 얼마 전에 캠핑장에서 사용하는 온풍기를 온도에 따라 자동으로 끄고 켜주기 위해서 릴레이를 ESP8266 모듈 중 하나인 wemos d1 mini에 연결하고 온습도 센서도 연결해서 온도 값에 따라서 온풍기가 연결될 릴레이를 컨트롤하는 프로젝트를 했던 적이 있었습니다. 프로젝트에 대한 상세는 아래 링크를 참고해 주세요. 온풍기 자동 온도조절용 스마트 콘센트 DIY 2021-06-03 update log: 캠핑장 실 사용 후기 추가 ESP8266 모듈을 활용한 새로운 프로젝트 캠핑용 온풍기를 온도조절이 가능하도록 하는 스마트 플러그를 만들어볼까 합니다. 지난번에 캠핑용 온풍기를 kwonkyo.ti.. 2021. 9. 18.
온풍기 자동 온도조절용 스마트 콘센트 DIY 2021-06-03 update log: 캠핑장 실 사용 후기 추가 ESP8266 모듈을 활용한 새로운 프로젝트 캠핑용 온풍기를 온도조절이 가능하도록 하는 스마트 플러그를 만들어볼까 합니다. 지난번에 캠핑용 온풍기를 리뷰한 적이 있었는데 이 온풍기의 단점은 전원 스위치 외에는 아무것도 없어서 주변 온도에 관계없이 전원이 켜져 있으면 따뜻한 바람이 계속 나온다는 겁니다. 온풍기를 사용하면 공기가 건조해지기 때문에 어느 정도 공기가 따뜻해지면 온풍기를 끄고 싶은데 그럴 수 없어서, 온도에 따라 온풍기의 전원을 제어할 수 있는 방법을 찾아보게 되었습니다. 캠핑 필수아이템 미니 온풍기, 툴콘 CODE26 후기 코로나 사태가 장기화되면서 캠핑 다니시는 분들 많으시죠? 저도 작년부터 캠핑을 시작한 캠린이입니다. 하.. 2021. 5. 28.
ESP8266, Watchdog (wdt reset error) Watchdog은 esp8266 시스템을 모니터링하는 도구로써 정해진 시간이 지나면 시스템을 리셋하는 기능을 합니다. 그래서 의도치 않은 에러가 발생하거나 무한루프에 빠져서 시스템 로직이 멈추게 되면 watchdog이 개입을 해서 esp8266 전체 시스템을 리부팅하게 됩니다. 반대로 말하면 시간이 오래 걸리는 로직을 수행할 때 시스템이 정상적으로 계속 작동하기 위해서는 watchdog이 발동하기 전에 watchdog timer(wdt)를 계속 리셋해주어야 합니다. ESP8266에는 두 가지 종류의 wahtchdog이 있는데 Software와 Hardware watchdog입니다. Software watchdog Software watchdog은 다음과 같이 무한루프에 빠지게 되면 발동이 되는데요. 꼭 .. 2020. 12. 9.
배터리를 사용하는 아두이노 프로젝트에 배터리 잔량 표시하기 리튬 폴리머 배터리를 사용해서 휴대용으로 만들어 본 미세먼지 측정기에 배터리 잔량을 표시하는 기능을 추가하였습니다. 배터리가 얼마나 남아있는지 알 수가 없었기 때문에 들고나갔다가 갑자기 꺼져버리게 되면 요즘은 micro-USB 단자를 충전할 수 있는 곳이 없기 때문에 난감해집니다. 아두이노 휴대용 미세먼지 측정기 만들기 완결편 - 아두이노 나노, PMS7003 센서, Nextion LCD, 3D프린� 2020-03-16 update log: 결선도 수정(아두이노 나노에서 5V외부입력 사용시 5V단자를 사용해야 함, Vin단자는 7V이상 전원 사용) 배경 지금 이 글을 쓰고 있는 2019년 7월 벌써 1주일이 넘게 미세먼지가 나�� kwonkyo.tistory.com 그래서 아두이노에 아날로그 단자를 이용.. 2020. 12. 7.
ESP8266 모듈로 무선(WiFi) 시리얼 모니터링 http://blog.daum.net/pg365/276 아두이노, ESP8266 등 MCU를 이용한 프로젝트를 할 때 디버깅의 중요한 툴 중 하나가 바로 시리얼 모니터입니다. 결과도 확인하고 컨트롤도 하고 여러 방면으로 많이 쓰이죠. 그런데 기본적으로 시리얼 연결은 USB를 통하는 방법을 가장 많이 사용하는데 유선으로 연결해야 하니 여러 가지 제약이 많습니다. 그래서 WiFi로 거리의 제약 없이 연결할 수 있는 방법을 찾아봤습니다. 무선 연결 방법으로는 BT나 WiFi를 이용하는 방법이 있을 수 있는데 BT를 이용하는 방법은 매우 간단합니다. BT에는 SPP(Serial Port Profile)란 프로파일이 있어서 Rx, Tx를 서로 연결만 해주면 간단하게 데이터를 주고받을 수 있기 때문에 BT모듈의 기.. 2020. 11. 23.
전압 분배 회로 계산기 동작전압이 3.3V 인 ESP8266 보드를 많이 사용하다보니 센서 전압이 높아서 전압 분배회로를 많이 사용하게 됩니다. 매번 찾아보기 귀찮아서 계산기를 만들어 봤습니다. Vs = V ↔ R1 = kΩ Vc = V I = mA R2 = kΩ 사용법 계산기는 강하해야할 전압을 정했을 때 필요한 저항값을 계산할 수도 있고 반대로 저항값을 정하면 강하되는 전압값을 구할 수도 있습니다. 저항 계산하기 Vs, Vc, I 값을 입력하고 "저항값 계산" 버튼을 클릭하면 오른쪽에 R1, R2값이 계산됩니다. 전류값은 20mA로 프리셋하였는데 필요에 따라 조정하시면 됩니다. 강하된 전압 계산하기 Vs, R1, R2를입력하고 "전압 역산" 버튼을 클릭하면 왼쪽에 Vc, I 값이 계산됩니다. 끝! 2020. 11. 20.
wemos D1 mini 기본사양 개요 wemos D1 mini는 ESP8266칩(ESP12) 기반의 4MB 플래시 메모리를 가진 보드입니다. 특징이라면 소형의 보드이지만 micro USB가 내장되어 있어 펌웨어를 올리기 편하도록 구성되어 있습니다. 기본사양 Operating Voltage 3.3V Digital IO Pins 11 Analog Input Pin 1 (최대 3.2V) Clock speed 80 / 160 MHz Flash size 4MB Pin Map Digital IO pinMode GPIO0~15: OUTPUT(default), INPUT, INPUT_PULLUP GPIO16: OUTPUT(default), INPUT, INPUT_PULLDOWN_16 Digital Input Level Low: < Vcc x 25% .. 2020. 11. 10.
ESP8266 웹서버+웹소켓+파일시스템(SPIFFS) 예제 ESP8266 모듈을 사용해서 전등을 컨트롤하는 프로젝트를 진행했었습니다. 컨트롤 인터페이스를 위해서 ESP8266 모듈을 웹서버로 활용할 수 있는 기능을 사용했었는데요. HTML 코드를 문자열로 저장하고 있다가 요청이 오면 그 문자열을 반환해서 웹페이지를 보여주는 방식이었습니다. 하지만 이런 방법으로는 웹페이지를 디자인하는데 제한사항이 너무 많습니다. 일단 웹페이지 디자인 수정이 필요한 경우 펌웨어 자체를 다시 올려야 하기 문제가 있습니다. 물론 OTA를 이용해서 나름 편리하게 수정을 할 수 있지만 업데이트 때마다 서버가 중단되어야 하는 문제는 해결하지 못합니다. 그리고 웹페이지에서 사용할 수 있는 소스에도 한계가 있습니다. 물론 ESP8266 모듈의 용량이 코딱지 만하기 때문에 물리적인 한계는 있지만.. 2020. 10. 24.
ESP01 모듈로 만드는 IoT 웹서버 2.0 - 웹소켓, 타이머 적용 오늘은 기존 프로젝트의 업그레이 후기입니다. ESP01 모듈과 릴레이를 활용해서 거실에서 사용하는 보조등을 와이파이로 켜고 끌 수 있는 컨트롤러를 만들어 봤었는데요. ESP01 모듈로 만드는 IoT 웹서버 - WIFI로 전등 켜기 요즘은 ESP8266 보드를 아두이노 보다 더 많이 사용하고 있습니다. USB 포트가 없어서 별도로 USB-UART 변환 도구가 있어야 하는 불편함이 있지만 크기도 작고 와이파이도 사용할 수 있기 때문에 실생 kwonkyo.tistory.com 내용을 보면 아시겠지만 기존의 방법은 웹서버를 구성하는 HTML 코드에 치환자를 넣어두고 HTTP 요청에 따라 치환자를 교체해 가면서 버튼이 눌려지는 효과를 흉내 내고 기능을 구현해 봤습니다. 그래서 일반적으로 우리가 인터넷을 사용하면서.. 2020. 10. 23.
ESP8266, NTP로 인터넷 시간 동기화 (feat. UDP, NTP 패킷 구조) NTP를 이용해서 현재시간을 동기화하는 예제입니다. 시간에 따라 동작 조건을 다르게 적용하고 싶은 프로젝트가 있을 때 현재시간 확인이 필요한데요. 그럴 때 사용할 수 있는 여러 가지 방법 중 하나입니다. 예제 코드는 이전 포스팅에서 소개한 적 있었던 "Beginners guide of esp8266"에서 가져왔고 가이드북에서 설명이 생략되어 있는 부분에 약간의 살을 더해서 NTP를 처음 접했던 제가 이해한 내용을 정리하였습니다. 시작하기 전에 먼저 알아두면 도움이 될 내용 코드에 상세하게 주석을 달아두어서 바로 코드를 보면서 이해해도 되겠지만 몇 가지 알아두면 이해하는데 도움이 될 내용부터 먼저 건들어 보겠습니다. UTC(협정 세계시) UTC는 쉽게 말하면 우리가 사용하는 시간의 표준으로 국제 기준입니다.. 2020. 10. 20.
ESP8266, mDNS 사용법 (윈도, 안드로이드는 아직 미지원) ESP8266 모듈이 네트워크에 연결이 되면 거기에 접속을 해서 구현한 기능을 활용해야 하겠죠. 이때 ESP8266 모듈이 네트워크에서 할당받은 IP주소를 알아야 접속을 할 수 있습니다. 대부분의 경우 동일한 환경에서 사용한다면 한번 접속한 IP주소가 유지되기 때문에 다음에 접속할 때도 저장된 주소로 접속하면 돼서 크게 불편할 일이 없지만 다른 네트워크로 이동하면서 테스트를 해야 한다면 매번 아이피 확인해서 접속하기가 번거로울 수 있습니다. 이럴 때 mDNS기능을 사용하면 고유의 도메인명으로 쉽게 접속이 가능합니다. 사용 방법은 다음과 같습니다. #include #include // 신호가 강한 AP에 골라서 접속하기 위한 라이브러리 #include // mDNS 기능을 위한 라이브러리 ESP8266Wi.. 2020. 10. 11.
ESP8266 네트워크 접속 방법 - wifi multi, softAP ESP8266WiFiMulti.h ESP8266 기반의 모듈, 보드를 사용할 때 와이파이 네트워크에 접속하기 위해서 보통 아래와 같은 방법을 사용합니다. #include // WIFI 라이브러리 const char* ssid = "SSID"; // 접속할 WIFI SSID const char* password = "PASSWORD"; // 접속할 WIFI 비밀번호 void setup() { Serial.begin(115200); // Start the Serial communication to send messages to the computer delay(10); Serial.println('\n'); WiFi.begin(ssid, password); // 와이파이에 접속 시도 Serial.print(.. 2020. 10. 10.
ESP8266-12 + DHT22, 웹에서 온도 습도 확인하기 2.0 어제 포스팅에서는 ESP12 보드에 DHT22 센서 모듈을 연결해서 간단하게 웹페이지에서 온도와 습도를 확인할 수 있는 예제를 따라 해 봤었는데요. 이번에는 웹페이지에서 보이는 온습도가 일정 시간 간격으로 자동으로 업데이트되도록 업그레이드해 봤습니다. ESP8266-12 + DHT22, 웹에서 온도 습도 확인하기 이전 포스팅에서 다룬 아두이노를 통해서 DHT 온습도 센서 값을 읽는 예제의 업그레이드 버전으로 이번에는 ESP8266 칩셋 기반의 ESP-12 모듈을 이용해서 웹에서 온습도를 읽어오는 예제입니다. 아�� kwonkyo.tistory.com 하드웨어 결선은 이전 포스팅과 동일하기 때문에 생략합니다. 앞에 언급된 이전 글 참고해 주세요. ^^ 소프트웨어 (펌웨어 코딩) 동작의 흐름을 먼저 설명하자.. 2020. 10. 9.
ESP8266-12 + DHT22, 웹에서 온도 습도 확인하기 이전 포스팅에서 다룬 아두이노를 통해서 DHT 온습도 센서 값을 읽는 예제의 업그레이드 버전으로 이번에는 ESP8266 칩셋 기반의 ESP-12 모듈을 이용해서 웹에서 온습도를 읽어오는 예제입니다. 아두이노 온습도 센서 - DHT11, DHT 22 온습도 센서 DHT11 그리고 DHT22를 사용해서 온도와 습도를 측정하는 방법입니다. DHT센서 기본 DHT11 센서와 DHT22 센서의 차이는 정밀도입니다. 많은 실습 키트 그리고 예제에서 DHT11 센서를 많이 사�� kwonkyo.tistory.com 그리고 ESP8266의 웹서버 관련된 내용은 아래 포스팅에서도 언급한적 있는데 이번엔 이 두 가지의 짬뽕이라고 생각하시면 됩니다. ESP01 모듈로 만드는 IoT 웹서버 - WIFI로 전등 켜기 요즘은 E.. 2020. 10. 8.
아두이노 온습도 센서 - DHT11, DHT 22 온습도 센서 DHT11 그리고 DHT22를 사용해서 온도와 습도를 측정하는 방법입니다. DHT센서 기본 DHT11 센서와 DHT22 센서의 차이는 정밀도입니다. 많은 실습 키트 그리고 예제에서 DHT11 센서를 많이 사용하는데 DHT22는 DHT11보다 좀 더 정밀하게 온도와 습도를 측정할 수 있는 센서입니다. DHT11 센서와 DHT22 센서의 차이점을 간단히 비교해 보면 아래와 같습니다. 대표적인 차이는 DHT22 센서가 좀 더 넓은 범위의 온도와 습도를 좀 더 정확하게 측정할 수 있지만 대신 가격이 좀 더 비싸다는 겁니다. DHT센서는 내부에 온도와 습도를 측정할 수 있는 부품이 각각 들어있는데요. 온도 측정은 온도에 따라 저항이 변화는 성질을 가진 서미스터를 이용해서 측정합니다. 그리고 습도를 측.. 2020. 9. 28.