정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

WeMos D1 R1 서버 문제
이별 | 2019-12-09
 

1. 프로젝트 사용한 보드 종류

  (EX : 오렌지보드, 오렌지 BLE보드, 아두이노 UNO 등)

 WeMos D1 R1

 

2. 사용한 개발 프로그램명

  (EX : 아두이노 IDE, 스크래치, mBlock 등)

 아두이노 IDE

 

3. 사용한 센서 모델명

  (센서 모델명을 자세하게 적어 주실 경우 더 정확하게 확인할 수 있습니다.)

 DHT11센서, 조도센서 모듈(KY-018)

 

4. 연결한 회로 설명 (또는 이미지)

 조도센서-A0

온습도센서-D12

 

5. 소스코드 (주석 필수)

  (원하는 기능의 코드를 전부 작성해 드리긴 어렵습니다. 기초부터 차근차근 공부해보면서 코드를 만들어 보세요.)

 

#include <ESP8266WiFi.h>
#include "DHT.h"

#define DHTPIN 12
#define DHTTYPE DHT11
int cds = A0;
const char* ssid = "***";//임의적으로 비공개함.
const char* password ="***";//임의적으로 비공개함.

DHT dht(DHTPIN, DHTTYPE);
WiFiServer server(80);
 
void setup() {
  Serial.begin(115200);
  delay(10);
  dht.begin();
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
 
  server.begin();
  Serial.println("Server started");
 
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}
 
void loop() {
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
 
  Serial.println("new client");
  while(!client.available()){
    
  }
 
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();


  float humidity=dht.readHumidity();
  float temperature=dht.readTemperature();
  int cdsV=1024-analogRead(cds);
  
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println( "Refresh: 10");        // refresh the page automatically every 20 se
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.println("<head>");
  client.println("<meta charset='UTF-8'>");
  client.println("<title>Home IoT</title>");
  client.println("<body>");
  client.println("<h1><mark style='background-color: #0CFFEE'><span style='color: gray'>Home monitoring system</mark></h1>");
  client.println("<hr>");
  client.println("<ol>");
  client.println("<h2>");
  client.println("Notice!");
  client.println("<li>이 사이트는 10초마다 자동 재갱신됩니다.");
  client.println("<li>비교적 저렴한 센서들로 인하여 값이 부정확할 수 있습니다.\r\n");
  client.println("</h2>");
  client.println("</ol>");
  client.println("<ul>");
  client.println("<h2>");
  client.println("<li><mark style='background-color: #FF3333'>온도</mark>: ");
  client.println(temperature);
  client.println("°C");
  client.println("<li><mark style='background-color: #0066CC'>습도</mark>: ");
  client.println(humidity);
  client.println("<li><mark style='background-color: #FBEFEF'>조도</mark>: ");
  client.println(cdsV);
  client.println("</h2>");
  client.println("");
  client.println("</ul>");
  client.println("</body>");
  client.println("</head>");
  client.println("</html>");
  Serial.println("check");
  


 

 
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
 
}

 

6. 문제점 및 에러 내용

  (소스코드 문제일 경우 에러 내용도 같이 올려주세요.)

 위 소스코드 업로드와 보드의 구동(?)자체는 성공적으로 됩니다.

하지만, 보드가 연결중인 와이파이(임의로 A라고 지정하겠습니다.)와 다른 와이파이(B) 혹은 데이터(C)에서 서버에 접속을 시도할때는 연결이 안됩니다.

즉, 나의 디바이스가 A에 연결되어있을때는 문제가 없으나 B와 C같은 다른 환경에서는 무한 버퍼링과 함께 연결이 안됩니다.

 

WeMos D1 R1보드를 2개 가지고 있어서 2개로 모두 테스트 해봤으나 둘다 안됩니다.

두 보드는 모두 다른 곳에서 구입했고 제작한 공장도 다른듯 합니다(두 보드의 색에 차이가 있음).

무엇이 문제인가요?

 

이전글   |    WeMos D1 R1 업로드 에러 관련 질문드립니다(긴급) ... 2019-12-08
다음글   |    아두이노 nRF24L01 모듈관련 2019-12-12