今何時ですか?私は数年前から古い携帯電話を時計として再利用しています。
Android 2.2.2 - Froyo. This one still going, its sibling has failed. And more recent phones have failed.Android 2.2.2 - Froyo. This one still going, its sibling has failed. And more recent phones have failed.Android 2.2.2 - Froyo. This one still going, its sibling has failed. And more recent phones have failed.Android 2.2.2 - Froyo. This one still going, its sibling has failed. And more recent phones have failed.Android 2.2.2 - フロヨ。 これはまだ続いていますが、その兄弟は失敗しました。 そして、最近の携帯電話は故障しました。
たった2人が失敗しただけだ。 それは実行中の最後のものです...良いハードウェアです。 本当に古い OS ですが、ネットワークから時間を取得し、夏時間に切り替えたり、夏時間に戻したりしても更新されます。
そこで、それらを交換する必要があり、Arduino と Raspberry を検討し始め、ESP32 に行き着きました。
Quarter inch squares, this is about 25cm x 50cmQuarter inch squares, this is about 25cm x 50cmQuarter inch squares, this is about 25cm x 50cmQuarter inch squares, this is about 25cm x 50cm4分の1インチの正方形、これは約25cm x 50cmです
これはからですエスプレシフこれをアマゾンで3個17ドルで購入しました。 これまでのところ、LED を点滅させたり、内蔵の WIFI ハードウェアを使用して遊んでみました。 はい、WIFI、Bluetooth、多数の I/O ピン、4M ROM と 512K RAM (私はそう思います。十分に調査していないので確実に知ることができません。) その過程で、NTP (ネットワーク タイム プロトコル) のサンプルを実行しました。そして、NTP がどのように機能するのか疑問に思い始めました。
根本的に、NTP は非常にシンプルです。 時刻を知りたいコンピュータは、NTP サーバーをホストする別のコンピュータにショート メッセージを送信し、そのコンピュータは GMT 時刻を含むショート メッセージを送り返します。 終わり。
(これははるかに複雑です。明らかに、NTP サーバーは質問に 1 回あたり 1000 回答える可能性があります。 2番! また、サーバーを同期するメカニズムでは統計が使用されます。 そして David L Mills は 1980 年頃に NTP のものを発明しました。)
インターネットは主に TCP を使用します(伝送制御プロトコル) 、IP 上に構築された堅牢なプロトコル。 TCP は再試行などを行って、データが順序どおりに完全に配信されることを確認します。 これは重量のあるプロトコルです。 NTP サーバーは、何も保証しない軽量プロトコルである UDP (IP の上でも) を使用します。 メッセージは紛失したり、届かなかったり、順序が崩れたりする可能性があります。 ただし、サーバーの負荷は最小限です。サーバーは、応答を確実に得るために追加のハンドシェイクを行う必要はありません。 UDP の U (ユーザー データグラム プロトコル) は、ユーザーがエラーを処理する責任があることを意味します。
この JSL は、ポート 123 (NTP ポート) と UDP プロトコルを使用するソケットを作成し、NTP サーバーのプールにメッセージを送信して応答を取得します。 それは非常に単純なことを行います統計これは、サーバーへの移動時間とサーバーからの移動時間が等しいと仮定した計算により、サーバーの時間をローカル コンピューターとより適切に同期できるようになります。 結果はかなり良好です! 以下は、世界の半分の地点でプール内のサーバーを見つけた、平均よりわずかに優れた例です。
pool.ntp.org(rn5.quickhost.hk)
合計時間 = 0.143846988677979
飛行時間 = 0.143799781799316
差 = 0:00:00.01689
.hk が実際に香港にあると仮定すると、ノースカロライナからは 13,000 マイルです。 往復16,000円。 飛行時間は、合計時間から香港での処理時間を差し引いたものですが、これは無視できます。 計算が正しければ、これは 100,000 マイル/秒を超え、光速のかなりの部分に相当します。
最後の数字の差は、私の CPU クロックと NTP サーバーのクロックの差です。 それは1/50秒未満です。 また、飛行時間が長い場合を除き、ほとんどのサーバーから 1/10 秒以内に結果が得られます。飛行時間が長い場合は非対称となり、補正技術が機能しません。
pool.ntp.org(LAX.CALTICK.NET)
合計時間 = 0.101963043212891
飛行時間 = 0.101903915405273
差 = 0:00:00.08646
pool.ntp.org(ns2.nuso.cloud)
合計時間 = 0.103617668151855
飛行時間 = 0.103596687316895
差 = 0:00:00.04034
pool.ntp.org(50-205-57-38-static.hfc.comcastbusiness.net)
合計時間 = 0.0763883590698242
飛行時間 = 0.0763206481933594
差 = 0:00:00.00965
プール.ntp.org(13.86.101.172)
合計時間 = 0.077089786529541
飛行時間 = 0.07708740234375
差 = 0:00:00.00663
// this snippet demonstrates a UDP (User Datagram Protocol) exchange with an NTP
// (Network Time Protocol) server using a JSL socket. NTP sends enough information
// from an NTP server to correct for some network delays and make a really good guess
// at the local time, possibly within 1/100 second, usually within 1/10 second (depending
// on how similar send and receive times are.) Using the OS time setting to sync your
// clock first (which uses NTP as well) will make the deltas near zero. Otherwise the
// deltas should be similar across several runs. Your computer clock will drift between
// the syncs (once a day?) that your computer automatically performs with an NTP server.
//
// idea from https://lettier.github.io/posts/2016-04-26-lets-make-a-ntp-client-in-c.html
timezone = -4; // (tz for my computer) Eastern Daylight Time is GMT-4.
// build the transmit packet to send to the NTP server
xPacket = Hex To Blob( "1b" || Repeat( "00", 47 ) );
// make the socket object
sock = Socket( DGRAM ); // not a normal STREAM socket, this is an unreliable UDP socket.
// choose a server (or server pool)
addr = "pool.ntp.org"; // a pool of servers. Don't ask too often, they have a heavy load.
// if nothing goes wrong, the bind and ioctl are optional, but
// if we never get a response (for various reasons) we'd rather not hang forever...
rc = sock << bind( addr, "123" ); // bind, maybe not required, but needed for NBIO...
If( rc[2] != "ok",
sock << close;
Throw( "bad bind" );
);
rc = sock << Ioctl( FIONBIO, 1 ); // NBIO: non blocking i/o. the unreliable UDP may never answer.
If( rc[2] != "ok",
sock << close;
Throw( "bad ioctl" );
);
// send our request to the server. <<SENDTO is="" for="" unreliable="" udp="" packets.=""></SENDTO>

