PHPを使用してArduinoと通信するWebサイトを作成する方法
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 7 | ||||
| × | 7 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> ![]() |
|
アプリとオンラインサービス
| ||||
| ||||
![]() |
|
このプロジェクトについて
更新
TheAmplituhedron.comを使用してIoTプロジェクトを改善するにはどうすればよいですか?サーバーサイドプログラミングを処理する私の新しいプロジェクトです。 TheAmplituhedron.comをホストとして使用することにより、インターネットを介してデータパケットを簡単に送受信できます。
私のプロジェクトや記事をサポートするには、こちらの私のWebサイトにアクセスしてください:)
説明
私の水族館と私の家の灌漑システムを制御するための専門的なウェブサイトを作成し、
私が家にいないときに家に関する情報を受け取ることが、このプロジェクトの主な側面です。
その目標を達成するために、4つの異なるHTMLページ(Arduinautomotion.php、Arduinautomotioncontrol.php、Arduinautomotionformvalue.php、Arduinautomotioncommunication.php )を含むArduinautomotionプロジェクトを作成しました。 私のApacheローカルホストで。
また、Arduino Ethernet Shieldは、Arduinautomotion Webサイトと通信するために、選択したIPアドレスでアクセスできる別のHTML Webページ(ArduinoSide.php)をホストします。
2週間の休暇をとらなければならなかったので、このプロジェクトについて考えていましたが、そのために水族館の調整を行うことができませんでした。水槽内の酸素レベルが上昇しないように内部フィルターをシャットダウンする必要がある場合や、フィーダーを開いて魚にリモートで餌を与える必要がある場合があります。水族館のコンテンツを制御するための6つのオプションと、灌漑システムをアクティブにするための1つのオプションを追加しました。
さらに、Arduinoイーサネットシールドを介してArduinautomotionを使用すると、家に関するデータ(温度と湿度の値はDHT11センサーから取得される、家のメタンガスの値はMQ4センサーから取得されるなど)を簡単に取得できます。
したがって、Arduinautomotion Webサイトには、Arduinoから家に関するデータを取得および送信するための簡単なインターフェイスがあります。
プロジェクト全体のコンテンツを理解するには、HTML、CSS、JavaScript、PHP、およびjQuery言語の知識が必要です。これはプロジェクトの単なるショーケースですが、言語を知っている場合は、プロジェクトに含まれるすべてのWebページを見つけることができます。以下のPHPコードファイル。
注:WebページのプログラミングにはNotepad ++を使用しました。
<図>

2つのPHPWebページ間でデータを送受信する方法
HTMLフォーム、PHPメソッド、およびPHP $ _SESSION [""]を使用して、Webページ間でデータを取得および送信しました。 GetメソッドはPostメソッドよりも通信に使用するのが簡単ですが、PostメソッドはGetメソッドよりも安全であるため、ArduinoSideWebページを除くWebページ間で通信するためにPostメソッドを使用しました。ただし、HTTPGETリクエストはPostリクエストよりもはるかに簡単であるため、GetメソッドはArduinoイーサネットシールドと通信する最も簡単な方法です。そのため、ArduinoSideWebページにGetメソッドを使用しました。さらに、PHP $ _SESSION [""]は、2つ以上のWebページ間でデータを永続的に保存する方法です。
https://www.w3schools.com/php/php_forms.asp
https://www.w3schools.com/php/php_sessions.asp
Apache HTTPサーバー(ローカルホスト)でWebサイトを設定する方法
Apache HTTPサーバーはその種のホスティングには効率的ですが、XAMPPまたはその代わりに別のホスティングサーバーを選択できます。私の場合、AppServ>> www>> Arduinautomotion.phpとそのコンテンツ。 Webページにアクセスするために自分のIPアドレス(「192.168.1.20」はローカルホストを指します)を使用しましたが、IPアドレス(http://yourIPAddress/Arduinautomotion.phpとして)を使用する必要があります。
http://editrocket.com/articles/php_apache_windows.html
<図>
Arduinautomotion.phpのすべてのコンテンツは、以下のカスタムパーツに追加されています。
Androidデバイスからローカルホストに接続する方法
WindowsはこのジョブのMACとは異なりますが、以下のリンクはWindowsに役立ちます。
https://stackoverflow.com/questions/4779963/how-can-i-access-my-localhost-from-my-android-device
その後、同じWİ-Fİネットワークで、独自のIPアドレスを使用してArduinautomotion.phpに簡単にアクセスできます。
Wi-Fi経由でローカルホストにアクセスする方法
WindowsはこのジョブのMACとは異なりますが、以下のリンクはWindowsに役立ちます。
これは外部IPアドレスで機能しますが、ホストするのは危険な方法である可能性があるため、外部IPアドレスを知っているのはあなただけです。
https://stackoverflow.com/questions/5524116/accessing-localhost-xampp-from-another-computer-over-lan-network-how-to
また、ポートフォワーディングを使用してArduinoSide.phpにアクセスする必要があり、以下のArduinoSideコードで選択したIPアドレスで機能します。
https://en.wikipedia.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUG9ydF9mb3J3YXJkaW5n
Arduinautomotion.php
Arduinoイーサネットシールドと通信するためのメインページです。このページからArduinoにコマンドを送信し、Arduinoから家に関するデータを簡単に取得できます。
変更メニューでは、変更する状況を説明し、パーツの色を変更することで、どのパーツがオブジェクトで、どのパーツがセンサーであるかを示します。
円を変えることで、センサーの値とオブジェクトの状況を示します。
<図>







1)部屋のセクション
Arduinautomotioncommunication.phpから取得した部屋に関するすべてのデータは、部屋セクションに表示されます。
前:
<図>
<図>

