このリポジトリには、WiFi 電源コントローラーのソース コードが含まれています。
ハードウェアは次のもので構成されます (ほとんどのコンポーネントは簡単に置き換えることができますが、一部のコンポーネントは低電流アプリケーションには過剰です)。
パトレスボックスは優れた囲いになります。
Banggood.com から ACS712 を注文する場合は注意してください。私の 20A センサーは、定格が 10A の端子しか付属していませんでした。
R1 と R2 は、ACS712 の 5V 出力を M0 のアナログ入力で読み取り可能な 3.3V 範囲に下げるように選択する必要があります (たとえば、R1 は R2 の値の約 2 倍にする必要があります)。
Wifi101 ライブラリと ArduinoJson ライブラリを使用して Arduino を使用して作成しました。 Wifi SSID とパスワードを Secrets.h に追加する必要があります。 serverAddress
とport
サーバーのアドレスに更新する必要があります。
コントローラーから読み取り値を収集し、MySQL データベースに保存します。クライアント用の REST API も提供します。
開始するには:
.env
ファイルを作成し、 MYSQL_USERNAME
、 MYSQL_PASSWORD
、およびMYSQL_DB
を設定します。npm install
実行するnpm run dev
controllers
を編集して変換係数を設定します。変換係数はコントローラによって読み取られた値と乗算され、ミリアンペア単位の読み取り値が得られます。データベースの変更を設定した後、サーバーを再起動して、サーバーに変更を読み取らせます。たとえば、20A ACS712 を使用する場合、1A の電流は 100mV の出力になります。
R1 が 10kΩ、R2 が 20kΩ の場合、これは分圧器からの 67mV ( 20/(20+10)*100
) 出力に変換されます。
M0 への入力は 12 ビットなので、0 ~ 3.3v の範囲は 0 ~ 4095 です。
したがって、変換係数は次のように計算できます。
c = 3.3 / S * (R1 + R2) / R2 / 4096 * 1000
ここで、 S
は ACS712 の感度 (アンペアあたりのボルト数) です。
この例では:
c = 3.3 / 0.1 * (10 + 20) / 20 / 4096 * 1000
c = 12.85
サーバーの REST API を使用してスケジュールを設定し、電力使用量を表示します。
開始するには:
npm install
実行するnpm run serve