2021年11月25日木曜日

[Code] NTPで取得した時刻をRTCへセットする




[Code] NTPで取得した時刻をRTCへセットする
NTPで取得した時刻をRTCへセットする(ESP32)
2021/6/28
投稿者:管理人
ESP-WROOM-32でやってみました。調査結果により書き直したので、記事タイトルと内容に
ズレがあります。
調べてわかったこと
起動時のNTP時刻取得後は、1時間毎のgetLocalTime()時に
NTP時刻同期していました。よって、提供される時刻の精度は問題ないと思われます。つまり、NTP又はネットワーク内タイムサーバに接続できる環境なら、RTCモジュール追加の必要はない?かもしれません。タイムサーバ接続不可能な環境で使うならRTCは有ったほうが良いと思います。
getLocalTime()
ローカル時刻を取得する。
失敗時10ms毎に取得繰返し5000mS(デフォルト)でタイムアウト
取得成功でtrue返す。失敗でfalse返す。
例 getLocalTime(&timeinfo, 5000)
getLocalTime()後のsntp_get_sync_statusをシリアルモニタ表示してみた。
前半 10分間隔 後半 11分間隔でgetLocalTime()してます。
約60分毎に sntp_get_sync_status = COMPLETED とあります。
スケッチ例 「SimpleTime」で実験中
(ESP32 Dev Module用のスケッチ例 ESP32→TIME→SimpleTime)
コメントとテストを追記したスケッチ(手直し中)
WiFi.disconnect(true);とWiFi.mode(WIFI_OFF);の2行は
接続を継続するため無効にしました。
include行は < から < へ修正して下さい。

hiro yamamoto works
https://sky.ap.teacup.com/melondaikonhou/252.html







#include <WiFi.h>
#include "time.h"

const char* ssid = "my-ssid";
const char* password = "my-password";

const char* ntpServer = "pool.ntp.org"; // NTPサーバ,IP Address指定できるか?
const long gmtOffset_sec = 9 * 3600; // 時差を秒で設定・・・9時間
const int daylightOffset_sec = 0; // サマータイム設定・・・0

void printLocalTime() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo, 5000)) {
// コメント追記 タイムアウトデフォルト5000mS
Serial.println("Failed to obtain time");
return;
}
//追記 NTP同期確認のため ・・・COMPLETEDで同期完了と思う
if (sntp_get_sync_status() == SNTP_SYNC_STATUS_COMPLETED) {
Serial.println("sntp_get_sync_status = COMPLETED");
Serial.println(&timeinfo, "%A, %B %m %d %Y %H:%M:%S");
// コメント追記 A 曜日英語表記,B 月英語表記,m 月の数字,d 日,Y 年,H時:M分:S秒
}
}
void setup() {
Serial.begin(115200);

//connect to WiFi
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");

//init and get the time
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
printLocalTime();

//disconnect WiFi as it's no longer needed
//WiFi.disconnect(true); //無効にしました
//WiFi.mode(WIFI_OFF); // 無効にしました
}

void loop() {
//delay(1000); // 無効にしました
printLocalTime();
delay(660000); // 追記しました
}
(スケッチ例を公開している方々に感謝します。)

RTC時刻合わせするスケッチもよかったらどうぞ
#include <WiFi.h>
#include "time.h"
#include <Wire.h>
#include <RTClib.h>

const char* ssid = "my-ssid";
const char* password = "my-password";

const char* ntpServer = "pool.ntp.org"; // pool.ntp.org
const long gmtOffset_sec = 9 * 3600; // 時差を秒で設定・・・9時間
const int daylightOffset_sec = 0; // サマータイム設定・・・0

unsigned long interval_t = 60000 * 61 * 1; // 60000(mS)*60*1=1h 60000(1min)
unsigned long previousMillis_t = 0;
unsigned long previous_t = 0;

char date_ymdhms[21]; // yyyy/mm/dd,hh:mm:ssn0

RTC_DS3231 rtc;//select use RTC DS3231

void printLocalTime() {
//sntp_get_sync_status()は時間同期のステータスを取得します。
//更新が完了すると、ステータスはSNTP_SYNC_STATUS_COMPLETEDとして返されます。
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
Serial.println("Failed to obtain time");
return;
}
if (sntp_get_sync_status() == SNTP_SYNC_STATUS_COMPLETED) {
Serial.println("sntp_get_sync_status = COMPLETED");
Serial.println(&timeinfo, "%A, %B %m %d %Y %H:%M:%S");
}
}

