All Projects → forkineye → Espixelstick

forkineye / Espixelstick

Firmware for the ESPixelStick

Projects that are alternatives of or similar to Espixelstick

Hugo Esp8266
Hugo is a 4-button ESP8266 Wi-Fi Remote, Arduino compatible and simple to use.
Stars: ✭ 77 (-76.81%)
Mutual labels:  arduino, mqtt, esp8266
Amstomqttbridge
Minimalistic system to read AMS/HAN data from electrical meter
Stars: ✭ 165 (-50.3%)
Mutual labels:  arduino, mqtt, esp8266
Homie Esp8266
💡 ESP8266 framework for Homie, a lightweight MQTT convention for the IoT
Stars: ✭ 1,241 (+273.8%)
Mutual labels:  arduino, mqtt, esp8266
Hass Yaap
Yet another alarm (control) panel for Home Assistant.
Stars: ✭ 44 (-86.75%)
Mutual labels:  arduino, mqtt, esp8266
Pjon
PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.
Stars: ✭ 2,615 (+687.65%)
Mutual labels:  arduino, mqtt, esp8266
Blinker Library
An IoT Solution,Blinker library for embedded hardware. Works with Arduino, ESP8266, ESP32.
Stars: ✭ 1,095 (+229.82%)
Mutual labels:  arduino, mqtt, esp8266
Blinker Doc
blinker中文文档
Stars: ✭ 139 (-58.13%)
Mutual labels:  arduino, mqtt, esp8266
Open Home Automation
Open Home Automation with Home Assistant, ESP8266/ESP32 and MQTT
Stars: ✭ 820 (+146.99%)
Mutual labels:  arduino, mqtt, esp8266
Blynk Server
Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes
Stars: ✭ 8 (-97.59%)
Mutual labels:  arduino, mqtt, esp8266
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+626.81%)
Mutual labels:  arduino, mqtt, esp8266
Smarthome
💡 智能电器管理综合系统
Stars: ✭ 33 (-90.06%)
Mutual labels:  arduino, mqtt, esp8266
Esphelper
A library to make using WiFi & MQTT on the ESP8266 easy.
Stars: ✭ 310 (-6.63%)
Mutual labels:  arduino, mqtt, esp8266
Mqtt via esp01
TCP/UDP Applicaton for UNO/MEGA/STM32 using ESP8266's AT firmware.
Stars: ✭ 23 (-93.07%)
Mutual labels:  arduino, mqtt, esp8266
Tinygsm
A small Arduino library for GSM modules, that just works
Stars: ✭ 1,186 (+257.23%)
Mutual labels:  arduino, mqtt, esp8266
Esp8266 Anemometer
ESP8266 based wind anemometer project
Stars: ✭ 22 (-93.37%)
Mutual labels:  arduino, mqtt, esp8266
Home Assistant Config
My Home Assistant Configuration 🏡🏡
Stars: ✭ 133 (-59.94%)
Mutual labels:  arduino, mqtt, esp8266
Async Mqtt Client
📶 An Arduino for ESP8266 asynchronous MQTT client implementation
Stars: ✭ 555 (+67.17%)
Mutual labels:  arduino, mqtt, esp8266
Haswitchplate
LCD touchscreen for Home Automation
Stars: ✭ 666 (+100.6%)
Mutual labels:  arduino, mqtt, esp8266
Espmqttclient
Wifi and MQTT handling for ESP8266 and ESP32
Stars: ✭ 169 (-49.1%)
Mutual labels:  arduino, mqtt, esp8266
Tasmota
Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
Stars: ✭ 16,624 (+4907.23%)
Mutual labels:  arduino, mqtt, esp8266

ESPixelStick Firmware

Join the chat at https://gitter.im/forkineye/ESPixelStick Donate Build Status

