ESP8266 NODEMCUを使用したWiFi経由の機械制御。 接続機能Wi-FiモジュールESP8266~Arduino.

鉄とワイヤーをはんだ付けすることで、ファームウェア、更新、その他のデータを送信します。Arduinoの最良のソリューションではありません。 ただし、Arduino Wi-Fi用のマイクロコントローラは誰にも不要で、必要なしに自分のプロジェクトでそれらを使用することを好む理由を常に必要としていません。

しかし、次の中国の製品は市場を捉えました、Wi-Fi Jammer ESP8266はArduinoボードまたは他のシステムに取り付けることができ、あなたは受け取るでしょう 安定した接続 他の多くの利点を持つ。 それでは、Arduino Uno Wi-Fi、そしてそれがこのモジュールを購入する価値があるかどうか、またそれが実際にそれがWi-Fi Arduinoでも同様のマイクロコントローラを表すのかどうか。

現在、Arduinoのほとんどは、そのようなデバイスの価格についてもはや心配していません。 Wi-Fi Jammer ESP8266のおかげで、メーカーは完全に市場に導入されました 新製品それはその機能に影響を与え、同時にかなり安いです。これはかなりの貢献をし、この方向に競争を生み出しました。

したがって、Arduino Wi-Fi ESP8266は現在、市場で最も手頃なモジュールと見なされています。 したがって、外国のサイト上の価格は2ドルから始まり、パッケージはこれらのモジュールを購入することができ、それらを千回リフティングすることはできません。

最初 このWi-Fi Arduinoモジュールは、最も安いオプションで、元のものを隠していなかったので、主にArduino Wi-Fiシールドとして使用されていました。 そのコストのための軽量マイナスが見つからないので、装置は本当に実質的に伝説的です。 ユーザーを含む多くのライブラリーがあり、シリアルタイヤと最も単純なAT +チームを介して作業をサポートしています。 これのおかげで、セマンティクスは、他のサードパーティのマイクロコントローラとしばしば起こるので、勉強する必要はありません。

したがって、新人でさえ数秒間にわたって把握することになり、専門家は収穫されたライブラリを適用することができるでしょう。 その他の利点は次のとおりです。

  1. プロセッサは160 MHzですが、32ビットです。これは特定のパフォーマンスの刻印を課します。 しかし、モジュールは依然としてArduinoボードを搭載しているバンドルで使用されていることを覚えておく価値があります。
  2. Wi-FiモジュールESP8266をリリースし、興味深いプロジェクトはこれを終了していませんでした、そして今検証された品質のマイクロコントローラの全列があります。
  3. 現代のネットワーク保護基準。 もちろん、WPAとWPA2は私たちが望むほど安全ではなく、彼らの存在はそのような安価なコントローラで喜ぶことはできませんでした。
  4. 16ビットを含む16個の出力ポートで、ボードを実験することができます。

さらに重要なことに、ボードの種類によっては、最大4メガバイトの永続的なメモリがボックスから待っていますが、これは大きなライブラリといくつかのメディアファイルでさえも機能します。 結局のところ、ほとんどのアルドイノボードと1メガバイトが不完全な贅沢と見なされます。

ESP8266 Wi-Fiの特性は、特にそのより高価な競合他社と比較して、これまでにこれらの手数料で経験を持っていなかったユーザーがそれを接続する方法の問題が発生します。 事実は、モジュールが新人を見ているのに使用されているよりもはるかにピンがあるということです。したがって、パニックが始まります。 しかし、あなたが状況を理解しているならば、これで複雑なものは何もありません。 完全にストッキングとはんだごて、そしてただ指示を読むだけです。

Wi-FiモジュールをArduinoに接続する方法

ESP8266 ESP 12Eの接続を見てみましょう.ESP8266とは何ですか wi-Fi Bridge. UART。 結局のところ、それは最も質問をするモジュールの接続と構成です。


まず、マイクロコントローラのバージョンを手に決めます。 最初のLEDはピンの近くに埋め込まれており、2番目の上には最近生成され始めて、信号光はアンテナの近くにあります。

接続する前に、ロードする必要があります 最後のファームウェア毎秒9600単位の情報の為替レートを増やすことができます。 そして、USB-TTLケーブルとCooltermからの対応する端子を介して接続を確認します。


上記のケーブル標準を接続するためのピンですが、食品はArduinoでは3.3電圧IDUを通過します。 電流の最大強さは、150 mA、ESP8266 ESP 07とESP8266 ESP 07とESP8266を搭載することは不可能であることを覚えておくことが重要です。

ただし、他の電流源がない場合は、Arduinoの標準バージョンを使用できますが、ブーストパワーは損なわれます。 強い負荷ではなく、十分に、70 mAが、負荷のピーク点でマイクロコントローラの突然の再起動のために準備され、それぞれソフトウェアを書き込み、ボードを過負荷にせずにファイルを破った。


別の接続オプションは以下の通りです。 重要 - RX-TXコンタクトはクロスヘアで接続されています。 ESP8266 3.3Bモジュールの信号レベル、およびArduino 5Bの信号レベルは、信号レベルを変換するために抵抗分圧器を使用する必要があります。

ArduinoにWi-Fiモジュールを登録します

あなたが知っているように、適切な経験で、ESP8266 EX 12eとスマートフォンと一致させることもできますが、新参者とArduinoシステムのESP8266 ESP 12の登録は困難を引き起こします。 実際、モジュールを接続してそのパフォーマンスをチェックするのに十分です。デバッグメニューを介してコマンドで複数の標準を投げます。

たとえば、通常のLEDで点滅を追加できます(上記の接続方式の場合)。

#define txd 1 // gpio1 / txd01 void setup()(PINMODE(TXD、出力);)void Loop()(DigitalWrite(TXD、High);遅延(1000); DigitalWrite(TXD、LOW)遅延(1000) ;)

手数料がシステム内のマイクロコントローラを見ていることを確認するとすぐに、あなたはそれを完全に仕事を始めることができます。 ただし、Arduinoボード自体がこのコントローラを接続するためにのみプロジェクトで使用されている場合、それは不合理です。

ESP8266はARDUINOの「ブレイン」を使用していないため、USB-UARTコンバータで十分です。フラッシュメモリとファームウェアのペアを格納するのに十分です。 したがって、簡単にコンバータに落ちてプロジェクトでさらに使用できる場合は、子会社にもう一度支出を費やすという点はありません。 同時に、補助電源を接続することによって、システムの電力がないためにデータが最も責任ある瞬間に送信されるのを止めることを心配しないでください。

重要な発言! 最後のスケッチ回路の通常のようにArduinoの負荷は、ESP8266モジュールがコンタクト0と1に接続されているため、プログラミングは不可能になります。 コンパイラがエラーを表示します。 WIRESを接続0と1からeSP8266に接続し、プログラミングを行い、その場所に連絡先を戻してArduinoにクリックします。

良い一日!

最近創造するという考えに興味がある」 スマートホーム"" 私の処分で必要なコンポーネントから、これまでのところArduinoとAndroidの電話のみで、コントロールパネルの作成とその残りのシステムとの接続から始めることが決まった。

システムの私のビジョンは次のようになります。

