본문 바로가기

아두이노 관련11

NodeMCU - ESP8266WebServer 클래스 사용하여 웹서버 구현하기 1. 개요 NodeMCU 개발보드로 웹서버를 구동하다보면 하나의 웹페이지가 아니라 경우에 따라 다른 웹페이지를 보여주고 싶은 경우가 생길 것이다. 예를 들어 CCTV, 집안 온습도, 보일러 등등 조절하는 IoT 프로젝트를 하는 경우 CCTV 페이지에서는 CCTV 만을, 온습도 페이지에는 온습도만을 보여주는 작업이다. 1.1 준비물 NodeMCU 개발보드(이 글에서는 NodeMCU v3) Micro 5pin USB 온습도 센서(DHT11) 2. 웹페이지 구성 이 글에서는 간단하게 웹페이지간 전환기능을 목적으로 각 페이지간 이동할 수 있는 하이퍼링크 태그만 있으며 그 외의 기능은 없습니다. 페이지는 총 3개로 메인페이지, 두번째페이지, 세번째페이지로 구성됩니다. 2.1 메인 페이지(주소 : /) This i.. 2020. 2. 20.
NodeMCU - NodeMCU MySQL DB(데이터베이스) 연동하기(웹서버 PHP) 1. 개요 NodeMCU 개발보드를 웹서버로 사용함으로써 온습도센서(DHT11)의 센서값을 웹페이지에 출력해보았고 웹클라이언트로 HTTP 웹페이지에 접속하는 작업을 해보았다. 이 글에서는 온습도 센서값을 웹페이지에 출력하며 또한 일정 시간마다 센서값을 PHP로 구현된 웹서버에 넘겨주어 데이터베이스(MySQL DB)에 값을 저장시키는 작업을 해볼 것이다. 1.1 요약 정리 7번 이후부터 병렬로 동작됩니다. 웹브라우저는 웹클라이언트 NodeMCU 보드는 웹서버(웹브라우저 기준)이자 웹클라이언트(라즈베리파이 기준) 라즈베리파이는 웹서버 및 데이터베이스 1. 웹서버 구축(라즈베리파이) 2. 웹서버 데이터베이스, 테이블 생성(라즈베리파이) 3. 웹서버에 요청이 들어올 때 PHP 파일을 통해 데이터베이스로 값 전송.. 2020. 2. 20.
NodeMCU - NodeMCU 웹클라이언트 HTTP 접속하기 1. 개요 추후 진행할 프로젝트에서 접속하고자하는 웹서버의 HTTP Response 나 웹페이지에서 필요한 정보를 사용하기 위해서 NodeMCU 보드를 웹클라이언트(WebClient)로서 사용하여 HTTP 사이트 접속방법을 설명합니다. 1.1 요약 정리 마이크로컨트롤러(NodeMCU) 제어보다는 웹에 대한 정보로서 기본지식이 없는 상황이라면 이해하기 어렵습니다. 웹, 특히나 이 글에서는 HTTP 프로토콜까지 설명해야하는데 설명하자면 글이 너무 길어지니 소스코드가 어떻게 동작하는지 큰 맥락만 설명합니다. 1. HTML 언어로 웹페이지 구성 (라즈베리파이) 2. 구성한 웹페이지를 웹서버에 업로드 (라즈베리파이) 3. 라즈베리파이를 Wi-Fi에 연결 (라즈베리파이) 4. 라즈베리파이를 웹서버로 구동 (라즈베리.. 2020. 2. 18.
NodeMCU - 웹서버 웹페이지 NodeMCU 온습도센서(DHT11) 사용하기 1. 개요 이번 글에서는 온습도센서(DHT11)를 사용하여 온도와 습도를 측정 후 값을 웹페이지에 띄워보는 작업을 할 것이다. 아주 간단한 작업이다. 웹클라이언트측에서 따로 데이터를 전송하는 것도 없으며 NodeMCU - 웹서버 웹페이지에서 LED 제어하기 글에서 현재 LED 의 상태를 웹페이지에 출력하는 작업을 해보았기 때문이다. 즉, 온도와 습도 값을 센서로부터 읽어와서 그 값을 띄워주기만하면 된다. 하지만 LED 상태표시와는 다르게 고려해야할 점이 하나 있다. LED 상태 표시에서는 ON/OFF 버튼을 누르는 시점에 하이퍼링크 태그로 홈페이지를 리프레쉬(Refresh)해서 보여주는 반면 온습도 센서는 그런 시점이 없기 때문이다. 당연히 F5 키나 새로고침을 계속 눌러주면 현재 값을 보여줄 수 있다... 2020. 2. 18.
NodeMCU - 웹서버 웹페이지에서 NodeMCU 서보모터 제어하기 1.개요 이전 글에서 LED 를 제어하는 웹페이지를 만들고 NodeMCU를 웹서버로 구동하는 코드를 업로드하여 LED 는 ON/OFF 하는 작업을 해보았다. 이번 글에서는 응용 과정으로 웹페이지에서 NodeMCU 웹서버를 기반으로 서보모터 각도를 조절하는 작업을 해볼 것이다. 제어하는 부분(요청/응답)은 LED ON/OFF 과 거의 비슷하여 오히려 슬라이더와 슬라이더에 의해 변경된 값을 구현하는데 JavaScript, Jquery 라이브러리 문법을 설명하는데 중점을 두겠다. 1.1 요약 정리 1. HTML 언어로 웹페이지 구성 (아두이노 IDE) 2. 구성한 웹페이지를 NodeMCU 보드에 업로드 (아두이노 IDE) 3. NodeMCU 보드를 Wi-Fi에 연결 (NodeMcu 보드) 4. NodeMCU .. 2020. 2. 18.
NodeMCU - 웹서버 웹페이지에서 NodeMCU LED 제어하기 1. 개요 이전 글에서 아두이노 개발환경으로 NodeMCU 개발보드를 사용하는 방법을 설명하며 추가적으로 보드로 LED 제어와 Wi-Fi에 연결하여 아이피를 확인해보는 간단한 테스트를 해보았다. 하지만 우리가 NodeMCU 보드를 사용하는 이유는 말하자면 ESP8266 칩, Wi-Fi 기능을 제대로 사용하기 위해서이다. 이 글에서는 HTML 로 간단하게 웹페이지를 만들어 NodeMCU 보드를 Wi-Fi에 연결 후 웹서버로 구동 시킨뒤 웹브라우저를 통해서 NodeMCU 웹서버를 접속 후 버튼을 통하여 NodeMCU 보드에 연결된 LED 를 켜고 끄는 기능을 구현할 것이다. 최대한 쉽게 설명해도 이해하기 어려운 것이 당연하다. 제대로 이해하기 위해서는 웹서버-웹클라이언트, HTTP 프로토콜, 웹언어인 HTM.. 2020. 2. 6.
NodeMCU - 아두이노 개발환경에서 NodeMCU 보드 사용하기 2020.02.05 동작 확인 완료 1. 개요 Wi-Fi 관련 프로젝트를 진행하기 위해 아두이노 Wi-Fi Shield 대용으로 ESP8266 칩을 사용하는 ESP-01 모듈을 구입하여 Web Server, Web Client, HTTP 등 여러가지 테스트를 해보았다. 만족할 만한 결과를 얻었으나 큰 문제가 있었다. ESP-01 모듈 단독적으로 사용할수 있는 IO 핀이 적어 계획하는 프로젝트를 사용하기 위해서는 다른 개발보드와 병행하여 사용해야 하는 것이었다. 또한 ESP-01 모듈을 기반으로 만들어진 만족스러운 라이브러리가 없어 스스로 AT 명령어로 제어해야하는 번거로운 점(모듈이나 Wi-Fi 자체를 공부한다면 이건 다른 관점으론 장점이다.) 등 불편한 부분이 있어 알아보던 중 "Wemos D1, No.. 2020. 2. 5.
아두이노 기초 - I2C 통신 - 04. I2C 통신이란 1. 개요 MPU6050(가속도/자이로 센서), DS18B20(온도 센서) 등의 센서를 사용해본 적이 있다면 I2C 통신이 뭔지 모르더라도 사용해본 적이 있을 것입니다. 지금까지 명령어의 의미도 모르고 단지 적혀있는 코드를 적고 센서 값을 얻어와 사용했었다면 여기서 왜 그런 명령어를 사용하였는지, 직접 데이터 시트를 보고 명령어를 사용하는 방법을 배울 수 있습니다. 2. I2C 통신이란? 대부분이 부르기 쉬워서 그런건지 처음부터 "아이 투씨"라는 말로 들어서 그런지는 모르지만 I2C의 정식 명칭은 "IIC(Inter-Integrated Circuit)" 즉, "칩(IC) 간의 통신"을 의미하여 I²C(아이 스퀘어드 시)입니다. 이 글에서는 표현하기 쉽게 계속 "I2C"로 적겠습니다. I2C 통신은 필립스.. 2020. 1. 24.
아두이노 기초 - 시리얼 통신 - 03. Serial 클래스 메서드 2 1. 개요 이 글은 아두이노를 어느 정도 다룰 줄 아는 분들을 기준으로 정리하였기 때문에 클래스, 메서드의 개념을 미리 공부하는 것을 추천합니다. 2. Serial 클래스 2.1 Serial.find() 수신받은 데이터에서 원하고자 하는 문자가 존재하는지 확인할 때 사용합니다. 프로토타입 bool Serial.find(target) 매개변수 target : 문자열에서 찾을 문자(char) 반환 값 bool : 문자열에 존재하면 true 존재하지 않으면 false 예제 코드 void setup() { Serial.begin(9600); } void loop() { // 수신받은 데이터가 존재하면 if(Serial.available() > 0) { if(Serial.find('a')) { Serial.pri.. 2020. 1. 24.