LoginSignup
7
6

More than 5 years have passed since last update.

スマホでArduino Uno + Arduino Ethernet Shield(Webサーバー)に接続

Posted at

やりたいこと

Arduino UnoArduino Ethernet Shield搭載)をWebサーバーにして、スマホでHTTPアクセスした時にLEDを点滅させる

事前準備

Arduino Ethernet Shieldは当然ながらLANケーブルと接続する必要があります。

スマホでLANケーブルなんて嫌なので、LANポートを備えたWifiルータなどを用いて
Arduino Ethernet ShieldとwifiルータをLANケーブルで接続し、wifiルータ経由でスマホからArduino Unoにアクセスすることにします。

自分はTAXANのMeoBankSD ワイヤレスSDカードリーダー&WiFiルーターを持ってたので今回はこれを使いました。

IMG_2310.JPG

回路

Arduinoの8番PIN - 200kΩ(100kΩ x 2本)のカーボン抵抗 - LED - GND

IMG_2309.JPG

スケッチ(プログラム)

MACアドレスの部分は自分の持ってるArduino Ethernet Shieldに記載してあるものを記述して下さい

// イーサネットライブラリを読み込み
#include <SPI.h>
#include <Ethernet.h>

// Arduino Ethernet ShieldのMACアドレスをセット
byte mac[] = {0x**, 0x**, 0x**, 0x**, 0x**, 0x**};

// サーバーとなるArduinoのIPアドレス
IPAddress ip(10, 10, 1, 101);

// HTTP通信をするのでサーバーのポートは80でセット
EthernetServer server(80);

// LEDライト用PIN番号
int ledPin = 8;

void setup() {
  pinMode(ledPin, OUTPUT);

  // LEDの明かりは初期状態では切っておく
  digitalWrite(ledPin, LOW);

  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  //イーサネット通信開始
  Ethernet.begin(mac, ip);

  //サーバ開始
  server.begin();

  // デバッグログ用
  Serial.begin(9600);

  // サーバーのIPアドレス
  Serial.println(Ethernet.localIP());
}

void loop() {
  // クライアントからのアクセス受信
  EthernetClient client = server.available();
  if (client) {
    // LEDの明かりを入れる 
    digitalWrite(ledPin, HIGH);
  }

  // サーバーがコネクションを早く閉じ過ぎる為、
  // Firefoxがプロトコル違反を報告するみないなので、ここでdelay(1)を入れておく
  delay(1);
  client.stop();

  // LEDの明かりを切る
  digitalWrite(ledPin, LOW);
}

最後に

以上でやりたいことが完了しました。

今後はこの辺を応用してArduinoをWebから操作していきたいと思います。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6