私はそれが静的なAypishnikを買うのが、ホームサーバーとWebサーバーを組み合わせる価値があると思いますが、初めて降りるでしょう。 単純で始めましょう - LEDとLCDディスプレイを遠隔操作することを学びましょう。

Webサーバー
Webサーバーで、2つの表とテキストを持つデータベースを作成します。 LEDテーブルには、2つのフィールド - IDとステータスが含まれています。 それはLEDの実際の状態を持つ1つのエントリを含みます。 テーブルテキストには、2つのフィールド - IDとテキストが含まれています。 また、現在LCDディスプレイに表示されているテキストのあるエントリも含まれています。

これで、電話から呼び出してデータベースの情報を送信するスクリプトをいくつか書きます。 私たちはPHPに書きます。

LED.PHPスクリプト(LED制御):

MSG.PHPスクリプト(LCDディスプレイ):

コメントから、これらのスクリプトがどのように機能するかは明らかです。 Webサーバー上のすべてのものです。 現在、ホームサーバー(または単にArduinoが接続されているコンピュータ)に変わります。

ホームサーバー。
それは常にプログラムを操作します(デーモンを呼び出すことができます)、データベースへの要求を送信し、その情報がそこに変更されたときに、対応するコマンドをArduinoでCOMポートに送信します。 プログラムは処理中に書き込みます。

輸入処理.Serial。*; // COMポートをインポートするためのライブラリde.bezier.data.sql。*; // MySQLシリアルポートデータベースを操作するためのライブラリ。 MySQL DBConnection。 int prevledstate \u003d 0; //前の文字列prevs \u003d "" LED。 //前のテキスト、void setup()LCDディスプレイで押し下げられました(Port \u003d New Serial( "COM4"、9600)。// COMポート4を初期化する(ARDUINはトリガーされません)、為替レートは9600のボードポートです。BufferUntil ( "\\ n")string user \u003d "username"; string pass \u003d "password"; string database \u003d "name_bd"; dbConnection \u003d new mysql(これ、 "your_domen.ru"、データベース、ユーザー、パス); / / dbconnection.connectデータベースと接続します。)void draw()(// dbConnection.QueryデータベースのLEDに関する情報に従います( "ID \u003d" 1 "が" 1 "から* select *); // LEDテーブルにリクエストを行います。 (dbconnection.next())//サンプルをクエリ結果から比較します( "status"); //ステータスIFフィールド(n!\u003d PrevledState)//前回の "タクトと比較して変更された場合プログラムのコマンドをCOMポートに送信します(PrapledState \u003d n; Port.Write( "1"); //最初の送信されたシンボルは操作のコードを意味します.1 - LED制御、2 - LCD制御 LEM Port.Write(n); ))// DBConnection.QueryデータベースのLCDディスプレイに関する情報を監視します( "ID \u003d" 1 ""のテキストから* select *)。 //テキストの間にテキストを要求してください。PREVS \u003d S; Port.Write( "2"); port.write(s);)遅延\u200b\u200b(50); //リクエストを継続的に送信しないように50ミリ秒の遅延を行います)
私はこのコードを説明しません、すべてがとても理解できます。
あともう1つ 大会。 私たちのコンピュータからのプログラムが、上にあるデータベースに変わることができるように リモートサーバーそれを解決する必要があります。 IPを許可リストに入力します。

電話アプリケーション
私は彼のために携帯電話のAndroidを持っています。 私は詳細には詳細に入ることはありません(プログラミング環境のインストールや最初のアプリケーションの書き込みがこの記事 - リンクでここに書かれています)。

アプリケーションの外観は非常に控えめに見えますが、この場合は重要ではありません。

