This repository has been archived on 2019-06-21. You can view files and clone it, but cannot push or open issues or pull requests.
PixelHub/PixelHub-Client/PixelHub-Client.ino

95 lines
2.2 KiB
C++
Executable file

/*
* Connecting to a WiFi network with WPA
************************************************
* Originally adapted from https://www.arduino.cc/en/Tutorial/ConnectWithWPA
* by Starbeamrainbowlabs
*/
#include <ESP8266WiFi.h>
char ssid[] = "ssid";
char password[] = "password";
// The address that the PixelHub beacon is broadcasting on.
IPAddress beaconAddress(239, 62, 148, 30);
// The port number that the PixelHub beacon is broadcasting on.
unsigned int beaconPort = 5050;
// A UDP Client to allow us to recieve UDP datagrams.
WiFiUdp UdpClient;
// A buffer to store recieved datagrams in.
int datagramBufferSize = 256;
byte datagramBuffer[datagramBufferSize];
void setup()
{
// Setup the serial connection
Serial.begin(4800);
Serial.println("Hello, world!");
Serial.println("Beginning connection sequence.");
Serial.print("Attempting to connect to ");
Serial.print(ssid);
Serial.print(" - ");
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED)
{
// Wait 10 seconds for the connection to start
delay(10000);
}
Serial.println("success!");
printWiFiInfoLocal();
}
void loop()
{
}
void printWiFiInfoLocal()
{
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
}
void findServer()
{
Serial.print("Initialising PixelHub auto detection system - ");
Udp.beginMulticast(WiFi.localIP(), beaconAddress, beaconPort);
Serial.println("success!");
Serial.println("Listening for PixelHub beacon pings.");
while(true) {
int datagramSize = UdpClient.parsePacket();
if(!datagramSize) continue;
Serial.print("Received datagram #");
Serial.print(datagramSize);
Serial.print(" bytes in size from ");
Serial.print(Udp.remoteIP());
Serial.print(":");
Serial.print(Udp.remotePort());
if(datagramSize > datagramBufferSize) {
Serial.println(", but the message is larger than the datagram buffer size.");
continue;
}
Serial.println(".");
Udp.read(datagramBuffer, datagramSize);
Serial.print("Content: ");
for(int i = 0; i < datagramSize; i++) {
Serial.print(datagramBuffer[i], HEX);
Serial.print(" ");
}
Serial.print("\n");
}
}