GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
がじぇるね岡宮です。
GR-LYCHEEの一方をサーバー(AP)、もう一方をクライアント(STA)にするサンプルです。#define I_AM_SERVERを有効にするとサーバー、コメントアウトするとクライアントです。固定IPでの通信です。
単にクライアントが送信し続けるだけのサンプルです。私はネットワークに詳しくないので、Mbedのサンプルを色々見たのですが、なかなか機器間での通信が見当たりませんでした。ソケット関連の正しい扱い方を知らないため、色々突っ込みどころあると思いますが、コメントあれば宜しくお願い致します。
#include <Arduino.h>#include "TCPSocket.h"#define I_AM_SERVER#include <ESP32InterfaceAP.h>#ifdef I_AM_SERVER#define IP_ADDRESS ("192.168.0.2") /* IP address */#define SUBNET_MASK ("255.255.255.0") /* Subnet mask */#define DEFAULT_GATEWAY ("192.168.0.3") /* Default gateway */#define WLAN_SSID ("GR-LYCHEE") /* SSID */#define WLAN_PSK ("oooooooo") /* PSK(Pre-Shared Key) */#define WLAN_SECURITY NSAPI_SECURITY_WPA_WPA2//ESP32InterfaceAP wifi;ESP32InterfaceAP wifi(P5_3, P3_14, P7_1, P0_1);TCPSocket client;TCPServer server;void setup(){ Serial.begin(9600); Serial.println("AP starts"); wifi.set_dhcp(false); wifi.set_network(IP_ADDRESS, SUBNET_MASK, DEFAULT_GATEWAY); wifi.set_credentials(WLAN_SSID, WLAN_PSK, WLAN_SECURITY); wifi.connect(); const char *ip = wifi.get_ip_address(); Serial.println(ip); server.open(&wifi); server.bind(80); server.listen(); Serial.println("Wait for new connection..."); while(server.accept(&client) != 0);}void loop(){ char p; int ret; ret = client.recv(&p, 1); if(ret > 0){ Serial.print(p); }}#else#include <ESP32Interface.h>#define IP_ADDRESS ("192.168.0.4") /* IP address */#define SUBNET_MASK ("255.255.255.0") /* Subnet mask */#define DEFAULT_GATEWAY ("192.168.0.5") /* Default gateway */#define WLAN_SSID ("GR-LYCHEE") /* SSID */#define WLAN_PSK ("oooooooo") /* PSK(Pre-Shared Key) */#define WLAN_SECURITY NSAPI_SECURITY_WPA_WPA2#define IP_SERVER ("192.168.0.2")ESP32Interface wifi;//ESP32Interface wifi(P5_3, P3_14, P7_1, P0_1);TCPSocket client;void setup(){ Serial.begin(9600); Serial.println("STA starts"); wifi.set_dhcp(false); wifi.set_network(IP_ADDRESS, SUBNET_MASK, DEFAULT_GATEWAY); wifi.set_credentials(WLAN_SSID, WLAN_PSK, WLAN_SECURITY); wifi.connect(); const char *ip = wifi.get_ip_address(); Serial.println(ip); client.open(&wifi); if(client.connect(IP_SERVER, 80) != 0){ Serial.println("Error connection"); } else { Serial.println("Connected"); }}void loop(){ char sbuffer[] = "KITAKITA\r\n"; nsapi_size_t size = strlen(sbuffer); nsapi_size_or_error_t r = 0; while(size) { r = client.send(sbuffer+r, size); size -= r; } Thread::wait(1000);}#endif