練習18 温湿度計を作る4 WiFi

前回、15分おきに温湿度を測定しその結果をOLEDに表示しました。
今回は、Wifiに接続したいと思います。

ソース

(1) ヘッダ

WiFi.hをインクルードし、ネットワーク環境定数を定義します。

#include <WiFi.h>
#define WLAN_SSID       "****"
#define WLAN_PASS       "****"

IPAddress ip(192, 168, **, **); 
IPAddress gateway(192, 168, **, **);
IPAddress subnet(255, 255, 255, 0);

(2) setup()

WiFi.config()でIPアドレスの設定を行います。↓
https://www.arduino.cc/en/Reference/WiFiConfig

  WiFi.config(ip, gateway, subnet);

(3) loop()

エネループの過放電を防止するために、しきい値Vcを設定しました。電池電圧がVc未満の時はWifi通信を行なわず、しきい値以上の時はsetupWiFi2()で接続します。
Vc=3.6は暫定、実際に使って調整したいと思います。

void loop(){
  read_SHT31();
  if(Vc>3.6){                      //<---過放電保護
    YN_Wifi = setupWiFi2(); 
    WiFi.disconnect();
  }
  Display_Pic3(1); 
  DeepSleep();
  delay(1000);
}

(4) 関数 setupWiFi2()

t_out 回以内の接続トライで接続できたら「1」、接続できなかったら「0」を返す。
トライ回数は、暫定20

int setupWiFi2() {
  int t_out = 20; 
  WiFi.begin(WLAN_SSID, WLAN_PASS);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    t_out=t_out-1; 
    if(t_out==0) break;
  }
  if(t_out!=0){
    return 1;
  }else{
    return 0;
  }
}

続く
次回は、サーバーに測定値を送付します。