Control IR Devices via MQTT with a Wemos D1 Mini
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Aeris 16d538369a Initial Commit 2 years ago
.github Initial Commit 2 years ago
examples Initial Commit 2 years ago
src Initial Commit 2 years ago
.gitignore Initial Commit 2 years ago
.gitmodules Initial Commit 2 years ago
.travis.yml Initial Commit 2 years ago
CPPLINT.cfg Initial Commit 2 years ago
LICENSE.txt Initial Commit 2 years ago Initial Commit 2 years ago Initial Commit 2 years ago
keywords.txt Initial Commit 2 years ago
library.json Initial Commit 2 years ago Initial Commit 2 years ago
platformio.ini Initial Commit 2 years ago

IRremote ESP8266 Library

Build Status Average time to resolve an issue Percentage of issues still open GitLicense

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

v2.3.2 Now Available

Version 2.3.2 of the library is now available. You can view the Release Notes for all the significant changes.

Upgrading from pre-v2.0

Usage of the library slight changed at 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 page.


Before reporting an issue or asking for help, please try to follow our Troubleshooting Guide first.

Frequently Asked Questions

Some common answers to common questions and problems are on our F.A.Q. wiki page.

Library History

This library was originally based on Ken Shirriff's work (

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

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


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" 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 library ( Linux )
cd ~/Arduino/libraries
git clone
To Update to the latest version of the library
cd ~/Arduino/libraries/IRremoteESP8266 && git pull

Unit Tests

For Library Developers
The Unit Tests under the test/ directory are for a Unix machine, not the micro-controller (ESP8266). The tests are for execution under Travis and on a developer's machine. All internal library code must use c99 exact-width type definitions. e.g. uint16_t etc. You must disable any Arduino/ESP8266 specific code (e.g. Serial.print() etc.) using something like:

#ifndef UNIT_TEST
<Arduino specific code ...>

Unit Tests & Test Coverage are not perfect as we can not emulate hardware specific features and differences. e.g. Interrupts, GPIOs, CPU instruction timing etc, etc.

The example code has no unit tests.

To run all the tests yourself, try the following:

$ cd test
$ make run


If you want to contribute to this project, consider:


Available here