17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ESP32でUDP通信やってみた(ESP32インストール手順解説あり)

Last updated at Posted at 2018-12-10

#まずはじめに
完全な思いつきなのです。すごく初歩からやっていって、これからesp人口が増えればいいなと。
とりあえず一番簡単な「数値を送る」だけを目標にやります。
ちなみにかなり丁寧にインストール編をやってしまったのでもうインストールしてある人は、ばばっと飛ばしてください。

#必要な環境
Arduinoのエディターくらいです。

#エディターをインストールしよう
Arduino IDE 1.8.8をインストールしていこうと思います。
esp32ですとバージョンが新しくないと、ボードのインストールが面倒なのでとりあえず最新(2018/12/10現在)でやっていきます。

###レッツトライ!!
まずここ にアクセス。
arduino_firststep_qiita.png
でWindows AIP file のやつをダウンロード→解凍→アプリ起動まで行きましょう。

ちなみになぜわざわざzipのほうでインストールしたのかというと、いくつか整理しないといけないディレクトリがあって(記事書くのもインストールするのも)面倒だからです。

ここまで来たら次のステップです。
ファイルから環境設定を開いてください。
arduino_second_step_qiita.png

そこで追加ボードのマネージャのURLとあります。

arduino_third_step_qiita.png

その部分にESPのサイトからとってきたURLを張ります。
以下手順。
ar.png

ar2.png

ここでコピーしたのを追加のボードマネージャのURLに貼り付けます。

ar3.png

ツール→ボード: からボードマネージャを選択してください。
(筆者のは先にインストールしてあるけど気にしないで(;^ω^))
ar4.png

ボードマネージャを開いたらうえの検索バーにespと打ち込んで出てきたのをインストール。
teisei.png

とりあえずこれでおkなはずです。
いやー長かった…

#UDP通信をやってみよう
僕一人では力不足だったので
ESP8266 > UDPで送信できた / esp8266_151219_udpSender
さんの記事を参考に送信側を書きました。

###UDP送信側(ESP32)
以下コード(責任は負いかねます)

udp_send.ino
#include <WiFi.h>
#include <WiFiUDP.h>

const char ssid[] = "************"; // SSID
const char pass[] = "************";  // password

static WiFiUDP wifiUdp; 
static const char *kRemoteIpadr = "***.***.***.**";
static const int kRmoteUdpPort = 9000; //送信先のポート

static void WiFi_setup()
{
  static const int kLocalPort = 7000;  //自身のポート

  WiFi.begin(ssid, pass);
  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('1');
  wifiUdp.endPacket();  

  delay(3000);
}

ここで使われているportですが任意なので好きな数字にしていいと思います。
ただ、4桁台後半6000~9000くらいにしとくとセンスいいらしいです。

##UDP受け取りPythonコード
こっちは適当に書きましたので許してください。

udp_receive.py
import socket
import struct
import contextlib import closing

UDP_IP=""
UDP_PORT=9000

sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.bind((UDP_IP,UDP_PORT))

with closing(sock):
    while True:
        data,addr = sock.recvfrom(1024)
        print("Send from ESP",data)

こんな感じです。。。

これで通信できました。

#今後の開発目処
今後はセンサーと組み合わせて外の気温とか見てもいいかもなーとか思ってます。
寒い時期は外に出るのが地獄ですからね(笑)。
それ以外にも割といろいろできそうなので、次はesp間通信をやっていきたいなと思います。
それではさようなら。

17
13
5

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
17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?