最近のマイブームである電子工作。下記記事で作ったArduinoを使ったスイッチ類のインターフェースボードにイーサネットシールドを追加してみました。
http://decode.red/ed/archives/315
可変抵抗器のアナログ入力をWebブラウザで読んでみます。
WebサーバのプログラムはArudiono開発環境のスケッチの例にあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 11, 177); EthernetServer server(80); void setup() { Serial.begin(9600); Ethernet.begin(mac, ip); server.begin(); Serial.print("Server Start! "); Serial.println(Ethernet.localIP()); } void loop() { EthernetClient client = server.available(); if (client) { Serial.println("new client"); boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); if (c == '\n' && currentLineIsBlank) { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println("Refresh: 30"); client.println(); client.println("<html>"); client.print("Analog IN 0 : "); client.print(analogRead(0)); client.println("<br />"); client.println("</html>"); break; } if (c == '\n') { currentLineIsBlank = true; } else if (c != '\r') { currentLineIsBlank = false; } } } delay(1); client.stop(); Serial.println("client disconnected"); } } |
値は0から1023の間で変化しました。(最大値はなかなか安定しませんが・・)
これでネットワーク経由でArduinoを制御できます。
(このイーサシールド、中国製で入手するのに1か月以上かかりました)