Skip to content

Instantly share code, notes, and snippets.

@unicore32
Created February 1, 2016 13:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save unicore32/337e3e7efcce5633b628 to your computer and use it in GitHub Desktop.
Save unicore32/337e3e7efcce5633b628 to your computer and use it in GitHub Desktop.
高専ロボコン2015 (福島 「ぐる輪」) コントローラー用プログラム(ロボット側)
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <WiFiUDP.h>
// Variable setting
int DATA;
char rcvBUFF_Serial[40];
char WiFibuff[10];
// UDP setting
WiFiUDP UDP;
// WiFi setting
IPAddress myIP(192, 168, 4, 1);
IPAddress EsakaIP (192, 168, 4, 5);
IPAddress HOSTIP (192, 168, 4, 3);
const char *ssid = "GURURIN_NITFC_B";
const char *password = "1145141919";
void rcvWiFi() {
UDP.read(WiFibuff, 40);
Serial.print(WiFibuff);
Serial.write(0x0A);
UDP.flush();
}
void sendWiFi(char byteData[], int host = 0) {
switch (host) {
case 1:
if (UDP.beginPacket(EsakaIP, 893)) {
UDP.write(byteData);
UDP.endPacket();
}
default:
if (UDP.beginPacket(HOSTIP, 893)) {
UDP.write(byteData);
UDP.endPacket();
}
}
}
inline void rcvSerial() {
char rcvDATA;
static int rcvCOUNT = 0;
rcvDATA = Serial.read();
rcvBUFF_Serial[rcvCOUNT] = rcvDATA;
rcvCOUNT++;
if (rcvDATA == 0x0A) {
sendWiFi(rcvBUFF_Serial);
rcvCOUNT = 0;
memset(rcvBUFF_Serial, '\0', 40);
}
else if (rcvCOUNT >= 40) {
rcvCOUNT = 0;
memset(rcvBUFF_Serial, '\0', 40);
}
}
void setup() {
pinMode(4, OUTPUT);
delay(1000); // waitTime
WiFi.softAP(ssid, password); // setting SSID and Password
WiFi.config(myIP, WiFi.gatewayIP(), WiFi.subnetMask()); // setting IP Address
UDP.begin(893); // setting UDP port
Serial.begin(115200, SERIAL_8E1);
digitalWrite(4, HIGH);
}
void loop() {
if (Serial.available() > 0) {
rcvSerial();
}
if (UDP.parsePacket() > 0) {
rcvWiFi();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment