NodeMCU 튜토리얼로 이전 얻기 시작, 우리는 보았다 NodeMCU 무엇 과 우리가 어떻게 아두 이노 IDE를 사용하여 프로그래밍 할 수 있습니다 . 아시다시피 NodeMCU에는 내부에 Wi-Fi 칩이 있으므로 인터넷에 연결할 수도 있습니다. IoT 프로젝트를 구축하는 것은 매우 유용합니다. 이전에 Arduino와 함께 ThingSpeak를 사용하여 IoT 온도계를 만들었지 만 여기서는 온도를 표시하는 자체 웹 페이지를 만들 것입니다.
이 튜토리얼에서는이 흥미로운 MCU에 대해 더 자세히 살펴보고 NodeMCU를 인터넷에 연결하여 사물 인터넷 세계로 천천히 뛰어들 것입니다. 여기서는이 모듈을 사용하여 웹 브라우저에서 실내 온도를 가져옵니다. 즉 , LM35 를 온도 센서로 사용하여 온도를 표시하는 웹 서버를 만듭니다.
필요한 구성 요소:
- NodeMCU-ESP12
- LM35 온도 센서
- 브레드 보드
- 수-암 커넥터
LM35 온도 센서:
LM35 는 아날로그 선형 온도 센서입니다. 출력은 온도 (섭씨)에 비례합니다. 작동 온도 범위는 -55 ° C ~ 150 ° C입니다. 출력 전압은 모든에 응답하여 변동이 10mV 입출력 C 상승 또는 온도 하강. 5V 및 3.3V 전원에서 작동 할 수 있으며 대기 전류는 60uA 미만입니다.
참고 LM35, 즉 3 시리즈의 변화 LM35A, LM35C 및 LM35D 시리즈를 사용하고 있는지 확인합니다. 주요 차이점은 온도 측정 범위에 있습니다. LM35D 시리즈는 섭씨 0 ~ 100도를 측정하도록 설계되었으며 LM35A 시리즈는 섭씨 -55 ~ 155 도의 더 넓은 범위를 측정하도록 설계되었습니다. LM35C 시리즈는 섭씨 -40도에서 110도까지 측정하도록 설계되었습니다.
우리는 이미 LM35를 다른 많은 마이크로 컨트롤러와 함께 사용하여 온도를 측정했습니다.
- LM35 및 8051 마이크로 컨트롤러를 사용하는 디지털 온도계
- LM35 및 AVR 마이크로 컨트롤러를 사용한 온도 측정
- Arduino 및 LM35 온도 센서를 사용하는 디지털 온도계
- Raspberry Pi를 사용한 실내 온도 측정
NodeMCU와 LM35 연결:
LM35와 NodeMCU 를 연결하는 회로도 는 다음과 같습니다.
LM35는 아날로그 센서이므로이 아날로그 출력을 디지털로 변환해야합니다. 이를 위해 A0으로 정의 된 NodeMCU의 ADC 핀을 사용합니다. LM35의 출력을 A0에 연결합니다.
NodeMCU 핀의 출력 전압은 3.3V입니다. 따라서 LM35의 Vcc로 3.3V를 사용합니다.
코드 설명:
데모 비디오 가 포함 된 완전한 코드 는 기사 끝에 제공됩니다. 여기에서는 코드의 몇 가지 부분을 설명합니다. Arduino IDE를 사용하여 MCU에 코드를 업로드하는 방법에 대해 이미 설명했습니다.
먼저 Wi-Fi 기능에 액세스하려면 ESP8266wifi 라이브러리를 포함해야합니다.
#포함
그런 다음 ssid 및 암호 필드 에 Wi-Fi 이름과 암호를 입력 합니다. 또한 변수를 초기화하고 전송 속도 115200으로 포트 80에서 서버를 시작했습니다.
const char * ssid = "*********"; // ssid const char * 암호 = "***********"; // 비밀번호 float temp_celsius = 0; float temp_fahrenheit = 0; WiFiServer 서버 (80); void setup () { Serial.begin (115200);
이러한 기능을 호출하여 Wi-Fi 연결을 설정합니다.
Serial.println (); Serial.println (); Serial.print ("연결 중"); Serial.println (ssid); WiFi.begin (ssid, password);
연결하는 데 몇 초가 걸릴 수 있으므로 연결이 설정되지 않을 때까지 '…'을 계속 표시합니다. 그러면 시스템이 계속 대기하고 클라이언트가 연결될 때까지 확인합니다.
while (WiFi.status ()! = WL_CONNECTED) { delay (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi가 연결되었습니다"); server.begin (); Serial.println ("서버 시작됨"); Serial.println (WiFi.localIP ()); }
에서는 루프 부, 센서 값을 읽고 섭씨 화씨로 변환하고 직렬 모니터에서 이러한 값을 표시.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // 아날로그 값을 섭씨로 변환하기 위해 보드에 3.3V가 있고 LM35의 출력 전압이 섭씨 상승 / 하강마다 10mV 씩 변한다는 것을 알고 있습니다. 따라서 (A0 * 3300 / 10) / 1023 = 섭씨 온도 _ 화씨 = 섭씨 * 1.8 + 32.0; Serial.print ("온도 ="); Serial.print (temp_celsius); Serial.print ("섭씨,");
웹 페이지에 온도를 표시하는 HTML 코드:
우리는 인터넷을 통해 세계 어디서나 접근 할 수 있도록 웹 페이지에 온도를 표시하고 있습니다. HTML 코드는 매우 간단합니다. 브라우저가 실행할 수 있도록 client.println 함수 를 사용 하여 HTML 코드의 각 줄을 에코하면됩니다.
이 부분은 온도 값을 표시하는 웹 페이지를 만드는 HTML 코드를 보여줍니다.
WiFiClient 클라이언트 = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Content-Type: text / html"); client.println ("연결: 닫기"); // 응답 완료 후 연결이 종료됩니다. client.println ("Refresh: 10"); // 10 초 후에 페이지 업데이트 client.println (); client.println (""); client.println (""); client.print ("
디지털 온도계
"); client.print ("온도 (* C) = "); client.println (temp_celsius); client.print ("
온도 (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); delay (5000); }일:
Arduino IDE를 사용하여 코드를 업로드 한 후 직렬 모니터를 열고 NodeMCU의 재설정 버튼을 누릅니다.
이제 보드가 코드에서 정의한 Wi-Fi 네트워크에 연결되어 있고 IP도 확보 한 것을 볼 수 있습니다. 이 IP를 복사하여 웹 브라우저에 붙여 넣으십시오. 웹 브라우저를 실행중인 시스템이 동일한 네트워크에 연결되어 있는지 확인하십시오.
디지털 온도계가 준비되었으며 10 초마다 웹 브라우저에서 온도가 자동으로 새로 고쳐 집니다.
인터넷에서이 웹 페이지에 액세스 할 수 있도록하려면 라우터 / 모뎀에서 포트 포워딩 을 설정하기 만하면 됩니다. 아래 의 전체 코드와 비디오를 확인하십시오.
또한 다음을 확인하십시오.
- Raspberry Pi 기상 관측소: 인터넷을 통한 습도, 온도 및 기압 모니터링
- Arduino 및 ThingSpeak를 사용하여 인터넷을 통한 실시간 온도 및 습도 모니터링