GSMとArduinoを使用してワイヤレス掲示板をすでに構築しているので、私たちは皆ワイヤレス掲示板に精通しています。しかし、今日は一歩先を進んでおり、GSMをワイヤレスメディアとして使用する代わりに、今回はインターネットを使用して、WebブラウザーからRaspberryPiに接続されているLCDにメッセージをワイヤレスで送信しています。メッセージはWebブラウザーを介して送信されるため、コンピューター、スマートフォン、またはタブレットを使用して送信できるため、IoTプロジェクトコレクションにもう1つのプロジェクトが追加されます。
このWeb制御掲示板では、デモンストレーション用のローカルWebサーバーを作成しました。これは、インターネット上のグローバルサーバーにすることができます。Raspberry Piでは、16x2 LCDを使用してメッセージを表示し、Flaskを使用してネットワーク経由でメッセージを受信しました。RaspberryがWebブラウザからワイヤレスメッセージを受信すると、LCDに表示されます。この記事では、これらのことについて詳しく説明します。
必要なコンポーネント:
- Raspberry Pi 3(任意のモデル)
- Wi-Fi USBアダプター(Raspberry Pi 3を使用していない場合)
- 16x2 LCD
- ブレッドボード
- RaspberryPiの電源ケーブル
- 接続線
- 10Kポット
作業説明とWebページの作成:
このプロジェクトの主要コンポーネントは、このプロジェクトの中心であり、このプロジェクトに関連するプロセスを制御するために使用されるRaspberryPiです。例:LCDの運転、サーバーからの「通知メッセージ」の受信など。
ここでは、WebブラウザでFlaskを使用して「通知メッセージ」をRaspberryPiに送信する方法を提供するWebサーバーを作成しました。FlaskはPython用のマイクロフレームワークです。このツールはUnicodeベースであり、開発サーバーとデバッガーが組み込まれ、ユニットテストのサポートが統合されており、安全なCookieがサポートされており、使いやすいため、愛好家にとって便利です 。
TextBoxと[送信]ボタンを備えたWebページを作成しました。ここで、TextBoxに「通知メッセージ」を入力し、[送信]ボタンをクリックしてサーバーに送信できます。このWebアプリケーションは、HTML言語を使用して開発されています。このウェブページのコードは以下のとおりで、非常に理解しやすいものです。
Web制御掲示板(回路ダイジェスト)
正常に送信された通知:{{value}}
{%endif%}ユーザーは、上記のHTMLコードをコピーしてテキストエディター(メモ帳)に貼り付け、ファイルを.HTML拡張子で保存する必要があります。次に、このHTMLファイルを、このWeb制御掲示板のPythonコードファイル(最後に指定)を配置したのと同じフォルダーに配置します。これで、Raspberry PiでPythonコードを実行し、Webブラウザー(192.168.1.14:8080など)で IP_address_of_your_Pi:8080を 開いてメッセージを入力し、[送信]をクリックするだけで、メッセージを送信するとすぐにメッセージが表示されます。 RaspberryPiに接続されたLCD。最後に、デモンストレーションビデオでプロセス全体を確認してください。
Webページは、HTML言語を使用して作成されます。この言語には、 テキストボックス と 送信 ボタンを備えた フォーム と、見出し(h1タグ)の Webコントロール掲示板が含まれてい ます。 フォームは、 「変更」を持っている アクション 使用してコードで実行される ポスト 我々は送信ボタンをクリックしたときに、この方法を。 スライダーが 持つブロックである ラベル 「お知らせメッセージ」。
その後、オプションの行を追加して、サーバー経由でRaspberryPiに送信したテキストを表示できます。
{%if value%}
正常に送信された通知:{{value}}
{%endif%}テキストボックスの値をチェックし、テキストボックスに値がある場合は、Webページ自体にテキストを印刷して、送信されたメッセージも表示できるようにします。ここで、 「値」 は、スライダーボックスまたはテキストボックスに入力する「入力テキストまたは通知メッセージ」です。
回路の説明:
このワイヤレスメッセージボードの接続は非常に簡単です。ブレッドボード上のいくつかのコネクタを使用して、LCDをRaspberryPiボードに接続するだけで済みます。ユーザーは接続にゼロPCBを使用できます。LCDのRS、RW、およびENピンはピン18、GND、および23に直接接続されています。LCDD4、D5、D6、D7のデータピンはRaspberryPiのGPIO24、16、20、21に直接接続されています。10KポットはLCDの明るさを制御するために使用されます。
また、Raspberry Pi 3をお持ちでない場合は、Raspberry Pi 3のようなWi-Fiが組み込まれていないため、下位バージョンのRaspberryPiにはUSBWi-Fiアダプターを使用する必要があります。
プログラミングの説明とフラスコ:
ここでは、プログラムにPython言語を使用 しています。コーディングする前に、ユーザーはRaspberryPiを構成する必要があります。Raspberry Piの使用開始、およびPiでのRaspbian JessieOSのインストールと構成に関する以前のチュートリアルを確認できます。
Raspberry Piをプログラムする前に、ユーザーは指定されたコマンドを使用して、フラスコサポートパッケージをRaspberryPiにインストールする必要があります。
$ pip install Flask
その後、Raspberry PiのPythonエディターでPythonプログラムを実行できますが、その前に、ProgramのIPアドレスをRaspberryPiのIPアドレスに置き換える必要があります。ifconfigコマンドを使用して、RPiボードのIPアドレスを確認できます。
Ifconfig
このプロジェクトのプログラミング部分は、すべての操作を実行するために非常に重要な役割を果たします。まず、Flaskに必要なライブラリを含め、変数を初期化し、LCDのピンを定義します。
フラスコインポートからフラスコインポートrender_templateからインポートRPi.GPIOをgpioインポートosとして要求、時間app = Flask(__ name __)RS = 18 EN = 23 D4 = 24 D5 = 16 D6 = 20 D7 = 21………………….。
LCDの場合、def lcd_init()関数を使用してLCDを4ビットモードで初期化し、def lcdcmd(ch)関数を使用してコマンドをLCDに送信し、def lcddata(ch)関数を使用してデータをLCDに送信し、def lcdstring(Str )関数は、データ文字列をLCDに送信するために使用されます。これらの機能はすべて、後で指定するコードで確認できます。
プログラムの以下の部分は、Flaskを使用してWebブラウザからRaspberryPiにメッセージを送信するために使用されます。Flaskを使用したプログラミングについて詳しくは、こちらをご覧ください。
@ app.route( "/")def index():return render_template( 'web.html')@ app.route( "/ change"、methods =)def change():if request.method == 'POST' :#ウェブページから値を取得するdata1 = request.form lcdcmd(0x01)lcdprint(data1)return render_template( 'web.html'、value = data1)if __name__ == "__main __":app.debug = True app.run ( '192.168.1.14'、port = 8080、debug = True)
これが、コンピューターまたはスマートフォンからRaspberry Pi LCDにメッセージを送信し、IoTベースのワイヤレス掲示板をWeb上で制御できるようにする方法です。以下の完全なPythonコードとデモンストレーションビデオを確認してください。