Edited at

ESP8266 > UDPで送信できた / esp8266_151219_udpSender

More than 1 year has passed since last update.


UDP送信プログラム


  1. WiFi接続の参考

    http://qiita.com/ie4/items/ae850cdb2c617f3fd6af


  2. UDP送信の参考

    http://www.sunspot.co.uk/Projects/Arduino/ESP8266/ESP8266.html



  • 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秒?)ようだ。

Screenshot_2015-12-19-19-32-53.png