Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FASTLED_ESP8266_RAW_PIN_ORDER
- #include "FastLED.h"
- #include <ESP8266WiFi.h>
- #include <WiFiUdp.h>
- #define ARTNET_ARTDMX 0x5000 //20480 as a decimal ArtNet OP Code
- #define DATA_PIN 0
- #define CLOCK_PIN 2
- #define CHIPSET WS2801
- #define COLOR_ORDER RGB
- #define NUM_LEDS 96
- #define BRIGHTNESS 255
- CRGB leds[NUM_LEDS];
- //WiFi Setup
- char ssid[] = "VOO-738695";
- char pass[] = "PASSWORD";
- IPAddress local_ip(192, 168, 0, 20);
- IPAddress gateway(192, 168, 0, 1);
- IPAddress subnet(255, 255, 255, 0);
- #define ART_NET_PORT 6454
- WiFiUDP Audp; //UDP socket for ArtNet
- #define BUFFER_SIZE 640
- unsigned char PacketBuffer[BUFFER_SIZE]; //buffer to hold incoming packet data
- void setup() {
- WiFi.begin(ssid, pass); //Connect to Network
- WiFi.config(local_ip, gateway, subnet); //Set static IP information
- while (WiFi.status() != WL_CONNECTED) //wait until we are connected
- {
- delay(500);
- }
- Audp.begin(ART_NET_PORT); //Open ArtNet port
- FastLED.addLeds<CHIPSET, DATA_PIN, CLOCK_PIN, COLOR_ORDER>(leds, NUM_LEDS);
- FastLED.setBrightness( BRIGHTNESS );
- }
- // the loop function runs over and over again forever
- void loop() {
- int packetSize = Audp.parsePacket(); //Parse Packet
- if ( packetSize ) //ArtNet packet size is 530
- {
- Audp.read(PacketBuffer, BUFFER_SIZE); //Read packet into buffer
- int opcode = artNetOpCode(PacketBuffer); //Check to see if packet is ArtNet
- if ( opcode == ARTNET_ARTDMX ) //If code returned is correct
- {
- for(int i=0; i<NUM_LEDS; i++) {
- int d = i*3+18;
- leds[i].r = PacketBuffer[d];
- leds[i].g = PacketBuffer[d+1];
- leds[i].b = PacketBuffer[d+2];
- }
- FastLED.show();
- }
- }
- }
- int artNetOpCode(unsigned char* pbuff) {
- String test = String((char*)pbuff);
- if ( test.equals("Art-Net") )
- {
- if ( pbuff[11] >= 14 )
- { //protocol version [10] hi byte [11] lo byte
- return pbuff[9] *256 + pbuff[8]; //opcode lo byte first
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement