[주변] 무선 송신 센서 + + + 디스플레이 응답

https://www.jianshu.com/p/cb0274d612b5

https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1572896567081&di=850e6d2014877a76396298eb9eef2b2b&imgtype=0&src=http%3A%2F%2Flearning.grobotronics.com%2Fwp-content%2Fuploads%2F2013%2F07%2Furl_uploaded_file_135884635050fe598fa6c4e.gif

 

추가 그렇지, 너무 늦었다.

 

#INCLUDE <Arduino.h> 
#INCLUDE <U8g2lib.h> 
사용법 #include "DHT.h" 
#INCLUDE <ESP8266WiFi.h> 
#INCLUDE <WiFiClientSecure.h> 


#ifdef와 U8X8_HAVE_HW_SPI 
#INCLUDE <SPI.h> 
#endif 다음 
#ifdef와 U8X8_HAVE_HW_I2C 
#INCLUDE <Wire.h> 
#endif 다음 
#DEFINE SCL 5 
#DEFINE SDA 4 
#DEFINE DHTPIN 13 
#DEFINE DHTTYPE DHT11 // DHT 11 

#ifndef의 STASSID의 
#DEFINE의 STASSID "HJhome" 
#DEFINE의 STAPSK "hphj29 ++" 
#endif 다음 

CONST 숯 *의 SSID = STASSID; 
CONST 숯 * 암호 = STAPSK; 

CONST * CHAR 호스트 = "192.168.31.203 '; 
CONST INT는 Httpsport = 5001;

U8G2_SSD1306_128X32_UNIVISION_1_SW_I2C의 u8g2 (U8G2_R0 / 클럭 * = * / SCL / * 데이터 = * / SDA / * = * / U8X8_PIN_NONE 재설정); // 그리고 Adafruit 깃털 ESP8266 / 32u4 보드 + FeatherWing OLED 
// U8G2_SSD1306_128X64_NONAME_F_SW_I2C의 u8g2 (U8G2_R0 / 클럭 * = * / SCL / * 데이터 = * / SDA / * = * / U8X8_PIN_NONE 재설정); // 모든 보드 디스플레이의 재설정없이 

DHT의 DHT (DHTPIN, DHTTYPE); 

무효 설치 () { 
  // 여기에 설치 코드를 넣어 한 번 실행합니다 : 
  u8g2.begin를 ();  
  u8g2.enableUTF8Print (); 
  Serial.begin (115200); 
  Serial.println (F ( "DHTxx 테스트!")); 

  dht.begin (); 
  
  Serial.print ( "연결"); 
  Serial.println (SSID); 
  WiFi.mode (WIFI_STA); 
  WiFi.begin (SSID, 비밀번호);
  동안 (WiFi.status ()! = WL_CONNECTED) {
    지연 (500); 
    Serial.print ( "."); 
  } 
  Serial.println ( ""); 
  Serial.println ( "무선 접속은"); 
  Serial.println ( "IP 주소 :"); 
  Serial.println (WiFi.localIP ()); 
} 

uint8_t의 m = 24; 