void setup() {
Serial.begin(115200);
Wire.begin();
//connect to WiFi
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");
//init and get the time
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
printLocalTime(); // NTP時刻取得、同期ステータス表示、システム時刻表示
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
}
// RTCが電源を失った時(電池切れ)getLocalTime()して取得成功の場合取得時刻をRTCにセットし、
// 失敗の場合コンパイル時刻をRTCにセットする。
if (rtc.lostPower()) {
Serial.println("RTC lost power, let's set the time!");
struct tm timeInfo;
if (!getLocalTime(&timeInfo)) {
/* 失敗でメッセージを表示しコンパイル時刻をRTCへセット 取得成功で取得時刻をRTCへセット */
Serial.println("Failed to obtain time Set to compile time"); // 時間の取得に失敗しましたコンパイル時刻をセットします
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // コンパイル日時を仮設定
DateTime now = rtc.now();
sprintf(date_ymdhms, "%04d/%02d/%02d,%02d:%02d:%02d", now.year(), now.month(), now.day(), now.hour(), now.minute(), now.second());
Serial.println(date_ymdhms);
} else {
rtc.adjust(DateTime(timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday,
timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec));
//tm_year:1900年からの年数 tm_mon:1月からの月数
Serial.println("adjust RTC !!");
DateTime now = rtc.now();
sprintf(date_ymdhms, "%04d/%02d/%02d,%02d:%02d:%02d", now.year(), now.month(), now.day(), now.hour(), now.minute(), now.second());
Serial.println(date_ymdhms);
}
}
//disconnect WiFi as it's no longer needed
//WiFi.disconnect(true);
//WiFi.mode(WIFI_OFF);
}
void loop() {
// 定期的にgetLocalTime()して同期できたらRTCをセットする
unsigned long currentMillis_t = millis();
if (currentMillis_t - previousMillis_t >= interval_t) { //interval_t 61分はOK60分はNG
previousMillis_t = currentMillis_t;
struct tm timeInfo;
if (getLocalTime(&timeInfo)) {
if (sntp_get_sync_status() == SNTP_SYNC_STATUS_COMPLETED) {
rtc.adjust(DateTime(timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday,
timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec));
//tm_year:1900年からの年数 tm_mon:1月からの月数
Serial.println("adjust RTC !!");
} // else { Serial.println("NOT COMPLET"); }
} else {
Serial.println("Failed to obtain time");
}
}
//delay(1000);
// 10分毎にRTC時刻を取得して表示する。
unsigned long interval = 60000 * 10 *1; // 60000(1min)
unsigned long current_t = millis();
if (current_t - previous_t >= interval) {
previous_t = current_t;
//printLocalTime(); // このスケッチオリジナルの関数
DateTime now = rtc.now();
sprintf(date_ymdhms, "%04d/%02d/%02d,%02d:%02d:%02d", now.year(), now.month(), now.day(), now.hour(), now.minute(), now.second());
Serial.println(date_ymdhms);
}
}

2021年11月24日水曜日

[動画][資料] プリンタサーバ/デバイスサーバ情報〜旧式USBプリンタとスマホを無線WiFiでつなぐ

oldtv2278.png

[SNS] Instagramで文字をコピーする


 
[SNS] Instagramで文字をコピーする
Instagramの使い方
インスタグラムでは文字をコピーできない? すぐできる対処法を紹介
気になる疑問を解決
アプリオ編集部
2021-10-18 14:25
◆質問:インスタグラムでテキストを長押ししてもコピーできません
投稿のキャプション中に気になる単語があったので、コピペして検索しようと試みたのですが、いくら長押ししても範囲選択ができません。インスタグラムでは、テキストをコピーするにはどうしたらよいのでしょうか。
◆回答:Web版インスタグラムでならテキストをコピーできます
iPhone/Androidアプリ版インスタグラムでは、キャプションをはじめ、コメントやハッシュタグ、ユーザーネームなど一切のテキストをコピーできない仕様になっています。この点、Web版インスタグラムでなら、キャプションのコピーが可能です。SafariやChromeなどのブラウザでウェブ版Instagramにアクセスして試してみましょう(左記リンクから直接アクセスできます)。
アプリ版インスタグラムではコピーできない
Web版インスタグラムではコピーできる
Web版インスタグラムで文字列を長押しして範囲選択、コピーをタップすれば、好きなツールに貼り付けられます。
なお、画像以外ならほとんどのものがコピーでき、特殊文字や顔文字などもそのままの状態で貼り付けられました。

アプリオ
https://appllio.com/instagram-copy-text#:~:text=%E5%9B%9E%E7%AD%94%EF%BC%9AWeb%E7%89%88%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%A7%E3%81%AA%E3%82%89%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E3%82%B3%E3%83%94%E3%83%BC%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99&text=Web%E7%89%88%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E9%95%B7%E6%8A%BC%E3%81%97,%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%89%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82










インスタのコピー(コピペ)の仕方!文章やハッシュタグのコピー方法を解説
 2022年1月18日
