![画像](https://habrastorage.org/getpro/habr/post_images/abc/eb0/a4d/abceb0a4d0fe966caff90a486fab53fa.jpg)
みなさんこんにちは。
多くの人がWEBサーバーを作成する必要があると聞き、すぐに不快になります。デバイスを管理および監視する他のオプションを使用して、あらゆる方法でこのトピックから離れようとします。 しかし、インターネットとネットワークはほぼすべてのデバイスにすでにあります。 それで、あなたの創造は何が悪いですか?
もし興味があるなら、どうぞ。
オオカミは描かれているほど怖くない。 私たちの中には多くの専門家がいますが、多くの新人もいます。 学習が遅すぎることはありません。私自身も多くのことを学び、実際に多くのことを学びます。 この記事が初心者に役立つか、初心者の記憶をリフレッシュすることを願っています。
コントローラENC28j60を備えた一般的なモジュールに基づいています。
![画像](https://habrastorage.org/getpro/habr/post_images/e3a/394/4e5/e3a3944e505d1a1a6b76151eb53ac3d1.jpg)
また、Arduino UNO(NanoまたはPro Miniの可能性もあります)を使用しました。 それらはすべてATmega328で動作します。
この記事では、最も単純なライブラリーでWEBサーバーを作成する基本を示します。
この場合:
#include "etherShield.h"
#include "ETHER_28J60.h"
理解しやすいだけでなく、機会も少なくなります。 定期的な監視と負荷管理のために-十分すぎるほど。
これに必要なものを見てみましょう。
![画像](https://scontent-fra.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/1898109_1403844569922762_6066083577948000311_n.jpg?oh=9737db4f2907e0db495d32cc51857b11&oe=557C7B89)
最初に、ライブラリが初期化されています。
次に、モジュールをENC28j60コントローラーに接続するためのピンを示しました。 ネットワークデバイスのパラメーターも指定する必要があります。 これを行うには、MACアドレスを指定します。ネットワークデバイスのMACアドレスと一致しないようにしてください。 同様に、IPアドレスは個別である必要がありますが、サブネット上にある必要があります。
たとえば、ルーター(192,168,0,1)、PC(192,168,0,5)があり、デバイスが(192,168,0,100)の場合があります。
たとえば、ルーター(192,168,4,1)、PC(192,168,4,10)があり、デバイスが(192,168,4,100)の場合があります。
次に、ポートを指定する必要があります。 デフォルトは80です-Webブラウザーはデフォルトでポーリングするためです(以下のビデオのポート変更テストを参照)。
次はETHER_28J60イーサネットです。 -アクセスするオブジェクト(イーサネット)の名前をポイントします。以下のプログラムでは、この名前を使用します。
次に、ネットワークコントローラーを初期化する必要があります。アドレスとポートのすべての設定を適用します。
さて、ここで最も難しくて面白くないものは終わったと思います...
さらにプログラムのメインサイクルで、IPアドレスの要求があるかどうかを確認する条件を設定する必要がありますか?..ある場合は、ページの行を送信すると、ブラウザーは既に見慣れた外観を提供します。 例を見てみましょう:
![画像](https://habrastorage.org/getpro/habr/post_images/69d/745/70f/69d74570f6a432ba32f0223a6e25ca88.jpg)
強調表示された行はページ上に大きなテストを作成し、編集が簡単で、必要に応じてそのような行を追加できます(ただし、すべてがコントローラーのフラッシュメモリの量に依存します)。
Ethernet.respond()コマンド サイトのすべての行を、サイトへのリクエストを行ったブラウザに送信します(この場合、192.168.0.100)。
ただし、このサイトに名前(IPアドレスだけ)がないことに気付いた場合は、心配しないでください。1行追加することで修正できます。
![画像](https://habrastorage.org/getpro/habr/post_images/7d3/512/cb0/7d3512cb075b538d3a98958e3419c71b.jpg)
今...今ではそれが優れています。
さらに、行を追加して、情報の表示や管理に役立つオブジェクトをページに追加します。
リンクから始めましょう。クリックすると、リクエストをコントローラーに送信します(後で処理する必要があります)。
![画像](https://scontent-fra.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/11021089_1403844623256090_4871690822034908420_n.jpg?oh=5583916270a369f9b0f377e033d6fd73&oe=558D2D01)
赤い矢印はボタンの名前で、青い矢印はリンクをクリックしたときのリクエストのテキストを示しています。 したがって、「停止」リンクをクリックすると、サーバーにリクエストを送信します。「192.168.0.100/stop」-「stop」はリクエストテキストです。
次に、ボタンのみの同じオプションを考えます。
![画像](https://habrastorage.org/getpro/habr/post_images/09b/29f/558/09b29f558a899155291d4343f36ff16e.jpg)
ブラウザがボタンを表示するために必要な属性が追加されました。 押されると、「開始」テストを含むリクエストがすでに送信されます。 ここではすべてが明確だと思います。
美容愛好家のために、パラメーターを追加して面白いボタンを作成できます。
![画像](https://habrastorage.org/getpro/habr/post_images/300/13a/e6a/30013ae6a8a709f55fbdbce959b0e4e0.jpg)
次のオプションでは変数が必要です。スケッチの最初に追加します:
![画像](https://habrastorage.org/getpro/habr/post_images/db3/28c/8d0/db328c8d06fba11560342f94efb23843.jpg)
次に、ページに表を表示します。
![画像](https://habrastorage.org/getpro/habr/post_images/9be/d94/38d/9bed9438d0900614e26ac99850fde542.jpg)
テーブル属性は、オブジェクトを示すために使用されます。 次に、表の外側の境界を赤(tr)で強調し、内側の境界を青で強調しました。 それらはペアワイズであり、ペアの中央には値または変数(たとえば、ves1またはves2)があることに注意してください。 また、ペアが太字のテキストとプレーンテキストを作成することもあります。 最後に、テーブルオブジェクトは/ tableで終わります。
ページにオブジェクトを表示すると、複雑ではないWEBページを作成するのに十分だと思います(詳しくは、初心者向けのビデオチュートリアルをご覧ください)。
しかし、リクエストの処理方法-このため、文字列の変数を追加しながら、最初から条件をわずかに変更します。 また、たとえば、リクエストを処理するための2つの条件を作成します。1番目は空のリクエスト(192.168.0.100)です。 2番目は、テキスト「start」(192.168.0.100/start)のリクエストです
![画像](https://habrastorage.org/getpro/habr/post_images/b8e/c95/a73/b8ec95a7346a635c72960b6c8b30e366.jpg)
サーバーに送信された要求に応じて、指定された行に従ってサイトがブラウザーに表示されます。
![画像](https://scontent-fra.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/10386298_1403844699922749_316077475560183471_n.jpg?oh=24d218289a0f1bfb6300b2690763c472&oe=554D46D8)
これは、変数のパラメーターまたはリンクとボタンからのクエリに応じてさまざまな情報を変更および表示する動的ページを作成する方法です。
より詳細かつ明確に、初心者向けのビデオチュートリアルで上記のすべてを確認できます。
例付きスケッチへのリンク(最初の例ではライブラリ):
www.facebook.com/download/1779869258903901/web_urok_01.rar
www.facebook.com/download/351288838383944/web_urok_02.rar
www.facebook.com/download/435653776600017/web_urok_03.rar
複雑な用語を使用せずに、アクセスしやすい言葉で資料を表示しようとしました。
この記事が多くの初心者が独自のWebサーバーを作成するのに役立つことを願っています。 より高度なものには、他のライブラリからのビデオがあります...もっと複雑です。