Androidコードの継代だけを与えます。 LEDを制御するスクリプトを呼び出す関数
public void changeled()(try(URL URL1 \u003d新しいURL( "http://vash_domom.u./led.php");; httpUrlConnection URL1.OpenConnection(); try(inputStream in \u003d new bufferedInputStream(URLConnectionStream() )最後に(URLConnection.Disconnect();))キャッチ(例外e)())
関数LCDディスプレイに表示するテキストを送信する:
public void submitmsg()(最終edittext tt \u003d(edittext)findViewByID(r.id.edittext1); try(URL URL1 \u003d新しいURL( "http://vash_domen.ru/msg.php?msg \u003d" + tttext) (); httpUrlConnection URLConnection \u003d(httpUrlConnection)url1.openconnection(); try(inputStream in \u003d new bufferedInputStream());最後に(urlConnection.disconnect();))catch(例外e)())
まあ、ボタンにイベントハンドラのバインドがあるメイン機能:
Public Void onCreate(Super.Oncreate(SaveDinstanceState); setContentView(R.Layout.main); finalボタンBTN1 \u003d(ボタン)FindViewByID(R.ID.Button1); BTN1.SetonClickListener(New Button.OnClickListener()(VIEW V) // [Changeled()]をクリックします。最後のボタンBTN2 \u003d(ボタン)FindViewByID(R.ID.Button2); BTN2.SetonClickListener(New Button.OnClickListener()(public void onClick(View v)// (submitmsg();))をクリックしてください。);)
そしてもう1つの重要な点は、インターネットへのアプリケーションへの許可を追加することです。 これを行うには、AndroidManifest.xmlファイル(Androidアプリケーションのディレクトリにあります)行を追加する必要があります。

アプリケーションを輸出します ファイルAPK そして電話にインストールしてください。 リモコン スマートホーム 準備ができて!

アルドイーノ。
まあ、最後に、最後にはvalueは、Arduinoとそのファームウェアの接続です。 LCDスクリーンとArduino Uno LEDへのLED回路は次のようになります。

抵抗器は220オームを取ります。 こちらのLCD画面の接続についてもっと詳しく説明できます。

しかし、それはすべて現実の調べられる方法:

本当の美しい?

Arduinoのタスクは、Demonプログラムの事実を聞いています ホームサーバー。 ARDUINOが接続されているCOMポートに送信します(実際には接続はUSBケーブルを介して行われますが、コンピュータはシリアルポートとして認識します)。 コンピュータからデータを受信した後、送信された情報の第1の文字上のコントローラは、コマンドコードを認識する(すなわち、これは現在、LCDディスプレイまたはLEDのもの)を認識する。 また、コードや次の情報によっては、LEDのON / OFF、または表示されたメッセージへの出力のいずれかが行われます。 だから、これが実際のコードです:

#include。 // LCDディスプレイを使用して作業するための組み込みライブラリー\u003d false \u003d false。 //いくつかのコマンドのコマンドがすでにあることを反映した変数// Caspusaはなぜ必要なのかを説明します。 各「タクト」ループサイクルについてARDUINOはCOMポートから1シンボルのコードを読み取ります。 したがって、文字列は数クロックで送信されます。 2つのそれぞれの前に同時に 考えられるチーム (LEDのステータスやテキストの送信への表示を変更する)//このコマンドのコードを渡します(それぞれ1と2)。 送信されたさらなる情報(ディスプレイのLEDまたはテキストステータス)からコマンドコードを分離するには、//この変数が使用されます。 液晶LCD(4,5,10,11,12,13)。 //初期化int ledpin \u003d 8を表示します。 // NUMBER PINA ARDUINO、INT PREVEDSTATUS \u003d 0 LEDが接続されている。 //前のLEDステータス(ON / OFF)int newledStatus \u003d 0; // 新しい状況 LED INT CMD \u003d 0。 // void setup()(serial.begin(9600)コマンド(9600); // COMポート初期化(9600 - Bodache Exchange Rate)PinMode(LedPin、Output); // 8番目のピナArduinoの初期化LCD出力開始(20.4); // LCDディスプレイ(4行の20文字)の初期化)void Loop()(if(serial.available()\u003e 0)// comポートにある情報がある場合(if (isexecuting \u003d\u003d false)//現時点でコマンドが実行されない場合(cmd \u003d serial.read() - "0"; // isexecuting \u003d trueコマンドのコードを読み取ると、変数は実行が表示されることを示します。 (CMD \u003d\u003d 1)// LED制御(NEWLEDSTATUS \u003d(int)serial.read(); //変更した場合は、IF LED(NewledStatus!\u003d PrevledStatus)//を読み取る現在のステータスと比較して、現在の状態を変更します(DigitalWrite(LedPin、NewledStatus); PrevledStatus \u003d NewledStatus;))))// Display Control(IF(isExecuting \u003d\u003d False)//現在行わない場合 私はどんなチーム(lcd.clear(); //画面を掃除してください)(lcd.print(char)serial.read()); //ディスプレイ上のシンボルを表示)))))))))情報がCOMポートに入っていない場合(遅延(50)。 // 50ミリ秒の場合(Serial.Available()<= 0) //если информации по-прежнему нет isExecuting = false; //считаем, что никакая команда не выполняется } }
私はコメントに詳細に描かれているので、彼は説明を必要としません。 注意すべきなことは、ディスプレイに送信された行のいくつかの制限です。 それらはスペースを含んではいけません(この制限は私のアルゴリズムの不完全さによって課されています)、Cyrillicを含んではいけません(すべてのディスプレイではサポートされていないため、それがサポートされている場合はそれ自身のエンコーディングでシンボルコードの送信を必要とする必要があります)。欲望がない文字を変換する。

結論
それでおしまい。 それは非常に単純であることがわかった。
すべてがどのように機能するかのビデオ:

ESP8266チップは、スマートホームのプロジェクトで無線通信を開催するための最も一般的なツールの1つです。 ワイヤレスコントローラを使用して、WiFiインタフェースを介して通信を整理し、インターネットにアクセスするためのArduinoプロジェクトとリモートコントロールとデータ収集の機能を提供できます。 ESP8266に基づいて、WemosとNodemcuのような一般的なボードが作成され、膨大な数の自家製プロジェクトが作成されています。 この記事では、Arduino IDEでは、その品種、ESP8266を扱う方法がありますESP82266から学びます。

ESP8266は、フラッシュメモリからプログラムを実行する機能を持つWiFiマイクロコントローラです。 この装置は2014年に中国のespressifによってリリースされ、すぐに人気がありました。

コントローラは安価で、いくつかの外部要素を持ち、以下の技術的なパラメータを持っています。

  • WEP、WPA、WPA2を備えたWi-Fi 802.11 B / G / Nプロトコルをサポートしています。
  • 14の入出力ポート、SPI、I2C、UART、10ビットADCを所有しています。
  • 最大16 MBの外部メモリをサポートします。
  • 選択されたモードに応じて、2.2から3.6 Vまで必要な電力が消費され、最大300 mAの消費電流が消費されます。

重要な機能は、水晶上のユーザー不揮発性メモリの欠如です。 プログラムは、必要なプログラム項目の動的負荷を用いて外部SPI ROMから実行される。 内部周辺機器へのアクセスは、ドキュメントから取得できませんが、ライブラリセットのAPIからはできません。 製造者は、RAM - 50 KBのおおよその量を示しています。

特徴ESP8266

  • コンピュータへの便利な接続 - USBケーブルを介して、それから電源を供給します。
  • 内蔵電圧変換器3.3Vの存在
  • 4 MBのフラッシュメモリの可用性。
  • 再起動して点滅するための組み込みボタン。
  • すべてのポートは2つのコームの足で2.5 mmのピッチで取り外されます。

ESP8266モジュールアプリケーション

  • オートメーション;
  • スマートホームのための様々なシステム:無線制御、無線ソケット、温度制御、シグナリングシステムへの追加。
  • モバイルエレクトロニクス。
  • ラベルID;
  • 子供のおもちゃ;
  • メッシュネットワーク

ピックアップESP8266。

ESP8266モジュールの膨大な量の品種があります。 この図はそれらのいくつかを示しています。 最も人気のあるオプションはESP 01です。

プログラムの実行は、電源が終了すると、ポートGPIO0、GPIO2、GPIO15の状態を設定する必要があります。 2重要なモードを強調表示することができます。通常モードでは\u003d 0)

ESP01のピンアウトは写真に表\u200b\u200b示されます。

連絡先の説明:

  • 1 - 地球、8食事。 ドキュメントによって、電圧は3.6 Vに供給されます - Arduinoとの作業時に考慮することは重要です。
  • 6 - RSTは、低い論理レベルが送信されたときにマイクロコントローラを再起動するために必要です。
  • 4 - CP_PDは、デバイスを省エネモードに変換するためにも使用されます。
  • 7と0 - RXD0とTXD0、これはモジュールの点滅に必要なハードウェアUARTです。
  • 2 - TXD0では、LEDがこの連絡先に接続されており、GPIO1のローロジックレベルで、データをUARTに送信するときに点灯します。
  • 5 - gpio0、入力および出力ポートでは、デバイスをプログラミングモードに変換することもできます(ポートを低い論理レベルと電圧電源に接続するとき)。
  • 3 - GPIO2、入力ポートと出力。

ピックアップESP-12

ESP8266の主な違いArduino

  • ESP8266にはフラッシュメモリが多いが、ESP8266には不揮発性メモリがありません。
  • Arduinoよりも速いESP8266プロセッサ。
  • ESP8266のWi-Fiの存在。
  • ESP8266 Arduinoよりも電流を消費する。

Arduino IDEでESP8266のプログラミング

ESP8266開発者ソフトウェアキットには以下が含まれます。

  • GNUコンパイラコレクションパッケージからのコンパイラ。
  • ライブラリ、WiFiのスタック、TCP / IPプロトコル。
  • コントローラプログラムの情報ダウンロードツール。
  • IDEの操作

最初に、ESP8266モジュールには製造元からファームウェアが付属しています。 これにより、外部マイクロコントローラからモジュールを制御でき、Wi-Fiをモデムとして実装できます。 他の多くの完成したファームウェアもあります。 それらのいくつかを使用すると、Webインターフェイスを使用してモジュールの動作をカスタマイズできます。

Arduino IDE環境からプログラムできます。 それが役立つとき、あなたは簡単にスケッチを書いてESP8266でそれらをフラッシュESP8266にダウンロードすることができますが、Arduinoボード自体が必要です。 Arduino IDEはすべてのタイプのESP8266モジュールをサポートしています。

現在、ESP8266の場合は、次の機能を実装できます。

  • 配線言語の主な機能 Arduinoボード上のピンと同じ方法でGPIOポートを制御できます。ピンモード、DigitalDead、DigitalWrite、AnalofWrite。 AnalogRead(A0)コマンドを使用すると、ADC値をカウントできます。 AnalogWrite(PIN、VALUE)コマンドを使用すると、PWMを目的のGPIO出力に接続できます。 値\u003d 0では、PWMがオフになると、最大値は1023に等しい定数に達します.AtpatureTinderrupt関数を使用すると、DetachInterruptは16以外の任意のGPIOポートで任意のGPIOポートで中断されます。
  • タイミングと遅延 MillisおよびMicroSコマンドを使用して、開始以降に合格したMSとISSを返すことができます。 遅延により、適切な時点でプログラムの実行を一時停止できます。 また、遅延(...)関数を使用すると、スケッチ内に大きな要素が存在する場合は通常のWi-Fi操作を維持できます。これは50 ms以上実行されます。 yield()は遅延関数(0)の類似体です。
  • シリアルとシリアル1(UART0とUART1)。 ESP8266のシリアル作業はArduinoでの作業に似ています。 データブロックコードの実行と読み取りFIFOが128バイトの場合は、256バイトのソフトウェアバッファがいっぱいになります。 シリアルオブジェクトはハードウェアUART0を楽しんで、GPIO1(TX)とGPIO3(RX)の代わりにPINS GPIO15(TX)とGPIO13(RX)を設定できます。 これを行うには、serial.begin()関数の後に。 Serial.swap()を呼び出す必要があります。 同様に、Serial1は転送で実行されるUART1を使用します。 このGPIO2に必要なピン。
  • マクロProgmem。 彼の仕事はArduinoでの仕事に似ています。 読み取り専用データと文字列をフラッシュメモリに永続的に移動できます。 同時に、同じ定数がESP8266に保存されず、これは追加のSECTのフラッシュメモリにつながります。
  • i2c。 I2Cバスの操作を開始する前に、TiresがWire.pins関数(int SDA、INT SCL)を使用して選択されます。
  • SPI、OneWire - 完全にサポートされています。

WiFiによるArduino通信用のESP8266を使用する

Arduinoに接続する前に、ESP8266の供給電圧が3.6を超えることができないことを覚えておくことが重要です。抵抗分割器を使用して2マイクロコントローラを接続するには、電圧は5 Vです。 モジュールを接続する前に、PINOUTを選択したESP8266を知る必要があります。 ESP8266-01の接続図を図に示します。

3.3 V Arduinoと - ESP8266モジュールのVCC&CH_PDの場合、Arduino - Astive - ESP8266、0 - TX、1 - RXを持つ土地。

安定した操作をサポートするために、ESP8266は、3.3V、最大電流250mAだけ定電圧の供給源を必要とします。 電源がUSB-TTLコンバータから来ると、誤動作と誤動作が発生する可能性があります。

ESP8266のWi-Fiライブラリを使用して動作することは、通常のシールドのライブラリーに似ています。 いくつかの機能があります。

  • モード(M) - 一度にクライアント、アクセスポイント、または両方のモードのうちの3つのモードの1つを選択する。
  • オープンアクセスポイントを作成するには、SOFTAP(SSID)が必要です。
  • sOFTAP(SSID、PASSWORD) - パスワードアクセスポイントを作成します。これは少なくとも8文字で構成されています。
  • wifi.macaddress(Mac)とWiFi.SoftapMacAddress(Mac) - MACアドレスを決定します。
  • wifi.localip()とwifi.softapip() - IPアドレスの定義。
  • printDiag(シリアル); - 診断データを知ることを学びます。
  • WiFiudp - クライアントモードでのマルチキャストパッケージの転送と受信をサポートします。

この作業は次のアルゴリズムに従って実行されます。

  • USB-TTLをUSBとESPに接続します。
  • Arduino IDEを起動します。
  • ツールメニューのフラッシュメモリの希望のポート、料金、頻度、サイズを選択します。
  • ファイル - 例 - esp8266wifi - wifiwebserver。
  • SSIDスケッチとWi-Fiパスワードで書き込みます。
  • コンパイルとダウンロードコードを開始します。
  • ファームウェアプロセスの終了を待って、GPIO0を地球から切り離します。
  • 115200の速度を入れてください。
  • 接続が接続され、IPアドレスが記録されます。
  • ブラウザを開き、アドレスバーにIP / GPIO / 1番号を入力します。
  • ポートモニタを表示すると、LEDがGPIO2の出力に接続されている場合は、点灯するはずです。

ESP8266に基づくNodeMCU

NodeMCUはESP8266モジュールに基づくプラットフォームです。 Wi-Fi経由でインターネットを使用して距離でスキームを制御するために使用されます。 ボードは小さく、コンパクトで、正面にはUSBコネクタがあります。 マイクロコントローラをデバッグして再起動するためのボタンの近く。 ESP8266チップも取り付けられています。 電源電圧 - 5から12Vまで、10 Vを超えることが望ましいです。

理事会の大きな利点は、その小さなエネルギー消費量です。 多くの場合、それらは自律食品を持つスキームで使用されています。 ボード上の一般的なポートポートしかない、それらのいくつかは特別な機能を持っています:

  • D1とD2 - I2C / TWIインタフェースの場合。
  • D5-D8- SPIインターフェース用です。
  • D9、D10 - UART用。
  • D1-D10 - PWMとして機能することができます。

このプラットフォームには、ハードウェア入出力用の最新APIがあります。 これにより、機器の操作中、および設定されているときにアクションの数を減らすことができます。 NodeMCUファームウェアを使用すると、作業電位全体を使用してデバイスを迅速に開発できます。

ESP8266に基づくWemos

WemosはESP8266マイクロコントローラに基づく別のタイプのプラットフォームです。 したがって、Wi-Fiモジュールがあり、Arduino IDEがサポートされているため、外部アンテナコネクタがあります。 ボードには11のデジタル入力/アウトレットがあります。これは、(D0を除く)サポート割り込み/ PWM / I2C / 1線式をサポートしています。 最大電源電圧は3.3 Vに達します。プラットフォーム上にはUSBコネクタがあります。 最大電圧3.2Vのアナログ入力1。

モジュールを操作するには、CH340ドライバをインストールし、ESP8266の下にArduino IDEを設定する必要があります。 これを行うには、[設定]メニューの[追加]リンク]メニューに、アドレスhttp://arduino.esp8266.com/stable/package_esp8266com_esp8266を追加する必要があります。

その後、ESP8266パッケージでESP8266を見つけてインストールします。 その後、メニューのWemos D1 R2マイクロコントローラツールを選択し、目的のスケッチを書きます。

ESP8266による結論

板を使用してESP8266チップに基づいて、「大インターネット」の機会をプロジェクトに追加することができ、それらをはるかに知的にします。 サーバー、音声処理、および画像のリモコン、データ収集、分析 - WiFiプロジェクトをインターネットに接続すると、これがすべて利用可能になります。 次の記事では、ESP8266データベースデバイスをプログラムすることが可能な方法で、WemosとNodemcuのような一般的な支払いに注意を払うことができます。

やり直す。

チップ 特に。 8266

ESP8266チップは、「インターネットのもの」のために特別に設計されています。 このチップを使用するには2つのオプションがあります。 1つ目は、マイクロコントローラに接続するためのUART-WiFiブリッジと、ATコマンドの制御です。 2番目のオプション - チップ自体がコントローラの役割を実行します。 電子機器愛好家の媒体の推定によると、チップはしばしばコントローラコントローラとして使用されます。

チップの特徴:

  • サポート802.11b / g / n
  • 内蔵32ビットMCU低消費電力
  • 内蔵10ビットADC
  • 組み込みTCP / IPスタック
  • 内蔵WF信号アンプ
  • アンテナの分離のための支援
  • WiFi 2.4 GHz、WPA / WPA2サポート
  • STA / AP / STA + APモードのサポート
  • SDIO 2.0、(H)SPI、UART、I2C、I2S、IRリモコン、PWM、GPIO
  • STBC、1x1 MIMO、2×1 MIMO
  • A-MPDU&A-MSDUアグリゲーション&0.4Sガードインターバル
  • 802.11bモードで出力電力+ 20 dBm

チップはWiFiを扱うための高度に統合されたソリューションです。 チップの中にあなたが必要とするすべてを置くことができました。 作業に最小限に必要な典型的なチップのブロッキングは7つの要素のすべてで構成されています。

同様の解決策の構成要素数を比較する写真。

この魅力全てによると、32ビットCPU Xtensa LX106コアは、他のデータによると、TensilicaのL106ダイヤモンドに従って管理されています。 顕微鏡の下では、関連する要素からの都市全体としてのチップのように見えます。

最も重要な特性の1つは消費電力です。 ESP8266それは単に驚くべきもの:

  • 連続送信モードで215mA。
  • アクセスポイント付きの1mA接続モード
  • リアルタイムクロックを備えた深いスリープモードで10UA
  • 電源オフモードで0.5UA

目覚めに必要な時間とパッケージの転送の開始は2ms未満です。 たとえば、温度を100秒ごとに測定し、アクセスポイントに接続し、300秒ごとに累積データの転送を測定した場合(チップが眠っている)平均電流は約1mAになります。 これは、3つのフィンガーバッテリーから2600mA / hの3ヶ月以上の作業です。

モジュールについて 特に。

現在、ESP8266チップの最も人気のあるモジュールは、ESP-01、ESP-02、ESP-04、ESP-05、ESP-06、ESP-07、ESP-07、ESP-09、ESP-09、ESP-10 ESP-11、ESP-12、ESP-12E。 それらは、希釈されたピンの量、外部アンテナを接続するためのコネクタの存在、サイズが異なります。

今、あなたはすでにESP8266兄弟を見つけることができます - これはESP-32モジュールです。 AliExpressでは、これらのモジュールを2つだけ持っています。 ESP-12Eのための110ルーブルに対する約250ルーブルの価格。 新しいモジュールはさらに大幅になります。

ESP-32の主な機能。 (クリックして表示)

Wi-Fi
- 802.11 B / G / N / E / I
- 802.11 N(2.4 GHz)、最大150 Mbps
- 802.11セキュリティ機能:事前認証とTSN
- 802.11 e:QoSトラフィックの優先順位付けを完全に利用するための複数キュー管理
- Wi-Fi保護アクセス(WPA)/ WPA2
- Wi-Fi保護セットアップ(WPS)
- UMA準拠で認定
- アンテナダイバーシティND Section
- a-mpduとa-msdu集約
- WMM電源S VE U-APSD
- フラグメンテーションとデフラグ
- Wi-Fi Direct(P2P)、P2Pディスカバリー、P2PグループオーナーモードとP2P電源管理
- インフラストラクチャBSSステーションモード/ソフトAPモード
- 自動ビーコン監視/スキャン
- ハードウェアアクセラレータのSSLスタック

ブルートゥース
- CMOSシングルチップ全体的に統合されたラジオとベースバンド
- Bluetoothピコネットとスキャッタネット
- Bluetooth 4.2(BR / EDR / BLE)
- 適応周波数ホッピング(AFH)
- SMP。
- クラス1、クラス2およびクラス3トランスミッタはexter AL電力増幅器
- + 10 dBm TRAスミッティングパワー
- -90 dBmの感度を持つNZIF受信機
- アップ - から4 Mbpsの高速UART HCI
- SDIO / SPI HCI
- CVSDとSBC
- 低消費電力
- 最小外部コンポーネント

CPUとメモリ。
- Xtensa®Dual-Core 32ビットLX6 MICR PR CESS RS、最大400ミリ
- 128 KB ROM
- QSPIフラッシュ/ SRAM、最大4 x 16 MB
- 電源:2.5Vから3.6V
- 416 KB SRAM

時計とタイマー。
- 2 MHzから40 MHzの水晶発振器
- キャリブレーション付きの内蔵8 MHz発振器
- キャリブレーションを備えたRTC用の外部32 kHz発振器
- キャリブレーション付き内蔵RCオシレータ
- 各グループの3 x 64ビットタイマと1 xウォッチドッグを含む2つのタイマーグループ
- サブ秒の精度を持つRTCタイマー
- RTCウォッチドッグ。

高度な周辺機器インタフェース
- 最大16チャンネルの12ビットSAR ADC
- 2 x 10ビットD / Aコンバータ
- 10×タッチセンサー
- 温度センサー(-40 + 125°C)
- 4×Spi.
- 2×I2S
- 2×I2C
- 2×UART.
- 1ホスト(SD / EMMC / SDIO)
- 1スレーブ(SDIO / SPI)
- 専用DMAとIEEE 1588のサポートを備えたイーサネットMACインターフェース
- CAN 2.0。
- IR(TX / RX)
- モーターPWM。
- 16チャンネルまでのLED PWM

安全
- IEEE 802.11標準セキュリティ機能は、WFA、WPA / WPA2、WAPIを含むサポートされているすべてのセキュリティ機能
- セキュアブート
- フラッシュ暗号化
- 1024ビットOTP、最大768ビット
- Cryptographccハードウェアアクセラレーション:
- AES 128/192/256
- ハッシュ(SHA-2)図書館
- RSA。
- Radom Number Generator.

特にCANバスの宣言されたサポートに興味があります。 すぐに自動車システムを制御し、モバイル機器から直接WiFiを診断することが可能になります。

しかし、ESP-12Eに戻ります。 NodeMCUプラットフォームはこのモジュールに基づいて構築されています。

プラットフォームについて

プラットフォームはESP-12モジュールの機能を使用しているため、独自のマイクロコントローラがありません。 中国人はさまざまなインターフェースコンバータを持つ多くのクローンを作成し、プラットフォーム自体はサイズが異なります。

デフォルトでは、NODEMCUファームウェアはLUAスクリプト言語インタプリタをサポートするプラットフォームにダウンロードされます。 スクリプトボードの動作を設定します。

私はArduino IDEを使ってプログラムを書いて注ぐ。 プラットフォームを操作するには、ライブラリをインストールする必要があります。 ライブラリは多数のプログラム例です。

水曜日にライブラリをインストールします アルドイーノ。 IDE 仕事のために Nodemcu。 .

ライブラリを設定するには、Arduino IDE設定にアクセスし、アドレスhttp://carduino.esp8266.com/package_esp8266)_index.jsonを入力する必要があります。

リストを下に拡散し、ESP8266コミュニティでESP8266を見つけ、ライブラリをインストールします。

「ボードマネージャ」を閉じます。 「ツール」に移動して、あなたのバージョンに従ってNodeMCUカードを選択してください。

どのモジュールがインストールされているかと選択するバージョンを理解するために、モジュールを見てください。 それの接点が3つの側面にある場合 - これはESP-12Eです.2つだけがESP-12です。

NodeMCUプラットフォームの結論

ライブラリーfor.によってサポートされている機能 アルドイーノ。 IDE .

詳しい説明ここでhttps://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_ruとロシア語を読むことができます。 基本機能について話します。

GPIO制御はArduinoと同じ方法で行われます。 通常どおりにPinMode、DigitalDead、Digitalwrite、アナログライト機能です。 AnalogRade(A0)は、それぞれアナログ入力A0からADC値を読み取ります。 アナログライトにはソフトウェアPWMが含まれています。 1 kHz程度のPWM周波数。 PWMは、覚えており、覚えておくと、gpio16を除くすべてのGPIOでも、任意のGPIOでもサポートされています。 Millis()およびMicroS()関数は、モジュールの開始から渡されたミリ秒とマイクロ秒に返されます。 NodeMCUからのDelay()関数はArduinoとは異なります。 ここでは、遅延の適用は大歓迎です。 モジュールがWiFi接続をサポートすると、スケッチを除いて、多くのバックグラウンドタスクを実行する必要があります。 SDKライブラリのWiFiおよびTCP / IP機能は、Loop()関数の各サイクルまたは遅延の実行中にキュー内のすべてのイベントを処理することができます。 コードが50ミリ秒を超えるフラグメントを持つ場合は、WiFiスタックの通常のパフォーマンスを維持するために遅延(...)を使用する必要があります。 しかし、DelayMicroseconds()は他のタスクの実行をブロックし、20ミリ秒を超える遅延には推奨されません。 シリアルPIO1(TX)およびGPIO3(RX)で動作するハードウェアUART0を使用します。

モバイルアプリケーションから4リレーを管理するためのプログラム

ライブラリがプラットフォームに設定された後、それぞれGPIO 5,4,0,2に対応するPIN D1、D2、D3、D4に4個のリレーのブロックを接続します。 次に、プラットフォームとリレーユニットに電源を接続します。 私はリレーブロックがありますが、機能が1つあります。 リレーをオンにするには、ピンをグランドに締め付ける必要があります。 すなわち、論理0は中継を含み、1がオフになる。

リレーブロックを制御するための3つのオプションを検討します。

最初のプログラム Arest Https://github.com/marcoschwartz/arestの人気ライブラリを使用しています

これはAPIハンドラライブラリで、タイプのHTTPリクエストを介してGPIOを管理できます。http://192.168.0.10/digital/6/1の機能:デジタルまたはアナログ(PWM)にGPIOをインストールし、0または1をピンに設定します。デジタルモードでは、変数を返し、ピンの状態を読み取ります。

私はプログラムをコンパイルして、図書館と一緒に行く例からダウンロードしました。 使用の観点から - それは簡単です。

セットアップでは、COMポートを介して報告されているように、接続はアクセスポイントに設定されます。 そしてループは次のようになります。

void loop()()

WificLient Client \u003d Server.Available();

(!クライアント)の場合

帰国;

}

