#まずはじめに
完全な思いつきなのです。すごく初歩からやっていって、これからesp人口が増えればいいなと。
とりあえず一番簡単な「数値を送る」だけを目標にやります。
ちなみにかなり丁寧にインストール編をやってしまったのでもうインストールしてある人は、ばばっと飛ばしてください。
#必要な環境
Arduinoのエディターくらいです。
#エディターをインストールしよう
Arduino IDE 1.8.8をインストールしていこうと思います。
esp32ですとバージョンが新しくないと、ボードのインストールが面倒なのでとりあえず最新(2018/12/10現在)でやっていきます。
###レッツトライ!!
まずここ にアクセス。
でWindows AIP file のやつをダウンロード→解凍→アプリ起動まで行きましょう。
ちなみになぜわざわざzipのほうでインストールしたのかというと、いくつか整理しないといけないディレクトリがあって(記事書くのもインストールするのも)面倒だからです。
ここまで来たら次のステップです。
ファイルから環境設定を開いてください。
そこで追加ボードのマネージャのURLとあります。
その部分にESPのサイトからとってきたURLを張ります。
以下手順。
ここでコピーしたのを追加のボードマネージャのURLに貼り付けます。
ツール→ボード: からボードマネージャを選択してください。
(筆者のは先にインストールしてあるけど気にしないで(;^ω^))
ボードマネージャを開いたらうえの検索バーにespと打ち込んで出てきたのをインストール。
とりあえずこれでおkなはずです。
いやー長かった…
#UDP通信をやってみよう
僕一人では力不足だったので
・ ESP8266 > UDPで送信できた / esp8266_151219_udpSender
さんの記事を参考に送信側を書きました。
###UDP送信側(ESP32)
以下コード(責任は負いかねます)
#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コード
こっちは適当に書きましたので許してください。
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間通信をやっていきたいなと思います。
それではさようなら。