BASIC4MCU | 질문게시판 | 가스 초기 값 설정
페이지 정보
작성자 밀키스 작성일2020-06-17 18:39 조회2,251회 댓글0건본문
안녕하세요.
우선 저의 작품은 와이파이 연동 방식을 이용하여 가스 값을 흘리면 차단기가 작동하고 웹에서도 ON OFF 버튼을 통해 차단기를 제어할 수 있는 작품입니다.
여기서 현제 소스를 거의 다 완성 된 상태라고 생각하고 웹에서 ON OFF 시키는건 문제가 없었습니다.
다만, 문제점이 초기에 가스값이 바로 측정이 되어버려서 가스 누출을 시켜주지않았는데도 바로 값이 있어서 차단기가 동작해버립니다.
회로는 다 짰지만 소스에서 어느부분을 수정해야 처음 가스 흘려주기 전에 0값에서 시작할 수 있게 설정할 수 있을까요?
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#include <ESP8266WiFi.h>
const char* ssid = "00000000"; // 공유기(AP) 접속 ID
const char* password = "0000000"; // 공유기(AP) 접속 패스워드
#define RELAY 4 // 릴레이 핀 4번 설정
#define GAS_PIN A0 // 가스 센서 핀 A0번 설정
int GAS;
WiFiServer server(80); // 서버 인스턴스 생성 (80번 포트 지정)
void setup() {
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.begin(115200);
delay(10);
pinMode(RELAY, OUTPUT);
// Serial 통신으로 WiFi 네트워크에 연결
Serial.println();
Serial.println();
Serial.print("Connecting");
Serial.println(ssid);
// 네트웍에 설정된 id와 패스워드로 접속
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Wifi Connected");
// 서버 시작
server.begin();
Serial.println("Sever Started");
// 서버의(esp8266) IP 주소를 출력
Serial.print("URL");
Serial.print("http://");
Serial.println(WiFi.localIP());
Serial.println("/");
}
void loop() {
// 클라이언트가 접속하는지 체크
WiFiClient client = server.available();
if (!client) {
return;
}
// 클라이언트가 데이터를 보낼 때까지 기다림
Serial.println("new client");
while (!client.available()) {
delay(1);
}
// 요청 첫 출을 읽어오기
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
int value = HIGH;
GAS = analogRead(GAS_PIN);
Serial.print("Gas : ");
Serial.println(GAS);
if (request.indexOf("/RELAY=ON") != -1) {
digitalWrite(RELAY, HIGH);
value = HIGH;
}
else if (request.indexOf("/RELAY=OFF") != -1) {
digitalWrite(RELAY, LOW);
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<meta http-equiv=\"refresh\" content=\"5\">"); // 웹 자동 업데이트
client.println ( "<h1> Gas Leakage Status </ h1>");
client.println("<br><br>");
client.print("Gas value : ");
GAS = (GAS /(float)1024) * 100; // 웹에 가스 값 퍼센트
client.print(GAS);
client.println(" %");
// 웹으로 RELAY ON OFF 동작
client.println("<br><br>");
client.println("<a href=\"RELAY=ON\"\"><button>Turn On </button></a>");
client.println("<a href=\"RELAY=OFF\"\"><button>Turn Off </button></a>");
}
댓글 0
조회수 2,251등록된 댓글이 없습니다.