Arduino, NodeMCU

이도현·2023년 8월 10일
0

아두이노 학습

목록 보기
31/34



  • 무선 인터넷 기능을 갖춤
  • WIFI 모듈과 다양한 핀을 가지고 있으며, 이를 이용하여 온도, 습도, 조도 등의 센서와 LCD, LED, 모터 등의 장치를 제어할 수 있습니다.
  • USB 포트로 컴퓨터에 연결하여 개발할 수 있습니다.
  • 인터넷에 쉽게 연결할 수 있어, IoT 장비를 제어하거나, 웹서버를 구성하거나, 데이터베이스와 연결하여 데이터를 저장하고 처리하는 등 다양한 기능을 수행 할 수 있습니다.

1. 실습

#include <ESP8266WiFi.h>
#include <MiniCom.h>

const char *ssid = "TECH2_2G";
const char *password = "tech21234!";
MiniCom com;

void wifi_connect() {
	WiFi.begin(ssid, password); // 비밀번호가 없는 경우 NULL
	com.print(0, "try to connect");
	Serial.println();

	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}

	com.print(0, "WiFi connected");
	com.print(1, WiFi.localIP().toString().c_str());
	Serial.println();
	Serial.println(WiFi.localIP());
}
	
void setup() {
	com.init();
	wifi_connect();
}
void loop() {
	com.run();
}

2. WifiMiniCom

// WifiMiniCom.h
#pragma once
#include <ESP8266WiFi.h>
#include <MiniCom.h>

class WifiMiniCom : public MiniCom {
public:
	WifiMiniCom(int serial_bps=115200, int lcd_addr=0x27);
	void init(const char *ssid, const char *password);
};
// WifiMiniCom.cpp
#include "WifiMiniCom.h"

WifiMiniCom::WifiMiniCom(int serial_bps, int lcd_addr)
: MiniCom(serial_bps, lcd_addr) {
}

void WifiMiniCom::init(const char *ssid, const char *password) {
	MiniCom::init();

	WiFi.begin(ssid, password); // 비밀번호가 없는 경우 NULL
	print(0, "try to connect");
	Serial.println();

	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}

	print(0, "WiFi connected");
	print(1, WiFi.localIP().toString().c_str());
	Serial.println();
	Serial.println(WiFi.localIP());
}
#include <WifiMiniCom.h>

const char *ssid = "Campus7_Room4_2.4GHz";
const char *password = "12345678";

WifiMiniCom com;

void setup() {
	com.init(ssid, password);
}

void loop() {
	com.run();
}

3. 웹서버

#include <WifiMiniCom.h>

const char *ssid = "Campus7_Room4_2.4GHz";
const char *password = "12345678";

WifiMiniCom com;
WiFiServer server(80); //80: Web Server 표준 포트

void setup() {
	com.init(ssid, password);
	server.begin();
}

void loop() {
	WiFiClient client = server.available();
	if (!client) {
		return;
	}

	// Wait until the client sends some data
	Serial.println("new client");
	while (!client.available()) {
		delay(1);
	}

	// Read the first line of the request
	String request = client.readStringUntil('\r');
	Serial.println(request);
	client.flush();
	
	// Return the response
	client.println("HTTP/1.1 200 OK");
	client.println("Content-Type: text/html");
	client.println(""); // do not forget this one
	client.println("<!DOCTYPE HTML>");
	client.println("<html>");
	client.print("HELLO WORLD!");
	client.println("</html>");
	delay(1);
	Serial.println("Client disonnected");
	Serial.println("");
	}
profile
좋은 지식 나누어요

0개의 댓글