Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
/* * IRremoteESP8266: IRrecvDumpV2 - dump details of IR codes with IRrecv * An IR detector/demodulator must be connected to the input kRecvPin. * * Copyright 2009 Ken Shirriff, http://arcfn.com * Copyright 2017-2019 David Conran * * Example circuit diagram: * https://github.com/crankyoldgit/IRremoteESP8266/wiki#ir-receiving * * Based on Ken Shirriff's IrsendDemo Version 0.1 July, 2009, * https://github.com/crankyoldgit/IRremoteESP8266 * Combined with https://github.com/tzapu/WiFiManager for easier use * By Kris Occhipinti 2022 https://pastebin.com/edit/cjiRBCbe */ #include
#include
#include
#include
#include
#include
#include
#include
// https://github.com/tzapu/WiFiManager #include
ESP8266WebServer server(80); String data = "Please Press a Button on Your Remote\n"; void handleRoot() { server.send(200, "text/html", String(data)); } void handleNotFound(){ String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += (server.method() == HTTP_GET)?"GET":"POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for (uint8_t i=0; i
= 50(%) will cause some protocols // to no longer match correctly. In normal situations you probably do not // need to adjust this value. Typically that's when the library detects // your remote's message some of the time, but not all of the time. const uint8_t kTolerancePercentage = kTolerance; // kTolerance is normally 25% // Legacy (No longer supported!) // // Change to `true` if you miss/need the old "Raw Timing[]" display. #define LEGACY_TIMING_INFO false // ==================== end of TUNEABLE PARAMETERS ==================== // Use turn on the save buffer feature for more complete capture coverage. IRrecv irrecv(kRecvPin, kCaptureBufferSize, kTimeout, true); decode_results results; // Somewhere to store the results // This section of code runs only once at start-up. void setup() { #if defined(ESP8266) Serial.begin(kBaudRate, SERIAL_8N1, SERIAL_TX_ONLY); #else // ESP8266 Serial.begin(kBaudRate, SERIAL_8N1); #endif // ESP8266 while (!Serial) // Wait for the serial connection to be establised. delay(50); // Perform a low level sanity checks that the compiler performs bit field // packing as we expect and Endianness is as we expect. assert(irutils::lowLevelSanityCheck() == 0); Serial.printf("\n" D_STR_IRRECVDUMP_STARTUP "\n", kRecvPin); #if DECODE_HASH // Ignore messages with less than minimum on or off pulses. irrecv.setUnknownThreshold(kMinUnknownSize); #endif // DECODE_HASH irrecv.setTolerance(kTolerancePercentage); // Override the default tolerance. irrecv.enableIRIn(); // Start the receiver ///WiFi Manager Setup/// WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP // it is a good practice to make sure your code sets wifi mode how you want it. // put your setup code here, to run once: //WiFiManager, Local intialization. Once its business is done, there is no need to keep it around WiFiManager wm; // reset settings - wipe stored credentials for testing // these are stored by the esp library //wm.resetSettings(); // Automatically connect using saved credentials, // if connection fails, it starts an access point with the specified name ( "AutoConnectAP"), // if empty will auto generate SSID, if password is blank it will be anonymous AP (wm.autoConnect()) // then goes into a blocking loop awaiting configuration and will return success result bool res; // res = wm.autoConnect(); // auto generated AP name from chipid res = wm.autoConnect("IR_ESP"); // anonymous ap //res = wm.autoConnect("AutoConnectAP","password"); // password protected ap if(!res) { Serial.println("Failed to connect"); // ESP.restart(); } else { //if you get here you have connected to the WiFi Serial.println("connected...yeey :)"); } ///webserver setup/// server.on("/", handleRoot); server.on("/inline", [](){ server.send(200, "text/plain", "this works as well"); }); server.onNotFound(handleNotFound); server.begin(); } // The repeating section of the code void loop() { // Check if the IR code has been received. if (irrecv.decode(&results)) { // Display a crude timestamp. uint32_t now = millis(); Serial.printf(D_STR_TIMESTAMP " : %06u.%03u\n", now / 1000, now % 1000); // Check if we got an IR message that was to big for our capture buffer. if (results.overflow) Serial.printf(D_WARN_BUFFERFULL "\n", kCaptureBufferSize); // Display the library version the message was captured with. Serial.println(D_STR_LIBRARY " : v" _IRREMOTEESP8266_VERSION_STR "\n"); // Display the tolerance percentage if it has been change from the default. if (kTolerancePercentage != kTolerance) Serial.printf(D_STR_TOLERANCE " : %d%%\n", kTolerancePercentage); // Display the basic output of what we found. Serial.print(resultToHumanReadableBasic(&results)); // Display any extra A/C info if we have it. String description = IRAcUtils::resultAcToString(&results); if (description.length()) Serial.println(D_STR_MESGDESC ": " + description); yield(); // Feed the WDT as the text output can take a while to print. #if LEGACY_TIMING_INFO // Output legacy RAW timing info of the result. Serial.println(resultToTimingInfo(&results)); yield(); // Feed the WDT (again) #endif // LEGACY_TIMING_INFO // Output the results as source code Serial.println(resultToSourceCode(&results)); data+="
"; data+=resultToSourceCode(&results); data+="
\n"; data+=""; Serial.println(); // Blank line between entries yield(); // Feed the WDT (again) } server.handleClient(); }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)