UDP ソケットを使用して NTP サーバーから時刻を取得します。
Re: 今何時ですか?PCB のリビジョン 2 を注文する前に、最初の注文で他の 2 つのボードを構築しています。 最初のものと同様ですが、並行してビットを構築してテストします。 そして私は予想していなかった事を学びました。
ビルドフェーズは次のようになります。
- 薄型、小型、安価なコンポーネントをすべてボード上に配置します。 後から行うのは困難です。
- LED ドライバー、3 つの 16 ピン IC を追加します。
- 電源コンポーネントを追加し、電源インジケータ LED が点灯するかどうかを確認します。
- CPU を追加し、ダウンロードしたプログラムを受け入れることを確認します。
- 反対側の数字を追加します。 数字は内容を隠すため、最後に置く必要があります。
Some of these prototypes are not working correctly.Some of these prototypes are not working correctly.Some of these prototypes are not working correctly.Some of these prototypes are not working correctly.これらのプロトタイプの一部は正しく動作しません。数字 (そのうち 4 つ) はそこそこ高価で、やや繊細です。 ややランダムに 1 つ (1 時間ごとの位置) を配置し、簡単なテストを行いました。 一部のセグメントのみが機能しました。 作業台に戻り、目視確認、メーター確認、最後にスコープを抜き取ります。 現時点では、間違っている可能性のあるものが 6 つあります。 CPUからドライバーIC、数字に至るまで、あらゆるものに対応します。 それは基本的な設計ではありません。動作するプロトタイプが 2 つあります (1 つはブレッドボード上、もう 1 つは最初の PCB 上にあります)。
クロックは多重化された設計です。各ドライバー チップには 4 つの出力があります。 ドライバーの 1 つは数字を選択し、他の 2 つのドライバーは 7 つのセグメントと小数点を選択します。 12 ビットでアドレス指定される 32 要素の 4X8 行列。 一度に最大 8 つの要素 (1 桁) をオンにできます。 幸いなことに、ほとんどのセグメントがオンになっているはずの数字を見ていると、1 つのドライバー チップに属するセグメントがすべて欠落していることがわかります。 そのチップのスコープを使用すると、入力がセグメントのオンを要求していることがわかりますが、出力は...停止しています。
ICの交換は面倒です。 チューブから新しいものを取り出し、取り付けました。そして...残念! 良くなりましたが、まだ 1 つのセグメントが表示されません。 私が誤診したのでしょうか? 他に何かが崩れている?
待って。 2枚のカードを並行して構築しています。 もう 1 つを見てみましょう。 何もない。 セグメントはありません。 少し勉強してみると…うーん。 今回の問題はセグメントのドライバーではなく、マトリックスの他の軸、つまり桁を選択する軸のドライバーです。 不良の IC が丸ごと入っているのでしょうか?
これは、約 10 年前に別のプロジェクトのために購入した、未使用のチューブ IC でした。 テスターを構築する必要があります。 これは、別のディストリビュータから最近入手したチップのテスターが 4 つの緑色のライトを示しています。
All 10 in the newer tube checked out good.All 10 in the newer tube checked out good.All 10 in the newer tube checked out good.All 10 in the newer tube checked out good.新しい真空管の 10 個すべてが良好であることを確認しました。
私は現在、もう一方のチューブの少なくとも 5/10 のチップが 1 つ以上の出力で不良だったと考えています。
Crush the pins in (to prevent re-use) and roll them on their backs so they look like dead bugs. Even 3/4 OK is not good enough when all four outputs are needed!Crush the pins in (to prevent re-use) and roll them on their backs so they look like dead bugs. Even 3/4 OK is not good enough when all four outputs are needed!Crush the pins in (to prevent re-use) and roll them on their backs so they look like dead bugs. Even 3/4 OK is not good enough when all four outputs are needed!Crush the pins in (to prevent re-use) and roll them on their backs so they look like dead bugs. Even 3/4 OK is not good enough when all four outputs are needed!ピンを押しつぶして(再利用を防ぐため)、背中を下にして転がして、死んだ虫のように見せます。 4 つの出力すべてが必要な場合は、3/4 OK でも十分ではありません。
私が学んだことは、インストール前のチップのテストに関するものかもしれませんが、それは実際には必要ないと思います。 ただし、私が行うのはスコープを使用してテストを行うことです。おそらくアセンブリの項目 2 と 3 を逆にして、数字を付ける前にもう少し適切にテストできるようにします。 次に、最初の桁を配置するために、ドライバーチップではなく、電源をブロックするものを選択します。 今、ドライバーICを取り外すために数字を削除する必要があります。
Re: 今何時ですか?プロトタイプが構築され、動作しています。
It's hard for me to call this the back; it was the front in KiCad.It's hard for me to call this the back; it was the front in KiCad.It's hard for me to call this the back; it was the front in KiCad.It's hard for me to call this the back; it was the front in KiCad.私にとって、これを後回しと呼ぶのは難しいです。 KiCadではフロントでした。
The flash makes the white balance show the red digits as red.The flash makes the white balance show the red digits as red.The flash makes the white balance show the red digits as red.The flash makes the white balance show the red digits as red.フラッシュにより、ホワイトバランスの赤い数字が赤として表示されます。
With no flash, the white balance messes up the colors, but this is closer to what it really looks like otherwise.With no flash, the white balance messes up the colors, but this is closer to what it really looks like otherwise.With no flash, the white balance messes up the colors, but this is closer to what it really looks like otherwise.With no flash, the white balance messes up the colors, but this is closer to what it really looks like otherwise.フラッシュを使用しないと、ホワイトバランスによって色が台無しになりますが、フラッシュを使用しない場合は、これが実際の見た目に近いです。
リニアレギュレータは非常に高温になります。 5V レギュレータは約 1/4 アンペアを供給しますが、これは、16V 入力がその小さなヒートシンクに 11 ボルト * 1/4 アンペア = ほぼ 3 ワット降下することを意味します。 ドロップイン交換用スイッチモード レギュレータを見てみましょう。 パッケージサイズは同じのようですが、効率は 90% です。
Re: 今何時ですか?回路基板が入っています! で設計されていますキカド、 製労働安全衛生公園、11 日間の製造期間と 8 日間の無料配送を含む 20 日間 (できる限り節約!) おそらく、動作することがわかるまではこれらを表示しないほうがよいでしょう...プロトタイプ...
This is my first board that will have components front and back.This is my first board that will have components front and back.This is my first board that will have components front and back.This is my first board that will have components front and back.これは、前面と背面にコンポーネントを備えた最初のボードです。
エッジの周りの粗い点は、私のボードが大きなパネルから切り離された場所です。尖っているのですぐに掃除します! ボードは約 3x9 インチです。 私はスルーホール技術を使用しています。すべての表面実装ビットは、事前に構築されたカード (GPS、BME、および ESP32) 上にあります。 少し時間がかかりましたが、AfterDarkボードを選択しました。 見た目が気に入ってます! 予備的なテストフィットでは、フットプリントを設計したパーツが機能することがわかりました。 わーい!
Re: 今何時ですか?更新...右端の青いライトはesp32です。 午後4時5分です。
It's really hard to get the light right to take a picture of an LED display.It's really hard to get the light right to take a picture of an LED display.It's really hard to get the light right to take a picture of an LED display.It's really hard to get the light right to take a picture of an LED display.LED ディスプレイの写真を撮るために適切な光を当てるのは本当に難しいです。
高さ 2 1/4 インチの桁には 8 ボルトが必要ですが、古いデータシートが示唆していた 2 ボルトではありません。 つまり、右上にあるジャンクボックスの部品から作られた追加の電源が必要で、4 つのドライバー チップは同じ箱から来たものです。 右下には12ドルのGPSもあります。 時刻は、衛星が見える場合は GPS から設定でき、パスワードが変更されていない場合は Wi-Fi から設定できます。
JMP がこれにどこに当てはまるかはまだわかりませんが、追加したい圧力/温度/湿度センサーがあります。おそらく、データログを作成し、Webサーバーを実行するでしょう。 あるいは、天気に関する小さなディスプレイを追加するかもしれません。 詳細が決まりましたら、基板を作成していきます。 それらのワイヤーは壁では機能しません。