前回、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; } }
続く
次回は、サーバーに測定値を送付します。