while(!client.available())(

遅延(1);

}

REST.HANDLE(クライアント);

}

すべて。 何が起こっているのは明確ではありません。 動作しますが、実際には何もプログラムしません。 プログラムを実行するだけで、他のすべてがライブラリを作成します。 しかし、GPIO「手」と働く方法を学ぶのはもっと面白いです。 はい、ところで、私は無期限の時間の後にプログラムを持っていました。 時々40分後、時には5~6時間で。 8時間の仕事の後に家に帰って、私は常にプログラムが機能しないことを発見しました。 同時に、ルータはWiFiクライアントが接続されていること、およびIPアドレスが発行されたことを示します。 私の図書館への私の興味はすぐに消えました。 ロシア語を話すフォーラムでの台座の吊り下げ上では苦情を満たしていませんでした。 私はNODEMCUや不安定な食品に罪を犯しましたが、さらなる実験では、私の症例ではプログラムが非難することが証明されています。 ほとんどの場合、私は特別なケースを持っています。 ライブラリが機能していないと主張しません。

arestを整理しました。

第二のプログラム 書面は独立して接続されているライブラリを1つだけ使用します 。 プログラムは簡単で、Web要求を通じてピンを管理する方法を明確に示しています。 このプログラムは、D1-D4の結論で論理状態のみを管理し、プログラムの動作時間に関する情報をテストクエリとして表示することができます。 必要に応じて、GPIOの残りのためのプログラムを追加することができます、「教える」にPWMなどを与えることができます。 D4出力には、ESP-12Eモジュールに青いLEDが接続されています。 ARESTのハング付きの苦しみの後、私は一時的にリレー4をD4から切り離し、そして私のプログラムでこのLEDによって点滅するために数回の行を終えました。 私は仕事の後に帰宅しました モバイルからチェックされています - 正確に機能します。 プログラムはフリーズなしで8日間働いていましたが、より長く機能しますが、私は1つのNodemcuを持っているので、私はそれを勉強し続け、私が止めなければならなかったプログラムを満たしました。

プログラムをコンパイルしてシリアルポートモニタにダウンロードした後、プログラムは接続ステータスとIPアドレスとIPアドレスを報告します。これは、プラットフォームがアクセスポイントから受信します。

これら2つのプログラムの中継ユニットを制御するために、Android OSを搭載したモバイル上にアプリケーションが作成されました。 アプリケーションは非常に単純です、それはアプリInventor 2で作成されました。後でアプリケーションのアプリケーションを説明します。 まず、中継管理ソリューションの3番目のバージョン。

3番目のオプション 繁雑。 1つの開発者からのファームウェアプラットフォームおよびAndroidプログラム。 私はBlynkサービスを使いました。 これはグラフィックコントロールパネルを作成するためのクラウドサービスであり、広範囲のマイクロコンピュータとマイクロコントローラに適しています。

Blynkコントロールで独自のプロジェクトを作成するには、かなりのものが必要です。アプリケーションをインストールする(iOSとAndroidに使用可能)またはWebフォームを使用する必要があります。 これにより、1ステップで登録が必要になります - 電子メールとパスワードを入力します。 事実は、Blynkがクラウドソリューションであり、登録なしでは、どのユーザーも鉄の一部を制御することができます。

希望はサーバーをローカルにインストールできます。 この場合、インターネットへのアクセスは必要ありません。

私はプロセス自体を説明します。 それは2つの部分で構成されています。

最初の部分 Google PlayでBlynkをダウンロードしてください。 プログラムをインストールして実行します

  1. 「新しいプロジェクトの作成」を押す
  2. プロジェクトの名前をお楽しみください。ハードウェアモデルフィールドにNoDemcuを選択します。 認証トークンは心で学び、一枚の紙に書いて、メールに送ってください。 「作成」をクリックしてください。
  3. 角の「+」をクリックしてください。
  4. 「ボタン」を選択してください。 あなたがすでに注意を払ったように、プロジェクトに追加された各要素はエネルギーの価値があります。 デフォルトでは、それは2000年に与えられます。エネルギーウィジェットが追加されると、エネルギーが費やされます。 もっとウィジェットを配置する必要がある場合は、お金のためにエネルギーを購入する必要があります。

  1. だから私たちのボタンが現れました。 クリックして。 設定が開きます。
  2. 名前、それが行動するPIN、ボタンまたはスイッチのモード、ステータスの名前「有効」と「オフ」の名前を選択します。 ボタンからの信号を反転することは反転できません。 私の中継のために:ボタンがオフになっています - 0出力では、リレーがオンになり、その逆もあります。 ロジック操作ルールを規定できます。サーバーをローカルコンピュータにインストールできます。
  3. 次に、上の上の三角形を押します。 プログラムは編集のモードから作業することになります。
  4. ボタンが機能します。 マルチタッチは注目に値する。 6つのボタンを同時に押すことを試みました。 すべてがうまくいきます(電話では10件の10点)。

の2番目の部分 - これはNodeMCUファームウェアです。 Blynkライブラリhttps://github.com/blynkkk/blynk-libraryをダウンロードしてインストールします。 Arduino IDEを起動 - ファイル - サンプル - Blynk - BardsandShields - ESP8266_standalone。

秘密の郵便紙を使ってAuthトークンの例をお楽しみください。 また、あなたのWiFiネットワークとパスワードへのアクセスをSSIDします。

すべて。 コンパイルして縫う。 すべてが初めて獲得しました。 クラウドサービスのインターネットへの使用に従う、携帯電話とNodeMCUの両方にアクセスする必要があります。

アプリケーションを作成するアプリ。 発明者.

App Inventor - Androidアプリケーションのビジュアル開発環境で、ユーザーが最小限のプログラミング知識を必要とする。 当初はGoogle Labsでデザインされています。この実験室の閉鎖がマサチューセッツ州技術研究所に移された後。 アプリInventorでのプログラミングのために、グラフィカルインタフェースが使用され、視覚的プログラミング言語はスクラッチ言語とStarlogo TNGと非常によく似ています。 アプリケーションを書くことに対処することはそれほど難しくありません。 私はロシア語で有用な文書を見つけませんでしたが、YouTubeでたくさんのビデオです。

サービスには2つのメインタブがあります。 最初のものは「デザイナー」ですが、ここではビジュアルエディタに配置されています。 インタフェース開発速度は、アプリInventorサービスの特徴により非常に高いです。 MITアプリInventor 2コンパニオンアプリケーションをモバイルデバイスにインストールする必要があります。 それを実行します。 サイトでConnect - AIコンパニオンを選択します。 QRコード画面に生成され表示されます。 アプリケーションでは、「スキャンQRコード」とスキャンコードをクリックする必要があります。 数秒後、アプリケーションはモバイルデバイスの画面に表示されます。 2秒間に文字通り新しい要素または変更されたデータは、モバイルデバイス上でのスキャンに利用可能になります。

画面上に配置されています。入力フィールドにIPアドレス、インストールボタンを入力してテストクエリを送信します。 以下は、「WebViewer」コンポーネントです。それはNODEMCUページからの応答に表示されます。 以下は、リレーを含む2つのボタンの4つのグループです。 "TinyDB"コンポーネントも必要です、クエリを構築するための変数を保存します。 また、音声コマンドでリレーを管理できるように音声認識コンポーネントを追加します。 テキストが認識されたときのアクションアルゴリズムを説明するために、この関数を使用するのが非常に不便なので、そうではありません。 まずボタンをクリックする必要があります。その後、ウィンドウはGoogleから碑文 "Speak"で表示され、チームは発音されます。 そしてチームの発音の終了後、認識システムはしばらく待っています、それからすべてがすでに言っているようです。 その後、音声認識があり、テキストの応答が得られます。 それは事前に収穫されたフレーズと比較されなければなりません。 その後コマンドが実行された後にのみ実行されます。 ボタンをタップするのが簡単です。

2番目のタブは「ブロック」と呼ばれます。 ここで、アプリケーションの「プログラム」部分全体がブロックの形で指定されています。

ここで、ブロックはプログラムの作業アルゴリズムで構成されています。 アルゴリズムの主要部分はスクリーンショット上にあります。 私はここで何が起こっているのかについて説明します。

  • Set.Click - "Set"ボタンを押すとIP関数を呼び出します
  • 次にIP機能自体が来ます。 最初に "http://"を追加し、 "http://"を追加して、IPアドレスをTinyDBの入力フィールドから保存します。 その後、WebViewer.gotourlはTinyDBからアドレスを取り、最後に "/ test"を追加し、このアドレスを渡します。 私は "http://192.168.0.1/test"になります。 WebViewerでは、テストが渡された画面に情報がロードされ、NodeMCUの連続操作が表示されます。 IPアドレスが正しく入力されていない場合は、ページを開くことができないというメッセージが表示されます。
  • on1.Click(ON1このボタン名)の場合、ON1関数を呼び出します。
  • ON1機能はTinyDBからアドレスを取得し、それに "/ d1 / 0"を追加し、 "http://192.168.0.1 / d1/0"になり、要求を送信します。 NodeMCUはこの要求を受け取りました.PIN D1に0をインストールする必要があるようです。WebViewerで表示されます「GPIO Set OK」を実行して送信します。
  • 次のOFF1ボタンは同じで、終わりのみ "/ d1 / 1"が追加されます。 PIN D1に論理1を設定します。 リレーがオフになっています。

残りのボタンは同様に機能し、要求数ピン数と必要な状態を変更します。

すべてがチェックされ実行されたら、[ビルド - アプリ]をクリックします([.APKをコンピュータに保存)。 APKファイルアプリケーションをコンパイルしてダウンロードすることができます。 それはモバイルデバイスにインストールされている必要がありますが、サードパーティの情報源からのアプリケーションのインストールを可能にする設定を事前にインストールする必要があります。 これでアプリケーションは独立して起動します。 AIコンパニオンもはなく、インターネットともコミュニケーションを通知します。

これが、WiFiネットワーク上の負荷を制御するためにAndroidデバイスのアプリケーションを作成することが可能です。

NodeMCUと携帯電話はホームルーターに接続されています。 WiFiアクセスポイントがない場合、NODEMCUは、モバイルデバイスを直接ESP8266に直接接続するためのアクセスポイント機能を実行できます。 たとえば、ガレージの扉の開口部とガレージに光を包含する。

P.S. プラットフォーム上のアクセスポイントを上げてまだ成功していません。 例として、ライブラリがコンパイルされていません。 Arduino IDEは単にコンパイルプロセスにハングアップします。 私はまだこれに対処しなければなりません。

P.P.S. プラットフォーム上のポイントが上がっていますが、適切な作業はまだ達成されていません。 コマンドは、何秒間かけて遅延されたか、またはまったく実行されなかった。 モジュールの研究は中断されていますが。 忙しい車のサービス

この記事では、Webカメラを装備し、WiFiルーターで管理可能なタンクを収集する方法に関する情報です。

必要な材料:

  1. ウェブカメラ。
  2. TP-Link TL-MR3020ルータ
  3. サーボSG90 - 2ピース
  4. カメラプラットフォームのアンチ振動
  5. アキュムレータ7.2V 5000MAH.
  6. バッテリー5V 2000MAH
  7. ナノ3.0 ATMEL ATMEGA328.
  8. L298Nモータードライバー
  9. ワイヤ、サーマルチューブ、USBハブ、ダイオードなど。
  10. あなたの好みのためのプラットフォーム、私はDD1-1を選びました

私たちのモンスターを組み立てる
MR3020ルータを設定します。
まず第一に、ルータから始めましょう。 私はor-wrtやcyberwrtを選ぶのに長い間考えました。 または設定内のFLEXSをフレックスしますが、Puttyプログラムの助けを借りてターミナルを介してすべての編集と設定を行うことができます。 そして私はそのママを通ってそのママで働くことを恐れていたので、私はグラフィカルインターフェースがある場所があるところで、そしてそれがUSBポートを介して接続することが可能です。
ルータのファームウェアを変更するには、Cyber\u200b\u200b Wrt MR3020ファームウェアをダウンロードする必要があります。

ダウンロードしたように、次の手順を実行します。

1)ルーターをオンにしてダウンロードを待ちます。
2)192.168.0.254に移動してログインします(デフォルトの管理\\ admin)
3)左システムツールのメニューで、システムアップグレードポイントがあり、Webフォームを通してファームウェアを注ぐ
4)再起動を待つ(約4分)
ルータは構成の準備ができています。