This is the Arduino firmware for the ESP8266 based ESPixelStick. The ESPixelStick is a small wireless E1.31 sACN pixel controller designed to control a single strand of pixels. Pixel limitations are mostly based upon your desired refresh rate, around 680 pixels (4 universes) for a 25ms E1.31 source rate. MQTT support is provided as well for integration into home automation systems where an E1.31 source may not be present.

Since this project began, the firmware has moved beyond just pixel support for those with other ESP8266 based devices. The ESPixelStick firmware now supports outputting E1.31 streams to serial links as well. Note this is not supported on the ESPixelStick hardware, but intended for other ESP8266 devices such as Bill's RenardESP.

Hardware

Being open source, you are free to use the ESPixelStick firmware on the device of your choice. The code however is written specifically for the ESPixelStick. The ESPixelStick V2 utilizes an ESP-01 module and provides high current connectors, fusing, power filtering, a programming interface and proper logic level buffering. If you're in the US and would like to purchase an ESPixelStick, they are available via Amazon. The proceeds go towards things like keeping my wife happy so I can work on this project :)

Requirements

Along with the Arduino IDE, you'll need the following software to build this project:

The following libraries are required:

Extract the folder in each of these zip files and place it in the "library" folder under your arduino environment

Important Notes on Compiling and Flashing

  • In order to upload your code to the ESP8266 you must put it in flash mode and then take it out of flash mode to run the code. To place your ESP8266 in flash mode your GPIO-0 pin must be connected to ground.
  • Device mode is now a compile time option to set your device type and is configured in the top of the main sketch file. Current options are ESPS_MODE_PIXEL and ESPS_MODE_SERIAL. The default is ESPS_MODE_PIXEL for the ESPixelStick hardware.
  • Web pages must be processed, placed into data/www, and uploaded with the upload plugin. Gulp will process the pages and put them in data/www for you. Refer to the html README for more information.
  • In order to use the upload plugin, the ESP8266 must be placed into programming mode and the Arduino serial monitor must be closed.
  • ESP-01 modules must be configured for 1M flash and 128k SPIFFS within the Arduino IDE for OTA updates to work.
  • For best performance, set the CPU frequency to 160MHz (Tools->CPU Frequency). You may experience lag and other issues if running at 80MHz.
  • The upload must be redone each time after you rebuild and upload the software

Supported Outputs

The ESPixelStick firmware can generate the following outputs from incoming E1.31 streams, however your hardware must support the physical interface.

Pixel Protocols

  • WS2811 / WS2812 / WS2812b
  • GE Color Effects

Serial Protocols

  • DMX512
  • Renard

MQTT Support

MQTT can be configured via the web interface. When enabled, a payload of "ON" will tell the ESPixelStick to override any incoming E1.31 data with MQTT data. When a payload of "OFF" is received, E1.31 processing will resume. The configured topic is used for state, and the command topic will be the state topic appended with /set.

For example, if you enter porch/esps as the topic, the state can be queried from porch/esps and commands can be sent to porch/esps/set

If using Home Assistant, it is recommended to enable Home Assistant Discovery in the MQTT configuration. Your ESPixelStick along with all effects will be automatically imported as an entity within Home Assistant utilzing "Device ID" as the friendly name. For manual configuration, you can use the following as an example. When disabling Home Assistant Discovery, ESPixelStick will attempt to remove its configuration entry from your MQTTT broker.

light:
  - platform: mqtt
    schema: json
    name: "Front Porch ESPixelStick"
    state_topic: "porch/esps"
    command_topic: "porch/esps/set"
    brightness: true
    rgb: true
    effect: true
    effect_list:
      - Solid
      - Blink
      - Flash
      - Rainbow
      - Chase
      - Fire flicker
      - Lightning
      - Breathe

Here's an example using the mosquitto_pub command line tool:

mosquitto_pub -t porch/esps/set -m '{"state":"ON","color":{"r":255,"g":128,"b":64},"brightness":255,"effect":"solid","reverse":false,"mirror":false}'

Resources

Credits

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].