IRremoteESP8266 Library

Build Status
Code Lint
Tests
Documentation
arduino-library-badge
GitLicense

This library enables you to send and receive infra-red signals on an ESP8266(link is external) or an
ESP32(link is external) using the Arduino framework(link is external) using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc.

v2.8.4 Now Available

Version 2.8.4 of the library is now available(link is external). You can view the Release Notes for all the significant changes.

Upgrading from pre-v2.0

Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our Upgrade to v2.0(link is external) page.

Upgrading from pre-v2.5

The library has changed from using constants declared as #define to
const(link is external) with
the appropriate naming per the
C++ style guide(link is external).
This may potentially cause old programs to not compile.
The most likely externally used #defines have been aliased for limited
backward compatibility for projects using the old style. Going forward, only the
new kConstantName style will be supported for new protocol additions.

In the unlikely case, it does break your code, then you may have been referencing
something you likely should not have. You should be able to quickly determine
the new name from the old. e.g. CONSTANT_NAME to kConstantName.
Use common sense or examining the library's code if this does affect code.

Supported Protocols

You can find the details of which protocols & devices are supported
here(link is external).

Troubleshooting

Before reporting an issue or asking for help, please try to follow our Troubleshooting Guide(link is external) first.

Frequently Asked Questions

Some common answers to common questions and problems are on our F.A.Q. wiki page(link is external).

Library API Documentation

This library uses Doxygen(link is external) to automatically document(link is external) the library's(link is external) API(link is external).
You can find it here(link is external).

Installation

Official releases via the Arduino IDE v1.8+ (Windows & Linux)
  1. Click the "Sketch" -> "Include Library" -> "Manage Libraries..." Menu items.
  2. Enter IRremoteESP8266 into the "Filter your search..." top right search box.
  3. Click on the IRremoteESP8266 result of the search.
  4. Select the version you wish to install and click "Install".
Manual Installation for Windows
  1. Click on "Clone or Download" button, then "Download ZIP(link is external)" on the page.
  2. Extract the contents of the downloaded zip file.
  3. Rename the extracted folder to "IRremoteESP8266".
  4. Move this folder to your libraries directory. (under windows: C:\Users\YOURNAME\Documents\Arduino\libraries\)
  5. Restart your Arduino IDE.
  6. Check out the examples.
Using Git to install the library ( Linux )

cd ~/Arduino/libraries
git clone https://github.com/crankyoldgit/IRremoteESP8266.git
To update to the latest version of the library
cd ~/Arduino/libraries/IRremoteESP8266 && git pull

Contributing

If you want to contribute to this project, consider:

Contributors

Available here

Library History

This library was originally based on Ken Shirriff's work (https://github.com/shirriff/Arduino-IRremote/(link is external))

Mark Szabo(link is external) has updated the IRsend class to work on ESP8266 and Sebastien Warin(link is external) the receiving & decoding part (IRrecv class).

As of v2.0, the library was almost entirely re-written with the ESP8266's resources in mind.

Rating

About

Less reviews

Thank you! Review submitted.

Ok