後:
<図>
<図>

2)水族館セクション
水族館のパーツとHTMLフォームについて選択した組み合わせはすべて、Arduinautomotionformvalue.phpに送信され、その後、Arduinautomotioncontrol.phpからArduinautomotion.phpへの出力として返されます。
前:
<図>
<図>

後:
<図>
3)植物セクション
湿度計センサーの値を観察することができ、灌漑システムの開始は値を通して考慮することができます。水族館セクションとして、データはArduinautomotioncontrol.phpからArduinautomotion.phpへの出力として返されます。
前:
<図>
<図>

後:
<図>
<図>

4)ガイドセクション
フォームの選択を再度確認するためのArduinautomotionformvalue.phpWebページが含まれています。さらに、プロジェクトのいくつかの指示とコミュニケーションプロセスを説明する写真が含まれています。
<図>

<図>

5)アラートボックス
どちらの値が危険の範囲内にある場合でも、Arduinautomotion.php Webページがリロードされると、スパイダーマンのビデオファイルとオーディオファイル(「スパイダーセンスがチクチクする」)を含むアラートボックスが表示されます。
<図>
6)Arduinautomotion.phpの一部
ガイドラインとしてのサイズ変更可能なウェブサイト:
<図>

変化する円全体:
<図>



フッター:
<図>
Arduinautomotioncontrol.php
これはArduinautomotion.phpWebページに埋め込まれており、Arduinautomotionformvalue.phpおよびArduinautomotioncommunication.phpからすべてのデータを$ _SESSION [""]として取得します。
PHPページを介してデータを永続的に保存します。
Arduinautomotionformvalue.php
Arduinautomotion.phpからフォームの選択肢を取得し、ArduinoSideとArduinautomotioncontrol.phpを送信します。 Arduinautomotion.php Webページのガイドセクションに埋め込まれていますが、新しいタブからアクセスすることもできます。
<図>
Arduinautomotioncommunication.php
ArduinoSideからのデータは、Arduinautomotioncommunication.phpによって保存され、その後、Arduinautomotioncontrol.phpにデータが自動的に送信されます。
<図>
ArduinoSide
これはDNSを介してArduinoイーサネットシールドによってホストされており、以下のArduinoSideコードで選択したIPアドレス(https:// yourChosenIPAddressとして)を使用してアクセスできます。
<図>
接続
以下のArduinoSideコードとFritzingの図で説明されているように接続するだけです。一方向プラグとソケットを二方向リレーに接続し、すべてのコンポーネントをコルクボードなどのプレーンに貼り付けます。
Arduino
DHT11モジュール
ピン2 -------------------------
2ウェイリレー(1)
ピン3 -------------------------
ピン4 -------------------------
2ウェイリレー(2)
ピン5 -------------------------
ピン6 -------------------------
2ウェイリレー(3)
ピン7 -------------------------
ピン8 -------------------------
2ウェイリレー(4)
ピン9 -------------------------
Ardunoイーサネットシールド
ピン10 --------------------------
ピン11 --------------------------
ピン12 --------------------------
ピン13 --------------------------
LDR
AO --------------------------
火炎センサー
A1 --------------------------
MQ4センサー
A2 --------------------------
湿度計モジュール(1)
A3 --------------------------
湿度計モジュール(2)
A4 --------------------------
湿度計モジュール(3)
A5 --------------------------
<図>







Arduinoコードは、基本的にイーサネットライブラリのexamplesフォルダーにあるWebServerコードに似ています。
センサーを制御し、ArduinautomotionWebサイトからのコマンドを実行するためにいくつかのコードを追加しただけです。
そして、ArduinoイーサネットシールドからルーターにADSLケーブルを接続します。
Arduinoコードが実行された後、Arduinautomotion Webサイトは、Wİ-Fİを介してLAN経由でArduinoからデータを送受信します。
<図>
テストビデオ
プロジェクトをテストした後、水族館と灌漑システム(基本的には水モーター)に接続しました。プロジェクトはうまく機能しています。 :)これはArduinautoumotionプロジェクトのテストビデオです。 Filmoraの試用版で編集しましたが、彼らの仕事を尊重しているため、透かしを削除しませんでした。
コンピューター:
Android:
コード
- Arduinautomotion.php
- Arduinautomotioncontrol.php
- Arduinautomotionformvalue.php
- Arduinautomotioncommunication.php
- ArduinoSide_Code.ino
Arduinautomotion.php PHP
<?phpsession_start();?> <!DOCTYPE html> <?php include'Arduinautomotioncontrol.php '; ?>![]()
オブジェクトの調整を管理するためのガイドライン。
お願いしますボタンをクリックしてください色に関する情報を学習するためのeカラーバー。
ROOM
AQUARUM
PLANT
GUDE
新しいタブでFormValueを開く
- フォームがFormValueページに送信されると、フォームの値はガイドでnewsiteという名前のiframeに表示されます。
- フォーム値は保存されたデータであり、Arduinoに水族館と植物の調整を決定する機能を提供します。
- そして、すべてのデータは、選択したIPアドレスでArduino EthernetShieldによってホストされているArduinoSideページを通過します。
- その後、ArduinoSideページのCommunicationボタンを押して、Communicationページを開き、$ _ Sessionの値を変更する必要があります。
- 最後に、Arduinautomotion Arduinoから新しいデータを取得するには、ページを更新するか、[再読み込み]ボタンを押す必要があります。
- 部屋に関する情報が危険な範囲にある場合、ホームページから通知されますApache localhostのwwwフォルダーにあるスパイダーマンのビデオとオーディオファイルを含む音声アラートボックスを使用して、さらに関連情報サークルの色を赤に変更します。
![]()
![]()
PLANT
AQUARUM
。 ..このファイルは切り捨てられています。完全な内容を確認するには、ダウンロードしてください。Arduinautomotioncontrol.php PHP
<?phpsession_start();?> <!DOCTYPE html>Arduinautomotion <?php $ temperatureCelsiusValue =$ _SESSION ['TemperatureCelsius']; $ temperatureFahrenheitValue =$ _SESSION ['TemperatureFahrenheit']; $ humidityValue =$ _SESSION ['Humidity']; $ flamesensorValue =$ _SESSION ['Flame']; $ MQ4sensorValue =$ _SESSION ['MQ4Sensor']; $ LdrValue =$ _SESSION ['LDRSensor']; $ pumpValue =$ _SESSION ['Airpump']; $ lampValue =$ _SESSION ['Lamp']; $ feedingValue =$ _SESSION ['Feeding']; $ heaterValue =$ _SESSION ['Heater']; $ filterexValue =$ _SESSION ['Filterex']; $ filterinValue =$ _SESSION ['Filterin']; $ plant1Value =$ _SESSION [ 'Plant1H']; $ plant2Value =$ _SESSION ['Plant2H']; $ plant3Value =$ _SESSION ['Plant3H']; $ irrigationValue =$ _SESSION ['Irrigation'];?>Arduinautomotionformvalue.php PHP
<?phpsession_start();?> <!DOCTYPE html>FormValue <?php $ _SESSION ['Airpump'] =$ _POST [" pump "]; $ _ SESSION ['Lamp'] =$ _POST [" lamp "]; $ _ SESSION ['Feeding' ] =$ _POST ["feed"]; $ _ SESSION ['Heater'] =$ _POST ["heater"]; $ _ SESSION ['Filterex'] =$ _POST ["filterexternal"]; $ _ SESSION ['Filterin'] =$ _POST ["filterinternal"]; $ _ SESSION ['Irrigation'] =$ _POST ["irrigationsystem"];?>Server has received the data from Arduinautomotion.
Airpump=
Lamp=
Feeding=
Heater=
Filterex=
Filterin=
Irrigation=
Arduinautomotioncommunication.phpPHP
Communication