インスタグラムの文章(キャプション)や投稿に寄せられたコメントはアプリ上からはコピーできない仕様になっているので、本記事で解説している方法を用いてコピーするようにしてください。
■インスタのコピー(コピペ)の仕方!文章やハッシュタグのコピー方法
解説に用いている画像はiPhone版のインスタグラムですが、Android版の手順も基本的に同じです。
▽まずはコピーしたい文章が含まれている投稿のリンクをコピーします。
▽投稿の右上の「…」をタップして「リンクをコピー」を選択してください。
▽続いてSafariやChromeなど、お使いのブラウザにコピーしたリンクを貼り付けインスタのページを開きます。
▽これでコピーしたい文章を長押しすると範囲の選択とコピーが可能になります。
▽キャプションは全て表示されてもコメントはコメント数が多いと一部しか表示されないことがあります。その場合は画面上部からログインすると全てのコメントが表示されるようになります。
■インスタの投稿者が非公開アカウントの時のコピー方法
前提条件として非公開アカウントにフォローを許可されている必要があるのですが、投稿者が非公開アカウントの場合、Android版インスタグラムではリンクをコピーすることができません。
▽投稿者のプロフィールページに移動し、画面右上の「︙」をタップして「プロフィールURL」をコピーしてください。
▽続いてお使いのブラウザに移動して、コピーしたURLを貼り付けインスタにアクセスします。
▽相手が非公開アカウントの場合はログインしないと投稿を見ることができないので、ユーザーネームやパスワードなどのログイン情報を入力してブラウザ版インスタグラムにログインしてください。
▽ログインが済むとキャプションやがハッシュタグできるようになります。
■インスタでコピーするとバレる?
アプリ上でコピーできない文章やハッシュタグ・コメントをブラウザ版からコピーしても相手にバレる心配はありません!iPhone版インスタグラムでリンクをコピーすると「リンクがクリップボードにコピーされました」と表示されるので、相手に通知されたのではないかと不安になる方もいらっしゃると思うのですが、そのような心配はないのでご安心ください。
■まとめ
アプリ上でコピーできないインスタの文章やハッシュタグをコピーする方法は以上です。日本語以外の文章を他サイトで翻訳したい時などに特に役立ちますので、参考にしていただけると幸いです。

 アプリ村
https://applimura.com/instagram-copy/





[設定] ブラウザのスーパーリロード(ブラウザのキャッシュクリア)

[設定] ブラウザのスーパーリロード(ブラウザのキャッシュクリア)
平素はSeesaaサービスをご利用いただきありがとうございます。
ただいまSeesaaブログのメンテナンスを実施しております。恐れ入りますが詳細は下記をご確認ください。
■ 期間
2021年12月23日(木) 1時 から 3時 までを予定
※メンテナンス終了時刻は多少前後する可能性がございます。
■ メンテナンス対象
Seesaaブログの全サービス
※ メンテナンス完了後の注意
メンテナンス完了後も画像などのファイルの表示がキャッシュとして保存され、正常に表示されない場合がございます。
その場合、ブラウザのキャッシュをクリアした後に再度アクセスしてください。
■ Windowsご利用時の各ブラウザーのスーパーリロード方法
スーパーリロードを行う方法
・Microsoft Edgeでスーパーリロードを行う方法
「ctrl(コントロール)」キーを押しながら、同時に「F5」キーを押してください。
・Microsoft IEでスーパーリロードを行う方法
「ctrl(コントロール)」キーを押しながら、同時に「F5」キーを押してください。
・Google Chromeでスーパーリロードを行う方法
「ctrl(コントロール)」キーを押しながら、同時に「F5」キーを押してください。
「shift(シフト)」キーを押しながら、同時に「F5」キーを押してください。
・FireFoxでスーパーリロードを行う方法
「ctrl(コントロール)」キーを押しながら、同時に「F5」キーを押してください。
「ctrl(コントロール)」キーと「shift(シフト)」キーを押しながら、同時に「R」キーを押してください。
Macご利用時の各ブラウザーのスーパーリロード方法
・Safariでスーパーリロードを行う方法
「command」キー、「option」キーを押しながら、同時に「E」キーを押してください。
・GoogleChromeでスーパーリロードを行う方法
「command」キー、「option」キーを押しながら、同時に「 R」キーを押してください。
・Firefoxでスーパーリロードを行う方法
「command」キー、「shift」キーを押しながら、同時に「 R」キーを押してください。

Seesaaブログ

2021年11月23日火曜日

[動画][スマホ] GooglePixelとGoogle有料化対策

oldtv2278.png






pixel6,2021.11






[スポット][閉店][東京秋葉原] もんきーねっと秋葉原店が9月26日に閉店

[スポット][閉店][東京秋葉原] もんきーねっと秋葉原店が9月26日に閉店
秋葉原情報
神田明神通り沿いのネットカフェ「もんきーねっと 秋葉原店」が9月26日に閉店、17年間の営業に幕
森 篤司
2021年9月10日 12:05
もんきーねっと 秋葉原店が9月26日(日) 9:00をもって閉店
神田明神通り沿いにあるインターネットカフェ&漫画喫茶「もんきーねっと 秋葉原店」が、9月26日(日) 9:00をもって閉店となるようです。
同店は2004年にオープンした店舗で、ハイスペックPCでオンラインゲームを楽しめたほか、最近ではコワーキングスペースも用意されていました。また、お菓子やソフトクリームの食べ放題もあり、利用したことがあるという方もいらっしゃるのではないでしょうか。
このほか、同ビルに入る「もんきーそふと 秋葉原店」や「SUN SHOP II」も閉店となるようです。閉店日は前者が9月26日(日)、後者が9月23日(木)。
ビルの1階~7階に入る店舗が一斉に閉店となるので、閉店後の動向が気になるところです。

AKIBA PC Hotline!