« ガイガーカウンタ GC10(6)空間放射線量データをAmbientへ送信する | トップページ | Arduinoで作ろう(45) OpenWeatherMapの天気情報を取得してみる »

2020年4月10日 (金)

Arduinoで作ろう(44)  WeMos D1でNTP時計

Wemos_d1_ntp_tokei

 新型コロナウイルスの感染拡大に伴って,外出を自粛中です。
やることがないから,毎日「自宅警備」に専念しつつマイコンで遊んでます。
WeMos D1(ESP8266)はすでにArduinoでもなんでもないんだけど,開発環境としてArduino IDEを使ってるから引き続き「Arduinoで作ろう」の表題で続けます。
 今日は,WeMos D1をWi-FiでインターネットにつないでNTP (Network Time Protocol)を使った時計を作ってみました。LCDは秋月電子通商のコレを使っています。

20200410

//WeMos_D1 (ESP8266)  NTPデジタル時計

#include <ESP8266WiFi.h>
#include <time.h>
#include <ST7032.h> //https://ore-kb.net/archives/195
#define JST 3600 * 9
const char* ssid = "あなたの無線LANのSSID";
const char* password = "あなたのパスワード";
ST7032 lcd ;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  lcd.begin(16, 2) ;
  lcd.setContrast(30);
  configTime(JST, 0, "ntp.nict.jp", "ntp.jst.mfeed.ad.jp");
}

void loop() {
  static const char *wd[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
  time_t t = time(NULL);
  struct tm *tm = localtime(&t);
  char buff[12];
  sprintf( buff, "%04d/%02d/%02d(%s)",tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,wd[tm->tm_wday] );
  lcd.setCursor(0, 0) ;
  lcd.print(buff) ;
  sprintf( buff, "%02d:%02d:%02d",tm->tm_hour,tm->tm_min,tm->tm_sec );
  lcd.setCursor(0, 1) ;
  lcd.print(buff) ;
  delay(1000);
}

| |

« ガイガーカウンタ GC10(6)空間放射線量データをAmbientへ送信する | トップページ | Arduinoで作ろう(45) OpenWeatherMapの天気情報を取得してみる »

Arduino」カテゴリの記事

ESP8266 , ESP32」カテゴリの記事