UDP送信プログラム
- UDP送信先
- IPアドレス: 192.168.10.4
- ポート: 9000
- UDP送信元 (ESP8266)
- ポート: 7000
上記の設定にして以下を実装した。
Serial_setup()はチェック用だが、実際セットアップしかしてない。
v0.1 @ github
にファイルを置いたが、wifiConfig.hの取り扱いには注意。間違ってgitなどにプッシュしないように。
151219udpSend.c
#include <ESP8266WiFi.h>
#include <WiFiUDP.h>
#include "wifiConfig.h"
/*
* wifiConfig.hにおいて kWifiSsid, kWifiPass を char *[]型で定義。使用WiFiの設定を記載すること
*/
static WiFiUDP wifiUdp;
static const char *kRemoteIpadr = "192.168.10.4";
static const int kRmoteUdpPort = 9000;
static void WiFi_setup()
{
static const int kLocalPort = 7000;
WiFi.begin(kWifiSsid, kWifiPass);
while( WiFi.status() != WL_CONNECTED) {
delay(500);
}
wifiUdp.begin(kLocalPort);
}
static void Serial_setup()
{
Serial.begin(115200);
Serial.println(""); // to separate line
}
void setup() {
Serial_setup();
WiFi_setup();
}
void loop()
{
wifiUdp.beginPacket(kRemoteIpadr, kRmoteUdpPort);
wifiUdp.write("from ESP8266\r\n");
wifiUdp.endPacket();
delay(3000);
}
wifiConfig.hは自分のWiFi接続環境に合わせてSSIDとパスワード文字列を設定する。
例としては以下。
ファイルを分けたのは、gitなどにチェックインしないようにするため。
wifiConfig.h
#ifndef WIFICONFIG_H
#define WIFICONFIG_H
static const char *kWifiSsid = "aterm-314ed7-g";
static const char *kWifiPass = "314jfdsk1io";
#endif
受信側プログラム
http://qiita.com/7of9/items/e916a0168fde295bbbc6
に記載の以下のソフトを使う
- unity-151117-linemonitor-UI : androidスマホで動かすUIソフト (Mac, Winでも動く)
実行結果
最初の6行程度はTimチェックをオフにしているため、左に[秒+ミリ秒]がない。
後ろの5行程度はTimチェックをオンにしていて、左に[秒+ミリ秒]がある。
ESP8266のloop()処理において3秒のdelayにしているが、微妙に短い(2.9秒?)ようだ。