보이드 루프 () { 
  
  지연 (2000); 

  // 읽기 온도 나 습도가 약 250 밀리 초 걸립니다! 
  // 센서 판독은 최대 2 초 '이전'(그것의 매우 느린 센서) 일 수있다 
  ) (플로트 dht.readHumidity = H; 
  섭씨 (기본값)로 // 읽기 온도 
  플로트 t = dht.readTemperature (); 
  화씨로 // 읽기 온도 (isFahrenheit = TRUE)
  플로트 F = dht.readTemperature (TRUE); 

  // 어떤 실패 읽기 종료 초기 (다시 시도) 있는지 확인하십시오.
  경우 (때는 isNaN (H) || 때는 isNaN (t) || 때는 isNaN (F)) { 
    Serial.println (F ( "DHT 센서로부터 판독하는 데 실패!")); 
    반환; 
  } 

  // 화씨 (기본값)에서 계산 열 인덱스 
  HIF dht.computeHeatIndex = (F, H) 플로트; 
  섭씨 (isFahreheit = 거짓)에 // 계산 열 인덱스 
  HIC = dht.computeHeatIndex (t, H, 거짓) 플로트; 

  Serial.print (F ( "습도 :")); 
  Serial.print (1H); 
  Serial.print (F ( "% 온도 :")); 
  Serial.print (t); 
  Serial.print (F ( "° C")); 
  Serial.print (F); 
  Serial.print (F ( "° F 열 인덱스 :")); 
  Serial.print (HIC); 
  Serial.println (F ( "° F"));
  Serial.print (F ( "° C"));
  Serial.print (HIF); 

  //u8g2.setFont(u8g2_font_unifont_t_chinese1); // "你好世界"모든 글리프에 대한 chinese2를 사용 
  u8g2.setFont (u8g2_font_wqy16_t_gb2312b); 
  //u8g2.setFont(u8g2_font_6x13_tn); 
  u8g2.firstPage (); 
  할 { 
  u8g2.setFontDirection (0); 
  u8g2.clearBuffer (); 
  u8g2.setCursor (10, 13); 
  u8g2.print ( "-温度"+ (문자열) t + "C"); 
  u8g2.setCursor (10, 30); 
  u8g2.print ( "-湿度"+ (문자열) H + "%"); // 중국어에 "Hello World" 
  u8g2.sendBuffer (); 

  //u8g2.drawStr(0,15,"Hello 세계 ")! 
  } 동안 (u8g2.nextPage ()); 
  지연 (1000); 

  WiFiClient 클라이언트; 
  Serial.print ( "

  경우 {(client.connect (호스트는 Httpsport)!) 
    Serial.println는 ( "연결 실패"); 
    반환; 
  }는 

  측정 사이에 몇 초간 기다리 //. 
  지연 (1000); 


  
 
  문자열 URL = "/"; 
  Serial.print는 ( "URL을 요청 :"); 
  Serial.println (URL); 

  //组拼HTTPS请求헤더的
  문자열 jsonStr = 문자열 ( "") + 
                    "{\"습도 \ ":"+ H + ","+ 
                    "\"온도 \ ":"+ t + "}"; 
  / * 
  "{"데이터 스트림 ": [{"+ 
            " 'ID' ''+ dataId +" ' "+ 
            ", "데이터 포인트'[{" 
            + " '값'"+ 데이터 + 
            "}]}]}"; 
            * / 
  Serial.println (jsonStr);
  문자열 getStr = 문자열 (이하 "POST") + URL + "는 HTTP / 1.1 \ R & LT \ N-"+ 
               "호스트"+ 호스트 + "\ R & LT \ N-"+ 
               "를 User-- 에이전트 : 아두 이노 \ R & LT \ N-"+ 
               "연결 닫기 \의 R & LT \ N- "; 

  client.print (getStr); // 헤더에게 머리 전송 
  (문자열 (client.print"을 ") + "콘텐츠 길이를 : "+ jsonStr.length () +"\ 연구 \ 없음 \ 연구 \ n "); // 헤더 헤더 전송 - 데이터 콘텐츠 길이 (참고 : \ R \ n \ r에 \에서 n이 최종)이다 
  client.print (jsonStr) // 전송할 데이터 JSON가 

  Serial.println ("요청) "전송; 

  ; Serial.println ( "==========") 
  Serial.println는 ( "전송은 WAS :"); 
  Serial.println (jsonStr) 요청 데이터가 전송 // 인쇄 
  Serial.println를 ( "대답이었다 : "); 
  문자열 라인 =" ";
  동안 (client.connected () || client.available ()) 
{ 
  경우 (client.available ())
  {
    라인 client.readStringUntil = ( '\ n')에; 
    
  } 
} 
  Serial.println (행); 
  Serial.println ( "=========="); 
  
}

  

 

추천

출처www.cnblogs.com/colipso/p/11795977.html