モードの1つを選択できます。 「アクセスポイント」と「Wi-Fiネットワーククライアント」 クライアントモードを設定するには
- Wi-Fiネットワーククライアントモードを選択します
- デバイスのIPアドレス(デバイスがこのアドレスで利用可能になります。非公開IPを選択してみてください。例えば:192.168.1.100)
- サブネットマスク(255.255.255.0)
- ゲートウェイ(たとえば、ホームルーターやゲートウェイのIP - 192.168.1.1)
- 暗号化の種類(ホームネットワークで使用される暗号化タイプ)
- パスワード(パスワード、ホームネットワークへのアクセス)

すべてを正しくした場合は、画面の下部にあるRSS文字列に移動します。

稼いだときに、セクションモジュールがあると、「ロボット」モジュールがあります。 インストール。 準備ができています。

L298N、Arduino Nano、MR3020、カメラなどを接続する

絵の中で、すべてが明確に表示されていますが、ただ私が書くことに慣れています。

Arduino Digital 4 - IN1モジュール松。
Arduino Digital 5出力 - IN2モジュール松。
結論Arduino Digital 6 - IN3ピンモジュール。
結論Arduino Digital 7 - IN4のモジュール松。
Arduino GND出力 - GNDモジュール端末へ。
GND CLEMモジュール - マイナスバッテリー。
7.2Vモジュール端末 - プラスバッテリー。
RMモジュールクレムは右モーターです。
LMモジュールクレム - 左モーター。
USB Arduino Port - USBハブに接続します
Webカメラ - USBハブに接続します
USBハブ - USBルータに接続します

食事は、第2のバッテリーによって行われた物流を言う。 ルータを燃やさないように、容量2000 MA / H 5V。 はい、そして2つの電池で、ロボットは安定しています。 そのため、それを単純にマイクロUSBコネクタに接続します。 Rootette Nutritionに接続されているUSBハブを介してすでにカメラと私たちのArduuxを取得します。

Arduino Nanoのスケッチ
Cyber\u200b\u200bLibライブラリをダウンロードする必要があります。これはAtmega 328のみを対象としています。

/ *バージョン1.5 DD1-1のWiFi Tanka:1)xとy 2)ビープ音3)ヘッドライト4)有効なときの音* / #include //ライブラリ#includeを接続してください //サーボMyServo1サーボドライブライブラリを接続します。 サーボMyServo2; 長い前の工場。 // int LEDSTEP \u003d 0タイマーに必要です。 // LED int iのカウンタ。 #define robot_go(d4_high; d6_low; d6_high; d7_high;)#define robot_back(d4_low; d6_high; d6_high; d7_high; d7_low;)#define robot_stop(d4_low; d6_low; d6_low; d7_low;)#define robot_rotation_right(d4_high; d4_high; d7_low; d7_low ;)#define robot_rotation_left(d4_low; d5_high; d6_high; d6_high; d7_high;)#define LED_ON(d13_high;)#define led_off(D13_low;)#define headlamp_on(d8_low;)#define headlamp_off(d8_high;)#define buzzer(トーン(11 、494,500);)#define init(d4_out; d6_out; d7_out; d8_out; d8_out; d8_out; d8_out; d13_out;)uint8_t inbyte; void setup()(MyServo1.attach(9); //サーボドライブをPort MyServo2.attachに接続する(10); //ポートD11_OUT; D11_LOW; // HEADLAMP_OFFスピーカー; // FLAMEデフォルトのヘッドライト(UINT8_T i \u003d 0; I.<12; i++) beep(80, random(100, 2000)); //звуковое оповещение готовности робота init; // Инициализация портов //Buzzer; // Инициализация портов динамика UART_Init(57600);// Инициализация порта для связи с роутером wdt_enable (WDTO_500MS); } void loop() { unsigned long currentMillis = millis(); // Обновление таймера if (LedStep == 0 && currentMillis - previousMillis > 500)(// 0.5秒遅延.repredmillis \u003d currentmillis; // led_on; // LEDSTEP \u003d 1 \u003d 1; //ステップカウンタ)IFSTEP \u003d\u003d 1 && CurrentMillis - PreviousMillis\u003e 500)(// 0.5秒遅延。 \u003d currentmillis; // LED_OFFを更新します。 (UART_READBYTE(INBYTE))//ESTLY何かが来た(Switch(Inbyte)// case "x":// Osontovka Robot_Stopロボット; break; case "w"://前方ROBOT_GO; Break; Case "d"://左のrobot_rotation_left; Break; case "a":// ROBOT_ROTATION_RIGHTを回転させます。壊れてください。ケース ""://移動バックロボット_back; break; case "u"://サーボがmyServo1を獲得しました。書き込み(i - \u003d 20)。破断。ケース "j"://サーボはMyServo1.Write(i + \u003d 20)によって低下します。ブレイク;ケース "h"://サーボはmyServo2を左に回転させます。 書き込み(i + \u003d 20)。 ブレーク; ケース "k"://サーボは右myServo2.Writeに回転します(i - \u003d 20)。 ブレーク; ケース "Y"://サーボ回転85 MyServo1.Write(85); MyServo2.Write(85); ブレーク; ケース "f":// HEADLAMP_ONヘッドライトを有効にします。 ブレーク; ケース "v":// HEADLAMP_OFFヘッドライトをオフにします。 ブレーク; ケース "i"://ブザーホッケ; ブレーク; ))wdt_reset(); )

ルータを変更する
カメラを制御するために、ルータライブラリへの変更が行われました。 変更されたコードをダウンロードしてソースファイルを置き換える必要があります。

トピックを続ける:
os

HTTPSが必要な場合は「サービスへのリンクを追加する」を登録したWebサービスがあります。 以下はインスタンスを作成するための私のコードです...