├── esp32-projects ├── esp32-infrared-sensor │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── .gitignore │ ├── README.MD │ ├── test │ │ └── README │ ├── src │ │ ├── loop_ir.cpp.txt │ │ ├── main.cpp │ │ └── ir_sensor_counter.cpp.txt │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-pcf8575-port-expander │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── .gitignore │ ├── README.MD │ ├── src │ │ ├── blink_led.cpp.txt │ │ ├── main.cpp │ │ ├── button_keypress.cpp.txt │ │ └── 16_channel_relay.cpp.txt │ ├── platformio.ini │ ├── test │ │ └── README │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-r307-fingerprint-door-lock │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── .gitignore │ ├── README.MD │ ├── test │ │ └── README │ ├── platformio.ini │ ├── data │ │ ├── index.html │ │ ├── js │ │ │ └── index.js │ │ └── css │ │ │ └── index.css │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-send-ldr-data-websockets │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── .gitignore │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-dht22 │ ├── .gitignore │ ├── README.MD │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ ├── include │ │ └── README │ └── src │ │ └── main.cpp ├── esp32-data-logger │ ├── .gitignore │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── README.MD │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-mqtt-dht22 │ ├── .gitignore │ ├── README.MD │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-rfid-MFRC522 │ ├── .gitignore │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ ├── include │ │ └── README │ └── src │ │ └── main.cpp ├── esp32-coin-acceptor │ ├── .gitignore │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── README.md │ ├── test │ │ └── README │ ├── src │ │ ├── OLED_Displayer.h │ │ ├── OLED_Displayer.cpp │ │ └── main.cpp │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-home-automation │ ├── .gitignore │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── include │ │ ├── automation.h │ │ └── README │ ├── lib │ │ └── README │ ├── data │ │ ├── js │ │ │ └── custom.js │ │ └── css │ │ │ └── entireframework.min.css │ └── src │ │ └── automation.cpp ├── esp32-keypad-db-iot │ ├── .gitignore │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-r307-fingerprint │ ├── .gitignore │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── README.MD │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-softwareserial │ ├── .gitignore │ ├── .vscode │ │ └── extensions.json │ ├── src │ │ ├── defaultHardwareSerial.cpp.txt │ │ ├── configureHardwareSerial.cpp.txt │ │ ├── mixSoftwareAndHardwareSerial.cpp.txt │ │ └── main.cpp │ ├── platformio.ini │ ├── test │ │ └── README │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-mqtt-node-red-control │ ├── .gitignore │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-mqtt-publish-subscribe │ ├── .gitignore │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-robot-car-websockets │ ├── .gitignore │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ ├── include │ │ └── README │ └── data │ │ ├── js │ │ └── custom.js │ │ └── css │ │ └── entireframework.min.css ├── esp32-send-sensor-websocket │ ├── .gitignore │ ├── README.MD │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ ├── include │ │ └── README │ └── src │ │ └── main.cpp ├── esp32-mongodb-database-control │ ├── .gitignore │ ├── .vscode │ │ ├── extensions.json │ │ └── settings.json │ ├── README.MD │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp32-read-ldr-photoresisitor │ ├── .gitignore │ ├── .vscode │ │ └── extensions.json │ ├── src │ │ └── main.cpp │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README └── esp32-rfid-MFRC522-web-server │ ├── .gitignore │ ├── .vscode │ └── extensions.json │ ├── test │ └── README │ ├── platformio.ini │ ├── data │ ├── css │ │ ├── custom.css │ │ └── entireframework.min.css │ ├── index.html │ └── js │ │ └── custom.js │ ├── lib │ └── README │ └── include │ └── README ├── arduino-uno-projects └── ArduinoSerialControl │ ├── .vscode │ ├── settings.json │ └── extensions.json │ ├── .gitignore │ ├── ReadMe.md │ ├── platformio.ini │ ├── test │ └── README │ ├── lib │ └── README │ └── include │ └── README ├── esp8266-projects ├── adafruit_mqtt_library │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── .gitignore │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp8266-webserver-littlefs │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── .gitignore │ ├── data │ │ ├── index.js │ │ ├── index.html │ │ ├── index.css │ │ └── entireframework.min.css │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp8266-webserver-no-filesystem │ ├── .vscode │ │ ├── settings.json │ │ └── extensions.json │ ├── .gitignore │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README ├── ldr-photoresistor-esp8266 │ ├── .gitignore │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── src │ │ └── main.cpp │ ├── lib │ │ └── README │ └── include │ │ └── README ├── esp8266-seven-segment-display │ ├── .gitignore │ ├── .vscode │ │ └── extensions.json │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ ├── include │ │ └── README │ └── src │ │ └── main.cpp ├── esp8266-conveyor-counter-using-webserver │ ├── .gitignore │ ├── .vscode │ │ ├── extensions.json │ │ └── settings.json │ ├── data │ │ ├── index.css │ │ ├── index.html │ │ └── entireframework.min.css │ ├── test │ │ └── README │ ├── platformio.ini │ ├── lib │ │ └── README │ └── include │ │ └── README └── plot-real-time-chart-display-of-sensor-readings-esp8266-esp32 │ ├── .gitignore │ ├── data │ ├── index.css │ └── index.html │ ├── .vscode │ └── extensions.json │ ├── test │ └── README │ ├── platformio.ini │ ├── lib │ └── README │ └── include │ └── README ├── README.md └── .github └── FUNDING.yml /esp32-projects/esp32-infrared-sensor/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake.configureOnOpen": false 3 | } -------------------------------------------------------------------------------- /arduino-uno-projects/ArduinoSerialControl/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake.configureOnOpen": false 3 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake.configureOnOpen": false 3 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake.configureOnOpen": false 3 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-send-ldr-data-websockets/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "C_Cpp.errorSquiggles": "Disabled" 3 | } -------------------------------------------------------------------------------- /esp8266-projects/adafruit_mqtt_library/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "system_error": "cpp" 4 | } 5 | } -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "system_error": "cpp" 4 | } 5 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-dht22/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-no-filesystem/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "system_error": "cpp" 4 | } 5 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-data-logger/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-dht22/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-data-logger/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "*.html": "html", 4 | "cmath": "cpp" 5 | } 6 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-keypad-db-iot/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp8266-projects/adafruit_mqtt_library/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /arduino-uno-projects/ArduinoSerialControl/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-node-red-control/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-publish-subscribe/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-robot-car-websockets/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-sensor-websocket/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp8266-projects/ldr-photoresistor-esp8266/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mongodb-database-control/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-read-ldr-photoresisitor/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-ldr-data-websockets/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-seven-segment-display/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-no-filesystem/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-publish-subscribe/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "type_traits": "cpp", 4 | "system_error": "cpp" 5 | } 6 | } -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "functional": "cpp", 4 | "*.tcc": "cpp", 5 | "fstream": "cpp" 6 | } 7 | } -------------------------------------------------------------------------------- /esp8266-projects/plot-real-time-chart-display-of-sensor-readings-esp8266-esp32/.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake.configureOnOpen": false, 3 | "files.associations": { 4 | "*.tcc": "cpp", 5 | "array": "cpp", 6 | "string": "cpp" 7 | } 8 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /esp32-projects/esp32-robot-car-websockets/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /esp32-projects/esp32-data-logger/README.MD: -------------------------------------------------------------------------------- 1 | # Writeup 2 | https://www.donskytech.com/arduino-data-logger-using-mongodb-database/ 3 | ![Featured Image - Arduino Data Logger using MongoDB Database](https://github.com/donskytech/platformio-projects/assets/69466026/b0b94fa2-a9ac-49cd-8c45-b51fe5aa3b87) 4 | 5 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/README.MD: -------------------------------------------------------------------------------- 1 | # WriteUp 2 | https://www.donskytech.com/esp32-pcf8575-port-expander/ 3 | 4 | 5 | ![Featured Image - Interface ESP32 with the PCF8575 IO Port Expander](https://github.com/donskytech/platformio-projects/assets/69466026/8d4a1f32-7e0a-4859-9582-121c1424ce87) 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-dht22/README.MD: -------------------------------------------------------------------------------- 1 | # Writeup 2 | [ESP32 – Read DHT22 Sensor using Arduino](https://www.donskytech.com/esp32-read-dht22-sensor-using-arduino/) 3 | 4 | ![Featured Image - ESP32 - DHT22 - Arduino](https://user-images.githubusercontent.com/69466026/222163578-ebe63500-ec4c-400a-b4dd-a0685c42d49e.jpg) 5 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint/README.MD: -------------------------------------------------------------------------------- 1 | # Write Up 2 | https://www.donskytech.com/interfacing-esp32-with-r307-fingerprint-sensor/ 3 | 4 | 5 | ![Featured Image - Interfacing ESP32 with R307 Fingerprint Sensor](https://user-images.githubusercontent.com/69466026/224222707-a28e7ef2-ea13-4bd7-a198-a69d464f09aa.jpg) 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/README.MD: -------------------------------------------------------------------------------- 1 | # Write Up 2 | https://www.donskytech.com/arduino-fingerprint-door-lock-using-esp32-with-a-web-app/ 3 | 4 | 5 | ![Featured Image - Arduino Fingerprint Door Lock](https://user-images.githubusercontent.com/69466026/224602965-8bc92dad-7c78-410f-af90-17db0ea84adf.jpg) 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-sensor-websocket/README.MD: -------------------------------------------------------------------------------- 1 | # Write Up 2 | https://www.donskytech.com/node-red-display-arduino-sensor-readings-thru-websocket/ 3 | 4 | ![Featured Image - Node-Red - Display Arduino Sensor Readings thru WebSocket](https://user-images.githubusercontent.com/69466026/221332655-ff91b37f-3cbc-4df7-93da-335c0e905d84.jpg) 5 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "*.html": "html", 4 | "system_error": "cpp", 5 | "algorithm": "cpp", 6 | "array": "cpp", 7 | "functional": "cpp", 8 | "tuple": "cpp", 9 | "type_traits": "cpp", 10 | "utility": "cpp" 11 | } 12 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/README.md: -------------------------------------------------------------------------------- 1 | # Writeup 2 | https://www.donskytech.com/esp32-arduino-coin-acceptor/ 3 | 4 | # Video Demo of the project 5 | https://www.youtube.com/watch?v=5If4B0CYjR4 6 | 7 | ![Featured Image - Arduino Projects Coin Acceptor](https://github.com/donskytech/platformio-projects/assets/69466026/0099f222-43b5-4e72-a9c0-814a71f2e14d) 8 | 9 | -------------------------------------------------------------------------------- /esp32-projects/esp32-dht22/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-dht22/README.MD: -------------------------------------------------------------------------------- 1 | # Write Up 2 | [Node-Red – IoT Dashboard with Arduino – No Coding Required!](https://www.donskytech.com/node-red-iot-dashboard-with-arduino-no-coding-required/) 3 | 4 | ![Featured Image - Node-Red - IoT Arduino Dashboard](https://user-images.githubusercontent.com/69466026/222470468-9e5c0e40-3ce9-4c1f-afb6-77535da4067a.jpg) 5 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-data-logger/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/README.MD: -------------------------------------------------------------------------------- 1 | # Interface ESP32 with Infrared(IR) Sensor Module 2 | 3 | ## Writeup 4 | https://www.donskytech.com/interface-esp32-with-infrared-sensor/ 5 | 6 | ![Featured Image - Interface ESP32 with Infrared(IR) Sensor Module](https://user-images.githubusercontent.com/69466026/235443312-ea2a1050-cf11-4f10-9feb-2c3fb591a689.jpg) 7 | -------------------------------------------------------------------------------- /esp32-projects/esp32-keypad-db-iot/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-dht22/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp8266-projects/adafruit_mqtt_library/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /arduino-uno-projects/ArduinoSerialControl/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-node-red-control/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-publish-subscribe/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-read-ldr-photoresisitor/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-sensor-websocket/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp8266-projects/ldr-photoresistor-esp8266/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /arduino-uno-projects/ArduinoSerialControl/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Controlling your Arduino Projects through Serial Communication 2 | ![Featured Image - Arduino Serial Communication](https://github.com/donskytech/python-pyserial-control/assets/69466026/72246e79-41a0-458a-b949-cd9efdb622e0) 3 | 4 | ## Writeup 5 | https://www.donskytech.com/controlling-your-arduino-projects-through-serial-communication/ 6 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mongodb-database-control/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-ldr-data-websockets/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-seven-segment-display/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-no-filesystem/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp8266-projects/plot-real-time-chart-display-of-sensor-readings-esp8266-esp32/data/index.css: -------------------------------------------------------------------------------- 1 | .hero { 2 | background: #eee; 3 | padding: 20px; 4 | border-radius: 10px; 5 | margin-top: 1em; 6 | } 7 | 8 | .hero h1 { 9 | margin-top: 0; 10 | margin-bottom: 0.3em; 11 | text-align: center; 12 | } 13 | 14 | .chart-container { 15 | max-width: 800px; 16 | margin: 0 auto; 17 | } 18 | -------------------------------------------------------------------------------- /esp8266-projects/plot-real-time-chart-display-of-sensor-readings-esp8266-esp32/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mongodb-database-control/README.MD: -------------------------------------------------------------------------------- 1 | # Control your Arduino IoT projects with a MongoDB database 2 | 3 | ## Write Up 4 | https://www.donskytech.com/control-your-arduino-iot-projects-with-a-mongodb-database/ 5 | 6 | ![Featured Image - Control your Arduino IoT projects with a MongoDB database](https://user-images.githubusercontent.com/69466026/232679229-12b49c12-e5f6-41d1-86e8-fd3ca7f08ee6.jpg) 7 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/src/blink_led.cpp.txt: -------------------------------------------------------------------------------- 1 | #include "Arduino.h" 2 | #include "PCF8575.h" 3 | 4 | // Set i2c address 5 | PCF8575 pcf8575(0x20); 6 | 7 | void setup() 8 | { 9 | Serial.begin(9600); 10 | 11 | // Set pinMode to OUTPUT 12 | pcf8575.pinMode(P0, OUTPUT); 13 | pcf8575.begin(); 14 | } 15 | 16 | void loop() 17 | { 18 | pcf8575.digitalWrite(P0, HIGH); 19 | delay(1000); 20 | pcf8575.digitalWrite(P0, LOW); 21 | delay(1000); 22 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/src/defaultHardwareSerial.cpp.txt: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void setup() 4 | { 5 | Serial.begin(9600); 6 | Serial1.begin(9600); 7 | Serial2.begin(115200); 8 | } 9 | 10 | void loop() 11 | { 12 | while (Serial.available()) 13 | { 14 | // Do your code 15 | } 16 | while (Serial1.available()) 17 | { 18 | // Do your code 19 | } 20 | while (Serial2.available()) 21 | { 22 | // Do your code 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/data/index.js: -------------------------------------------------------------------------------- 1 | function toggleButtonSwitch(e) { 2 | var switchButton = document.getElementById("switch"); 3 | 4 | var toggleValue = ""; 5 | if (switchButton.checked) { 6 | console.log("On!"); 7 | toggleValue = "ON"; 8 | } else { 9 | console.log("Off!"); 10 | toggleValue = "OFF" 11 | } 12 | fetch( `/toggle?status=${toggleValue}`) 13 | .then( response => { 14 | console.log(response); 15 | } ) 16 | } 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # platformio-projects 2 | 3 | This repository contains Arduino-based projects created with PlatformIO IDE extension in Visual Studio Code 4 | 5 | The complete documentation for each project can be found on my personal blog site https://www.donskytech.com 6 | 7 | Please support my effort of creating projects with complete design and documentation: 8 | 9 | BuyMeACoffee 10 | https://www.buymeacoffee.com/donskytech 11 | 12 | Patreon 13 | https://patreon.com/donskytech 14 | 15 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/data/index.css: -------------------------------------------------------------------------------- 1 | /******** mincss **********/ 2 | .hero { 3 | background: #eee; 4 | padding: 20px; 5 | border-radius: 10px; 6 | margin-top: 1em; 7 | } 8 | 9 | .hero h1 { 10 | margin-top: 0; 11 | margin-bottom: 0.3em; 12 | } 13 | 14 | /****** Custom CSS ********/ 15 | .title{ 16 | text-align: center; 17 | } 18 | 19 | .counter{ 20 | text-align: center; 21 | } 22 | 23 | #current-count{ 24 | font-size: 15em; 25 | font-weight: bold; 26 | color: blue; 27 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-read-ldr-photoresisitor/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int sensorVal; 4 | const int ANALOG_READ_PIN = 36; // or A0 5 | const int RESOLUTION = 12; // Could be 9-12 6 | 7 | void setup() 8 | { 9 | Serial.begin(115200); 10 | analogReadResolution(RESOLUTION); 11 | } 12 | 13 | void loop() 14 | { 15 | 16 | //Read and print the sensor pin value 17 | sensorVal = analogRead(ANALOG_READ_PIN); 18 | Serial.print(sensorVal); 19 | Serial.print(" \n"); 20 | //sleep for some time before next read 21 | delay(100); 22 | } -------------------------------------------------------------------------------- /arduino-uno-projects/ArduinoSerialControl/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:uno] 12 | platform = atmelavr 13 | board = uno 14 | framework = arduino 15 | lib_deps = 16 | Servo -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "Arduino.h" 2 | #include "PCF8575.h" 3 | 4 | // Set i2c address 5 | PCF8575 pcf8575(0x20); 6 | 7 | void setup() 8 | { 9 | Serial.begin(9600); 10 | 11 | pcf8575.pinMode(P0, INPUT); 12 | pcf8575.pinMode(P1, OUTPUT); 13 | 14 | pcf8575.begin(); 15 | } 16 | 17 | void loop() 18 | { 19 | uint8_t val = pcf8575.digitalRead(P0); 20 | if (val == HIGH) 21 | { 22 | pcf8575.digitalWrite(P1, HIGH); 23 | } 24 | else 25 | { 26 | pcf8575.digitalWrite(P1, LOW); 27 | } 28 | 29 | delay(50); 30 | } 31 | -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Unit Testing and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/page/plus/unit-testing.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-dht22/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | lib_deps = xreef/PCF8575 library@^1.1.0 16 | -------------------------------------------------------------------------------- /esp32-projects/esp32-robot-car-websockets/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Unit Testing and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/page/plus/unit-testing.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | lib_deps = plerup/EspSoftwareSerial@^8.1.0 16 | -------------------------------------------------------------------------------- /esp32-projects/esp32-data-logger/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mongodb-database-control/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake.configureOnOpen": false, 3 | "files.associations": { 4 | "array": "cpp", 5 | "*.tcc": "cpp", 6 | "deque": "cpp", 7 | "string": "cpp", 8 | "unordered_map": "cpp", 9 | "unordered_set": "cpp", 10 | "vector": "cpp", 11 | "initializer_list": "cpp", 12 | "sstream": "cpp", 13 | "system_error": "cpp", 14 | "functional": "cpp", 15 | "tuple": "cpp", 16 | "type_traits": "cpp", 17 | "utility": "cpp" 18 | } 19 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-dht22/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-read-ldr-photoresisitor/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Unit Testing and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/page/plus/unit-testing.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-ldr-data-websockets/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Unit Testing and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/page/plus/unit-testing.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-keypad-db-iot/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/src/button_keypress.cpp.txt: -------------------------------------------------------------------------------- 1 | #include "Arduino.h" 2 | #include "PCF8575.h" 3 | 4 | // Set i2c address 5 | PCF8575 pcf8575(0x20); 6 | 7 | void setup() 8 | { 9 | Serial.begin(9600); 10 | 11 | pcf8575.pinMode(P0, INPUT); 12 | pcf8575.pinMode(P1, OUTPUT); 13 | 14 | pcf8575.begin(); 15 | } 16 | 17 | void loop() 18 | { 19 | uint8_t val = pcf8575.digitalRead(P0); 20 | if (val == HIGH) 21 | { 22 | pcf8575.digitalWrite(P1, HIGH); 23 | } 24 | else 25 | { 26 | pcf8575.digitalWrite(P1, LOW); 27 | } 28 | 29 | delay(50); 30 | } 31 | 32 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /arduino-uno-projects/ArduinoSerialControl/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-node-red-control/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-read-ldr-photoresisitor/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | 16 | ; Serial Monitor options 17 | monitor_speed = 115200 -------------------------------------------------------------------------------- /esp32-projects/esp32-send-sensor-websocket/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp8266-projects/adafruit_mqtt_library/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp8266-projects/ldr-photoresistor-esp8266/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mongodb-database-control/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-publish-subscribe/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-seven-segment-display/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-seven-segment-display/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | framework = arduino 15 | 16 | ; Serial Monitor options 17 | monitor_speed = 115200 -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-no-filesystem/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp8266-projects/ldr-photoresistor-esp8266/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | framework = arduino 15 | 16 | ; Serial Monitor options 17 | monitor_speed = 115200 18 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-publish-subscribe/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | monitor_speed = 115200 16 | lib_deps = knolleary/PubSubClient@^2.8 17 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | lib_deps = 16 | adafruit/Adafruit Fingerprint Sensor Library@^2.1.0 17 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp8266-projects/adafruit_mqtt_library/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp12e] 12 | platform = espressif8266 13 | board = esp12e 14 | framework = arduino 15 | monitor_speed = 115200 16 | lib_deps = adafruit/Adafruit MQTT Library@^2.5.2 17 | -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/src/loop_ir.cpp.txt: -------------------------------------------------------------------------------- 1 | /* 2 | Project: Read IR Sensor 3 | Author: donsky 4 | For: www.donskytech.com 5 | Date: April 30, 2023 6 | */ 7 | 8 | #include 9 | 10 | const int irSensor = 33; 11 | const int ledPin = 32; 12 | 13 | int irReading; 14 | 15 | void setup() 16 | { 17 | Serial.begin(115200); 18 | pinMode(irSensor, INPUT); 19 | pinMode(ledPin, OUTPUT); 20 | } 21 | void loop() 22 | { 23 | irReading = digitalRead(irSensor); 24 | if (irReading == LOW) 25 | { 26 | digitalWrite(ledPin, HIGH); 27 | } 28 | else 29 | { 30 | digitalWrite(ledPin, LOW); 31 | } 32 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-node-red-control/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | lib_deps = 16 | knolleary/PubSubClient@^2.8 17 | madhephaestus/ESP32Servo@^1.1.2 18 | -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | monitor_speed = 115200 16 | lib_deps = marcoschwartz/LiquidCrystal_I2C@^1.1.4 17 | Wire 18 | -------------------------------------------------------------------------------- /esp8266-projects/plot-real-time-chart-display-of-sensor-readings-esp8266-esp32/test/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for PlatformIO Test Runner and project tests. 3 | 4 | Unit Testing is a software testing method by which individual units of 5 | source code, sets of one or more MCU program modules together with associated 6 | control data, usage procedures, and operating procedures, are tested to 7 | determine whether they are fit for use. Unit testing finds problems early 8 | in the development cycle. 9 | 10 | More information about PlatformIO Unit Testing: 11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html 12 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/src/OLED_Displayer.h: -------------------------------------------------------------------------------- 1 | #ifndef OLED_DISPLAYER 2 | #define OLED_DISPLAYER 3 | #include "Arduino.h" 4 | #include 5 | #include 6 | #include 7 | 8 | class OLEDDisplayer 9 | { 10 | private: 11 | int width; 12 | int height; 13 | Adafruit_SSD1306 display; 14 | 15 | public: 16 | OLEDDisplayer(int, int, Adafruit_SSD1306); 17 | void begin(); 18 | void displayText(const char *text1, const char *text2 = "", uint8_t textSize = 1); 19 | void displayText(const char *text1, uint8_t amount, uint8_t textSize = 1); 20 | void clearOLEDDisplay(); 21 | }; 22 | #endif -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | lib_ldf_mode = deep 16 | lib_deps = 17 | adafruit/Adafruit SSD1306@^2.5.7 18 | pfeerick/elapsedMillis@^1.0.6 19 | -------------------------------------------------------------------------------- /esp32-projects/esp32-dht22/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | monitor_speed = 115200 16 | lib_deps = 17 | adafruit/Adafruit Unified Sensor@^1.1.7 18 | adafruit/DHT sensor library@^1.4.4 19 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-no-filesystem/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | framework = arduino 15 | lib_deps = ottowinter/ESPAsyncWebServer-esphome@^3.0.0 16 | ; Serial Monitor options 17 | monitor_speed = 115200 -------------------------------------------------------------------------------- /esp32-projects/esp32-send-sensor-websocket/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | ; Serial Monitor options 16 | monitor_speed = 115200 17 | lib_deps = 18 | https://github.com/Links2004/arduinoWebSockets.git -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | lib_deps = 16 | adafruit/Adafruit Fingerprint Sensor Library@^2.1.0 17 | ottowinter/ESPAsyncWebServer-esphome@^3.0.0 18 | FS 19 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | 16 | ; Serial Monitor options 17 | monitor_speed = 115200 18 | lib_deps= 19 | https://github.com/OSSLibraries/Arduino_MFRC522v2.git 20 | Wire -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-dht22/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | monitor_speed = 115200 16 | lib_deps = 17 | adafruit/Adafruit Unified Sensor@^1.1.7 18 | adafruit/DHT sensor library@^1.4.4 19 | knolleary/PubSubClient@^2.8 20 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | framework = arduino 15 | board_build.filesystem = littlefs 16 | lib_deps = ottowinter/ESPAsyncWebServer-esphome@^3.0.0 17 | ; Serial Monitor options 18 | monitor_speed = 115200 -------------------------------------------------------------------------------- /esp32-projects/esp32-mongodb-database-control/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | lib_deps = 16 | bblanchon/ArduinoJson@^6.21.1 17 | adafruit/Adafruit Unified Sensor@^1.1.7 18 | adafruit/DHT sensor library@^1.4.4 19 | monitor_filters = esp32_exception_decoder -------------------------------------------------------------------------------- /esp32-projects/esp32-data-logger/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | monitor_speed = 115200 16 | lib_deps = 17 | adafruit/Adafruit Unified Sensor@^1.1.7 18 | adafruit/DHT sensor library@^1.4.4 19 | bblanchon/ArduinoJson@^6.21.3 20 | pfeerick/elapsedMillis@^1.0.6 21 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-ldr-data-websockets/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | 16 | ; Serial Monitor options 17 | monitor_speed = 115200 18 | lib_deps= 19 | https://github.com/Links2004/arduinoWebSockets.git 20 | https://github.com/bblanchon/ArduinoJson.git 21 | -------------------------------------------------------------------------------- /esp8266-projects/plot-real-time-chart-display-of-sensor-readings-esp8266-esp32/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | framework = arduino 15 | board_build.filesystem = littlefs 16 | lib_deps = ottowinter/ESPAsyncWebServer-esphome@^3.0.0 17 | ; Serial Monitor options 18 | monitor_speed = 115200 19 | -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/src/configureHardwareSerial.cpp.txt: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | HardwareSerial mySerial(0); 4 | HardwareSerial mySerial1(1); 5 | HardwareSerial mySerial2(2); 6 | 7 | void setup() 8 | { 9 | mySerial.begin(9600, SERIAL_8N1); // Default config 10 | mySerial1.begin(9600, SERIAL_8E1, 32, 33); // Set Serial Communication config and reassign pins to 32, 33 11 | mySerial2.begin(115200, SERIAL_8N2); // Set Serial Communication config 12 | } 13 | 14 | void loop() 15 | { 16 | while (mySerial.available()) 17 | { 18 | // Do your code 19 | } 20 | while (mySerial1.available()) 21 | { 22 | // Do your code 23 | } 24 | while (mySerial2.available()) 25 | { 26 | // Do your code 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /esp8266-projects/ldr-photoresistor-esp8266/src/main.cpp: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | Title: Interfacing Photocell or LDR into NodeMCU ESP8266 4 | Description: Read LDR or Phot0resistor using ESP8266 5 | Author: donsky 6 | For: www.donskytech.com 7 | Date: September 20, 2022 8 | */ 9 | 10 | #include 11 | 12 | int sensorVal = 0; 13 | const int ANALOG_READ_PIN = A0; 14 | 15 | void setup() 16 | { 17 | Serial.begin(115200); 18 | 19 | } 20 | 21 | void loop() 22 | { 23 | sensorVal = analogRead(ANALOG_READ_PIN); 24 | 25 | // Values from 0-1024 26 | Serial.println(sensorVal); 27 | 28 | // Convert the analog reading to voltage 29 | float voltage = sensorVal * (3.3 / 1023.0); 30 | 31 | // print the voltage 32 | Serial.println(voltage); 33 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/src/mixSoftwareAndHardwareSerial.cpp.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | // Define SoftwareSerial 5 | SoftwareSerial mySerial(5, 18); 6 | 7 | void setup() { 8 | // Initialize hardware serial baud Rate 9 | Serial.begin(9600); 10 | // Initialize software serial 11 | mySerial.begin(9600); 12 | } 13 | 14 | void loop() { 15 | if (Serial.available()) { 16 | char c = Serial.read(); 17 | // Send data received from hardware serial to software serial 18 | mySerial.write(c); 19 | } 20 | 21 | if (mySerial.available()) { 22 | char c = mySerial.read(); 23 | // Send data received from software serial to hardware serial 24 | Serial.write(c); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | monitor_speed = 115200 16 | lib_deps = 17 | https://github.com/OSSLibraries/Arduino_MFRC522v2.git 18 | Wire 19 | Wifi 20 | FS 21 | SPIFFS 22 | me-no-dev/ESP Async WebServer@^1.2.3 23 | bblanchon/ArduinoJson@^6.19.4 24 | -------------------------------------------------------------------------------- /esp32-projects/esp32-robot-car-websockets/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | 16 | ; Serial Monitor options 17 | monitor_speed = 115200 18 | lib_deps= 19 | Wifi 20 | FS 21 | SPIFFS 22 | https://github.com/me-no-dev/ESPAsyncTCP.git 23 | https://github.com/me-no-dev/ESPAsyncWebServer.git -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Arduino Fingerprint Sensor 8 | 9 | 10 | 11 |
12 |

Arduino Fingerprint Sensor using ESP32

13 |
14 |

Status

15 |
16 |
Scan your Fingerprint
17 |
18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp12e] 12 | platform = espressif8266 13 | board = esp12e 14 | framework = arduino 15 | board_build.filesystem = littlefs 16 | platform_packages = 17 | platformio/framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git 18 | monitor_speed = 115200 19 | lib_deps = me-no-dev/ESP Async WebServer@^1.2.3 20 | 21 | -------------------------------------------------------------------------------- /esp32-projects/esp32-keypad-db-iot/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32dev] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | 16 | ; Serial Monitor options 17 | monitor_speed = 115200 18 | lib_deps= 19 | https://github.com/Chris--A/Keypad.git 20 | https://github.com/bblanchon/ArduinoJson.git 21 | https://github.com/johnrickman/LiquidCrystal_I2C.git 22 | https://github.com/RoboticsBrno/ServoESP32.git -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: donskytech 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; https://docs.platformio.org/page/projectconf.html 10 | 11 | [env:esp32] 12 | platform = espressif32 13 | board = esp32dev 14 | framework = arduino 15 | 16 | ; Serial Monitor options 17 | monitor_speed = 115200 18 | lib_deps= 19 | Wifi 20 | FS 21 | SPIFFS 22 | https://github.com/me-no-dev/ESPAsyncTCP.git 23 | https://github.com/me-no-dev/ESPAsyncWebServer.git 24 | https://github.com/bblanchon/ArduinoJson.git 25 | https://github.com/RobotDynOfficial/RBDDimmer.git 26 | -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/include/automation.h: -------------------------------------------------------------------------------- 1 | #ifndef AUTOMATION_H 2 | #define AUTOMATION_H 3 | #include 4 | #include 5 | 6 | class AutomationProto 7 | { 8 | private: 9 | bool m_tube; 10 | bool m_socket; 11 | bool m_bulb; 12 | int m_dimValue; 13 | dimmerLamp m_dimmer; 14 | 15 | public: 16 | AutomationProto(); 17 | void init(); 18 | void setTubeStatus(bool status); 19 | bool isTubeOn(); 20 | void setSocketStatus(bool status); 21 | bool isSocketOn(); 22 | void setBulbStatus(bool status); 23 | bool isBulbOn(); 24 | void setDimmerValue(int value); 25 | int getDimmerValue(); 26 | 27 | // Static Constant Pin 28 | static int const TUBE_PIN; 29 | static int const BULB_PIN; 30 | static int const SOCKET_PIN; 31 | 32 | // Dimmer Constant Pin 33 | static int const DIMMER_ZERO_CROSS_PIN; 34 | static int const DIMMER_OUTPUT_PIN; 35 | }; 36 | 37 | #endif -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/data/css/custom.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Lato:400,500,600,700&display=swap"); 2 | * { 3 | margin: 0; 4 | padding: 0; 5 | /* box-sizing: border-box; */ 6 | font-family: "Lato", sans-serif; 7 | } 8 | 9 | .hero { 10 | background: #eee; 11 | padding: 20px; 12 | border-radius: 10px; 13 | margin-top: 1em; 14 | text-align: center; 15 | } 16 | 17 | .hero h1 { 18 | margin-top: 0; 19 | margin-bottom: 0.3em; 20 | } 21 | 22 | .c4 { 23 | padding: 10px; 24 | box-sizing: border-box; 25 | } 26 | 27 | .c4 h3 { 28 | margin-top: 0; 29 | } 30 | 31 | .c4 a { 32 | margin-top: 10px; 33 | display: inline-block; 34 | } 35 | 36 | /** RFID CSS ***/ 37 | .access{ 38 | padding: 1em; 39 | } 40 | #access-id{ 41 | color:blue; 42 | display: none; 43 | } 44 | 45 | #access-denied, #access-approve{ 46 | border-radius: 25px; 47 | padding: 1em; 48 | font-size: 3em; 49 | color: #FFF; 50 | display: none; 51 | } 52 | 53 | #access-denied{ 54 | background-color: red; 55 | } 56 | 57 | #access-approve{ 58 | background-color: green; 59 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | // Software Serial object to interface with my SIM900 5 | SoftwareSerial sim900(5, 18); 6 | 7 | void updateSerial(); 8 | 9 | void setup() 10 | { 11 | // Set Arduino IDE (Serial Monitor) 12 | Serial.begin(9600); 13 | 14 | // Begin serial communication with Arduino and SIM900 15 | sim900.begin(9600); 16 | 17 | Serial.println("Initialize SIM900"); 18 | 19 | // SIM900 Handshake AT commands 20 | sim900.println("AT"); 21 | updateSerial(); 22 | // Signal Quality Test 23 | sim900.println("AT+CSQ"); 24 | updateSerial(); 25 | // Check SIM 26 | sim900.println("AT+CCID"); 27 | updateSerial(); 28 | // Check network registration 29 | sim900.println("AT+CREG?"); 30 | updateSerial(); 31 | } 32 | 33 | void loop() 34 | { 35 | updateSerial(); 36 | } 37 | 38 | void updateSerial() 39 | { 40 | delay(500); 41 | while (Serial.available()) 42 | { 43 | sim900.write(Serial.read()); // From Serial Port to Software Serial 44 | } 45 | while (sim900.available()) 46 | { 47 | Serial.write(sim900.read()); // From Software Serial to Serial Port 48 | } 49 | } -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ESP8266 LittleFS Webserver 7 | 8 | 9 | 10 | 11 | 12 | 20 | 21 |
22 |
23 |

ESP8266 LittleFS Webserver

24 |
25 |

Toggle Switch

26 | 27 |
28 |
29 |
30 | 31 | -------------------------------------------------------------------------------- /esp32-projects/esp32-dht22/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ESP32 RFID Web Server 8 | 9 | 10 | 11 | 12 | 13 | 14 | 19 | 20 |
21 |
22 |

ESP32 RFID Web Server

23 |
24 |

Access ID:

25 |

26 |
27 |

Access Denied

28 |

Permission Granted

29 |
30 | 31 |
32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-data-logger/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-keypad-db-iot/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-dht22/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp8266-projects/adafruit_mqtt_library/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /arduino-uno-projects/ArduinoSerialControl/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-node-red-control/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-publish-subscribe/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-read-ldr-photoresisitor/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-robot-car-websockets/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-sensor-websocket/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp8266-projects/ldr-photoresistor-esp8266/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mongodb-database-control/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-ldr-data-websockets/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-seven-segment-display/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-no-filesystem/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp8266-projects/plot-real-time-chart-display-of-sensor-readings-esp8266-esp32/lib/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link into executable file. 4 | 5 | The source code of each library should be placed in a an own separate directory 6 | ("lib/your_library_name/[here are source files]"). 7 | 8 | For example, see a structure of the following two libraries `Foo` and `Bar`: 9 | 10 | |--lib 11 | | | 12 | | |--Bar 13 | | | |--docs 14 | | | |--examples 15 | | | |--src 16 | | | |- Bar.c 17 | | | |- Bar.h 18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html 19 | | | 20 | | |--Foo 21 | | | |- Foo.c 22 | | | |- Foo.h 23 | | | 24 | | |- README --> THIS FILE 25 | | 26 | |- platformio.ini 27 | |--src 28 | |- main.c 29 | 30 | and a contents of `src/main.c`: 31 | ``` 32 | #include 33 | #include 34 | 35 | int main (void) 36 | { 37 | ... 38 | } 39 | 40 | ``` 41 | 42 | PlatformIO Library Dependency Finder will find automatically dependent 43 | libraries scanning project source files. 44 | 45 | More information about PlatformIO Library Dependency Finder 46 | - https://docs.platformio.org/page/librarymanager/ldf.html 47 | -------------------------------------------------------------------------------- /esp8266-projects/plot-real-time-chart-display-of-sensor-readings-esp8266-esp32/data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Plot Real-time Chart display of Sensor Readings - ESP8266/ESP32 7 | 8 | 9 | 15 | 16 | 17 | 18 | 24 | 25 |
26 |
27 |

Real-time Chart display of Sensor Readings

28 |
29 | 30 |
31 |
32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/src/OLED_Displayer.cpp: -------------------------------------------------------------------------------- 1 | #include "OLED_Displayer.h" 2 | 3 | OLEDDisplayer::OLEDDisplayer(int w, int h, Adafruit_SSD1306 oledDisplay) : width(w), height(h), display(oledDisplay) 4 | { 5 | } 6 | void OLEDDisplayer::displayText(const char *text, const char *text2, uint8_t textSize) 7 | { 8 | display.clearDisplay(); 9 | display.setTextSize(textSize); 10 | display.setTextColor(SSD1306_WHITE); 11 | display.cp437(true); 12 | display.setCursor(0, 0); 13 | display.write(text); 14 | if (strcmp(text2, "") != 0) 15 | { 16 | display.setCursor(0, 32); 17 | display.write(text2); 18 | } 19 | 20 | display.display(); 21 | } 22 | void OLEDDisplayer::displayText(const char *text, uint8_t amount, uint8_t textSize) 23 | { 24 | display.clearDisplay(); 25 | display.setTextSize(textSize); 26 | display.setTextColor(SSD1306_WHITE); 27 | display.cp437(true); 28 | 29 | // Start at top-left corner 30 | display.setCursor(0, 0); 31 | display.write(text); 32 | 33 | char buffer[10]; 34 | sprintf(buffer, "%d", amount); 35 | display.setCursor(0, 32); 36 | display.write(buffer); 37 | 38 | display.display(); 39 | } 40 | 41 | void OLEDDisplayer::begin() 42 | { 43 | display.begin(SSD1306_SWITCHCAPVCC, 0X3C); 44 | this->clearOLEDDisplay(); 45 | } 46 | 47 | void OLEDDisplayer::clearOLEDDisplay() 48 | { 49 | display.clearDisplay(); 50 | display.display(); 51 | } 52 | -------------------------------------------------------------------------------- /esp32-projects/esp32-dht22/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-dht22/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-data-logger/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-keypad-db-iot/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-softwareserial/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /arduino-uno-projects/ArduinoSerialControl/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-robot-car-websockets/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp8266-projects/adafruit_mqtt_library/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mongodb-database-control/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-node-red-control/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-mqtt-publish-subscribe/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-read-ldr-photoresisitor/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-ldr-data-websockets/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-sensor-websocket/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-seven-segment-display/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp8266-projects/ldr-photoresistor-esp8266/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-no-filesystem/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/data/js/custom.js: -------------------------------------------------------------------------------- 1 | // Locate the 3 checkbox 2 | const tube = document.querySelector('#tube'); 3 | const bulb = document.querySelector('#bulb'); 4 | const socket = document.querySelector('#socket'); 5 | 6 | // Add event Listener to the 3 checkbox 7 | tube.addEventListener('change', toggleStatus); 8 | bulb.addEventListener('change', toggleStatus); 9 | socket.addEventListener('change', toggleStatus); 10 | 11 | async function sendRequestToServer(url) { 12 | try { 13 | let res = await fetch(url); 14 | return await res.json(); 15 | } catch (error) { 16 | console.log(error); 17 | } 18 | } 19 | 20 | async function toggleStatus(e) { 21 | let sourceElementName = e.target.name; 22 | let url = '/toggle/' + sourceElementName + '?status='; 23 | if (e.target.checked) { 24 | url += 'true'; 25 | } else { 26 | url += 'false'; 27 | } 28 | console.log("Sending to " + url); 29 | 30 | let response = await sendRequestToServer(url); 31 | 32 | console.log(response); 33 | } 34 | 35 | const slider = document.querySelector("#dim-value-slider"); 36 | const output = document.querySelector("#dim-value"); 37 | // Add event on range change 38 | slider.addEventListener('input', updateDimmerValue); 39 | 40 | async function updateDimmerValue(e) { 41 | //send request 42 | let url = '/dimmer/change' + '?value=' + slider.value; 43 | console.log("Sending to " + url); 44 | 45 | let response = await sendRequestToServer(url); 46 | 47 | console.log(response); 48 | 49 | //update dimmer value 50 | output.innerHTML = slider.value; 51 | } 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp32-projects/esp32-pcf8575-port-expander/src/16_channel_relay.cpp.txt: -------------------------------------------------------------------------------- 1 | /* 2 | Project Desc: Control 16 Channel relays 3 | By: DonskyTech (www.donskytech.com) 4 | 5 | WIRING/SCHEMATIC 6 | 7 | RELAY Power Supply 8 | DC(+) Power Supply (+) 5V 9 | DC(-) Power Supply (-) 5V 10 | 11 | RELAY ESP32 12 | GND GND 13 | 5v NO CONNECTION 14 | 15 | PCF8575 RELAY 16 | P0 IN1 17 | P1 IN1 18 | P2 IN3 19 | . 20 | . 21 | . 22 | P15 IN16 23 | */ 24 | 25 | #include "Arduino.h" 26 | #include "PCF8575.h" 27 | 28 | // Set i2c address 29 | PCF8575 pcf8575(0x20); 30 | 31 | const int INITIAL_PIN_RELAY = 0; 32 | const int RELAY_PIN_COUNT = 16; 33 | void setup() 34 | { 35 | Serial.begin(9600); 36 | 37 | // Set All Pins to OUTPUT 38 | for (int iCtr = INITIAL_PIN_RELAY; iCtr < RELAY_PIN_COUNT; iCtr++) 39 | { 40 | pcf8575.pinMode(iCtr, OUTPUT); 41 | } 42 | pcf8575.begin(); 43 | 44 | Serial.println("Turn OFF all Relays initially..."); 45 | for (int iCtr = INITIAL_PIN_RELAY; iCtr < RELAY_PIN_COUNT; iCtr++) 46 | { 47 | pcf8575.digitalWrite(iCtr, HIGH); 48 | delay(100); 49 | } 50 | } 51 | 52 | void loop() 53 | { 54 | // Turn ON all relays 55 | Serial.println("Turn ON all Relays"); 56 | for (int iCtr = INITIAL_PIN_RELAY; iCtr < RELAY_PIN_COUNT; iCtr++) 57 | { 58 | pcf8575.digitalWrite(iCtr, LOW); 59 | delay(1000); 60 | } 61 | 62 | Serial.println("Turn OFF all Relays"); 63 | for (int iCtr = INITIAL_PIN_RELAY; iCtr < RELAY_PIN_COUNT; iCtr++) 64 | { 65 | pcf8575.digitalWrite(iCtr, HIGH); 66 | delay(1000); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /esp8266-projects/plot-real-time-chart-display-of-sensor-readings-esp8266-esp32/include/README: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for project header files. 3 | 4 | A header file is a file containing C declarations and macro definitions 5 | to be shared between several project source files. You request the use of a 6 | header file in your project source file (C, C++, etc) located in `src` folder 7 | by including it, with the C preprocessing directive `#include'. 8 | 9 | ```src/main.c 10 | 11 | #include "header.h" 12 | 13 | int main (void) 14 | { 15 | ... 16 | } 17 | ``` 18 | 19 | Including a header file produces the same results as copying the header file 20 | into each source file that needs it. Such copying would be time-consuming 21 | and error-prone. With a header file, the related declarations appear 22 | in only one place. If they need to be changed, they can be changed in one 23 | place, and programs that include the header file will automatically use the 24 | new version when next recompiled. The header file eliminates the labor of 25 | finding and changing all the copies as well as the risk that a failure to 26 | find one copy will result in inconsistencies within a program. 27 | 28 | In C, the usual convention is to give header files names that end with `.h'. 29 | It is most portable to use only letters, digits, dashes, and underscores in 30 | header file names, and at most one dot. 31 | 32 | Read more about using header files in official GCC documentation: 33 | 34 | * Include Syntax 35 | * Include Operation 36 | * Once-Only Headers 37 | * Computed Includes 38 | 39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html 40 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/data/index.css: -------------------------------------------------------------------------------- 1 | /******** mincss **********/ 2 | .hero { 3 | background: #eee; 4 | padding: 20px; 5 | border-radius: 10px; 6 | margin-top: 1em; 7 | text-align: center; 8 | 9 | } 10 | 11 | .hero h1 { 12 | margin-top: 0; 13 | margin-bottom: 0.3em; 14 | color: red; 15 | } 16 | 17 | /****** Custom toggle Switch**********/ 18 | /* https://codepen.io/alvarotrigo/pen/abVPyaJ */ 19 | /*********************/ 20 | .toggle-div{ 21 | display: flex; 22 | justify-content: center; 23 | align-items: center; 24 | margin-top: 5em; 25 | } 26 | 27 | .label{ 28 | font-size: 1.5em; 29 | font-weight: bolder; 30 | margin-right: 0.5em; 31 | /* color: blue */ 32 | } 33 | 34 | /* Styles for the toggle switch */ 35 | input[type=checkbox] { 36 | height: 0; 37 | width: 0; 38 | visibility: hidden; 39 | } 40 | 41 | label { 42 | cursor: pointer; 43 | text-indent: -9999px; 44 | width: 150px; 45 | height: 60px; 46 | background: grey; 47 | display: block; 48 | border-radius: 100px; 49 | position: relative; 50 | } 51 | 52 | label:after { 53 | content: ""; 54 | position: absolute; 55 | top: 5px; 56 | left: 5px; 57 | width: 70px; 58 | height: 50px; 59 | background: #fff; 60 | border-radius: 90px; 61 | transition: 0.3s; 62 | } 63 | 64 | input:checked + label { 65 | background: #bada55; 66 | } 67 | 68 | input:checked + label:after { 69 | left: calc(100% - 5px); 70 | transform: translateX(-100%); 71 | } 72 | 73 | label:active:after { 74 | width: 130px; 75 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/data/js/custom.js: -------------------------------------------------------------------------------- 1 | window.addEventListener("load", onLoad); 2 | 3 | function onLoad() { 4 | if (!!window.EventSource) { 5 | var source = new EventSource("/events"); 6 | 7 | source.addEventListener( 8 | "open", 9 | function (e) { 10 | console.log("Events Connected"); 11 | }, 12 | false 13 | ); 14 | 15 | source.addEventListener( 16 | "error", 17 | function (e) { 18 | if (e.target.readyState != EventSource.OPEN) { 19 | console.log("Events Disconnected"); 20 | } 21 | }, 22 | false 23 | ); 24 | 25 | source.addEventListener( 26 | "message", 27 | function (e) { 28 | // console.log("message", e.data); 29 | const message = JSON.parse(e.data); 30 | console.log(message); 31 | let accessId = document.getElementById("access-id"); 32 | accessId.innerHTML = message.rfid_tag_id; 33 | accessId.style.display = 'block'; 34 | 35 | let accessDenied = document.getElementById("access-denied") 36 | let accessApproved = document.getElementById("access-approve") 37 | 38 | let status = message.status; 39 | if(status){ 40 | accessDenied.style.display = 'none'; 41 | accessApproved.style.display = 'block'; 42 | }else{ 43 | accessDenied.style.display = 'block'; 44 | accessApproved.style.display = 'none'; 45 | } 46 | }, 47 | false 48 | ); 49 | 50 | source.addEventListener( 51 | "myevent", 52 | function (e) { 53 | console.log("myevent", e.data); 54 | }, 55 | false 56 | ); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "array": "cpp", 4 | "atomic": "cpp", 5 | "bit": "cpp", 6 | "*.tcc": "cpp", 7 | "bitset": "cpp", 8 | "cctype": "cpp", 9 | "clocale": "cpp", 10 | "cmath": "cpp", 11 | "compare": "cpp", 12 | "concepts": "cpp", 13 | "cstdarg": "cpp", 14 | "cstddef": "cpp", 15 | "cstdint": "cpp", 16 | "cstdio": "cpp", 17 | "cstdlib": "cpp", 18 | "cstring": "cpp", 19 | "ctime": "cpp", 20 | "cwchar": "cpp", 21 | "cwctype": "cpp", 22 | "deque": "cpp", 23 | "list": "cpp", 24 | "map": "cpp", 25 | "set": "cpp", 26 | "unordered_map": "cpp", 27 | "vector": "cpp", 28 | "exception": "cpp", 29 | "algorithm": "cpp", 30 | "functional": "cpp", 31 | "iterator": "cpp", 32 | "memory": "cpp", 33 | "memory_resource": "cpp", 34 | "numeric": "cpp", 35 | "optional": "cpp", 36 | "random": "cpp", 37 | "regex": "cpp", 38 | "string": "cpp", 39 | "string_view": "cpp", 40 | "system_error": "cpp", 41 | "tuple": "cpp", 42 | "type_traits": "cpp", 43 | "utility": "cpp", 44 | "initializer_list": "cpp", 45 | "iosfwd": "cpp", 46 | "istream": "cpp", 47 | "limits": "cpp", 48 | "new": "cpp", 49 | "ostream": "cpp", 50 | "ranges": "cpp", 51 | "sstream": "cpp", 52 | "stdexcept": "cpp", 53 | "streambuf": "cpp", 54 | "cinttypes": "cpp", 55 | "typeinfo": "cpp" 56 | } 57 | } -------------------------------------------------------------------------------- /esp8266-projects/esp8266-seven-segment-display/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | enum COMMON_TYPE 4 | { 5 | COMMON_ANODE = 1, 6 | COMMON_CATHODE = 0 7 | }; 8 | byte SEVEN_SEMENT_TYPE = COMMON_CATHODE; 9 | 10 | const int PIN_COUNT = 8; 11 | 12 | const byte A_PIN = D2; 13 | const byte B_PIN = D3; 14 | const byte C_PIN = D6; 15 | const byte D_PIN = D5; 16 | const byte E_PIN = D4; 17 | const byte F_PIN = D1; 18 | const byte G_PIN = D0; 19 | const byte P_PIN = D7; 20 | 21 | int segmentPins[]{A_PIN, B_PIN, C_PIN, D_PIN, E_PIN, F_PIN, G_PIN, P_PIN}; 22 | 23 | // count from 0-9 24 | const byte DISPLAY_COUNT = 10; 25 | const byte SEGMENT_COUNT = 8; 26 | const byte COL_COUNT = 8; 27 | int seven_segment[DISPLAY_COUNT][COL_COUNT]{ 28 | {1, 1, 1, 1, 1, 1, 0, 0}, // Display 0 29 | {0, 1, 1, 0, 0, 0, 0, 0}, // Display 1 30 | {1, 1, 0, 1, 1, 0, 1, 0}, // Display 2 31 | {1, 1, 1, 1, 0, 0, 1, 0}, // Display 3 32 | {0, 1, 1, 0, 0, 1, 1, 0}, // Display 4 33 | {1, 0, 1, 1, 0, 1, 1, 0}, // Display 5 34 | {1, 0, 1, 1, 1, 1, 1, 0}, // Display 6 35 | {1, 1, 1, 0, 0, 0, 0, 0}, // Display 7 36 | {1, 1, 1, 1, 1, 1, 1, 0}, // Display 8 37 | {1, 1, 1, 1, 0, 1, 1, 0} // Display 9 38 | }; 39 | 40 | void setup() 41 | { 42 | // Initialize the serial monitor baud rate 43 | Serial.begin(115200); 44 | 45 | // set all pins to output 46 | for (size_t i = 0; i < PIN_COUNT; i++) 47 | { 48 | pinMode(segmentPins[i], OUTPUT); 49 | } 50 | } 51 | 52 | void loop() 53 | { 54 | // put your main code here, to run repeatedly: 55 | for (size_t iCtr = 0; iCtr < DISPLAY_COUNT; iCtr++) 56 | { 57 | for (size_t i = 0; i < COL_COUNT; i++) 58 | { 59 | digitalWrite(segmentPins[i], seven_segment[iCtr][i]); 60 | } 61 | delay(1000); 62 | } 63 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-dht22/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "DHT.h" 3 | 4 | #define DHTPIN 32 // Digital pin connected to the DHT sensor 5 | 6 | // Uncomment whatever type you're using! 7 | //#define DHTTYPE DHT11 // DHT 11 8 | #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 9 | //#define DHTTYPE DHT21 // DHT 21 (AM2301) 10 | 11 | 12 | // Initialize DHT sensor. 13 | DHT dht(DHTPIN, DHTTYPE); 14 | 15 | void setup() { 16 | Serial.begin(115200); 17 | Serial.println(F("DHTxx test!")); 18 | 19 | dht.begin(); 20 | } 21 | 22 | void loop() { 23 | // Wait a few seconds between measurements. 24 | delay(2000); 25 | 26 | // Reading temperature or humidity takes about 250 milliseconds! 27 | // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) 28 | float h = dht.readHumidity(); 29 | // Read temperature as Celsius (the default) 30 | float t = dht.readTemperature(); 31 | // Read temperature as Fahrenheit (isFahrenheit = true) 32 | float f = dht.readTemperature(true); 33 | 34 | // Check if any reads failed and exit early (to try again). 35 | if (isnan(h) || isnan(t) || isnan(f)) { 36 | Serial.println(F("Failed to read from DHT sensor!")); 37 | return; 38 | } 39 | 40 | // Compute heat index in Fahrenheit (the default) 41 | float hif = dht.computeHeatIndex(f, h); 42 | // Compute heat index in Celsius (isFahreheit = false) 43 | float hic = dht.computeHeatIndex(t, h, false); 44 | 45 | Serial.print(F("Humidity: ")); 46 | Serial.print(h); 47 | Serial.print(F("% Temperature: ")); 48 | Serial.print(t); 49 | Serial.print(F("°C ")); 50 | Serial.print(f); 51 | Serial.print(F("°F Heat index: ")); 52 | Serial.print(hic); 53 | Serial.print(F("°C ")); 54 | Serial.print(hif); 55 | Serial.println(F("°F")); 56 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/data/js/index.js: -------------------------------------------------------------------------------- 1 | let statusDiv = document.querySelector("#statusDiv"); 2 | if (!!window.EventSource) { 3 | var source = new EventSource("/events"); 4 | 5 | source.addEventListener( 6 | "open", 7 | function (e) { 8 | console.log("Events Connected"); 9 | }, 10 | false 11 | ); 12 | 13 | source.addEventListener( 14 | "error", 15 | function (e) { 16 | if (e.target.readyState != EventSource.OPEN) { 17 | console.log("Events Disconnected"); 18 | } 19 | }, 20 | false 21 | ); 22 | 23 | source.addEventListener( 24 | "message", 25 | function (e) { 26 | console.log("message", e.data); 27 | }, 28 | false 29 | ); 30 | 31 | source.addEventListener( 32 | "noFingerprint", 33 | function (e) { 34 | console.log(e.data); 35 | showMessage("message-info", e.data); 36 | }, 37 | false 38 | ); 39 | source.addEventListener( 40 | "accessGranted", 41 | function (e) { 42 | console.log(e.data); 43 | showMessage("message-granted", e.data); 44 | }, 45 | false 46 | ); 47 | source.addEventListener( 48 | "accessDenied", 49 | function (e) { 50 | console.log(e.data); 51 | showMessage("message-denied", e.data); 52 | }, 53 | false 54 | ); 55 | source.addEventListener( 56 | "unknownError", 57 | function (e) { 58 | console.log("Unknown Error", e.data); 59 | showMessage("message-error", e.data); 60 | }, 61 | false 62 | ); 63 | } 64 | 65 | function showMessage(newClass, message) { 66 | // clear the classes 67 | statusDiv.removeAttribute("class"); 68 | // adding multiple class 69 | statusDiv.classList.add("message", newClass); 70 | // Change message 71 | statusDiv.innerHTML = message; 72 | } 73 | -------------------------------------------------------------------------------- /esp32-projects/esp32-r307-fingerprint-door-lock/data/css/index.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap"); 2 | 3 | :root { 4 | --color-background: #f6f6f9; 5 | --color-white: #fff; 6 | } 7 | * { 8 | margin: 0; 9 | padding: 0; 10 | outline: 0; 11 | appearance: none; 12 | text-decoration: none; 13 | list-style: none; 14 | box-sizing: border-box; 15 | } 16 | 17 | html { 18 | font-size: 14px; 19 | } 20 | body { 21 | width: 100vw; 22 | height: 100vh; 23 | font-family: poppins, san-serif; 24 | font-size: 0.88rem; 25 | background: #f6f6f9; 26 | user-select: none; 27 | overflow-x: hidden; 28 | } 29 | main { 30 | display: flex; 31 | flex-flow: column nowrap; 32 | justify-content: center; 33 | align-items: center; 34 | margin-top: 1.4rem; 35 | } 36 | .heading { 37 | /* background: var(--color-white); */ 38 | background-color: rgb(57, 21, 239); 39 | color: white; 40 | width: 100%; 41 | text-align: center; 42 | padding: 2rem; 43 | /* border-radius: 2rem; */ 44 | margin-bottom: 2rem; 45 | } 46 | .heading h1 { 47 | font-size: 3.5rem; 48 | } 49 | 50 | .status { 51 | display: flex; 52 | flex-flow: column nowrap; 53 | justify-content: center; 54 | align-items: center; 55 | background-color: white; 56 | width: 80%; 57 | padding: 2rem; 58 | } 59 | 60 | .status h2 { 61 | font-size: 2.5rem; 62 | margin-bottom: 1.5rem; 63 | } 64 | 65 | .message { 66 | font-size: 5rem; 67 | width: 80%; 68 | padding: 1rem; 69 | text-align: center; 70 | } 71 | .message-info { 72 | background-color: rgb(105, 245, 245); 73 | } 74 | 75 | .message-error { 76 | background-color: rgb(50, 1, 7); 77 | color: white; 78 | } 79 | 80 | .message-denied { 81 | background-color: rgb(250, 10, 42); 82 | color: white; 83 | } 84 | 85 | .message-granted { 86 | background-color: rgb(0, 111, 15); 87 | color: white; 88 | } 89 | -------------------------------------------------------------------------------- /esp32-projects/esp32-send-sensor-websocket/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #ifdef ESP32 3 | #include 4 | #elif defined(ESP8266) 5 | #include 6 | #endif 7 | 8 | #include 9 | 10 | int sensorVal; 11 | const int ANALOG_READ_PIN = 36; // or A0 12 | const int RESOLUTION = 12; // Could be 9-12 13 | 14 | // Enter your User ID and Password for your wifi connection 15 | const char *SSID = ""; 16 | const char *PASSWORD = ""; 17 | 18 | WebSocketsClient webSocket; 19 | 20 | void setup() 21 | { 22 | Serial.begin(115200); 23 | Serial.println("Connecting to "); 24 | Serial.println(SSID); 25 | WiFi.mode(WIFI_STA); 26 | WiFi.begin(SSID, PASSWORD); 27 | if (WiFi.waitForConnectResult() != WL_CONNECTED) 28 | { 29 | Serial.printf("WiFi Failed!\n"); 30 | return; 31 | } 32 | 33 | Serial.print("IP Address: "); 34 | Serial.println(WiFi.localIP()); 35 | 36 | // server address, port and URL - ws://192.168.100.121:1880/ws/readings 37 | webSocket.begin("192.168.100.121", 1880, "/ws/readings"); 38 | 39 | // try ever 5000 again if connection has failed 40 | webSocket.setReconnectInterval(5000); 41 | 42 | delay(1000); 43 | } 44 | unsigned long previousMillis = 0; 45 | const int interval = 1000; 46 | 47 | void loop() 48 | { 49 | analogReadResolution(RESOLUTION); 50 | // Read and print the sensor pin value 51 | sensorVal = analogRead(ANALOG_READ_PIN); 52 | // Serial.print(sensorVal); 53 | // Serial.print(" \n"); 54 | 55 | webSocket.loop(); 56 | 57 | unsigned long currentMillis = millis(); 58 | 59 | if (currentMillis - previousMillis >= interval) 60 | { 61 | // save the last time we send the last reading 62 | previousMillis = currentMillis; 63 | 64 | char buffer[5]; 65 | sprintf(buffer, "%d", sensorVal); 66 | // send sensor readings thru WebSocket 67 | webSocket.sendTXT(buffer); 68 | } 69 | } -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Conveyor Counter Using Webserver 7 | 8 | 9 | 10 | 11 | 37 | 45 | 46 |
47 |
48 |

ESP8266 Conveyor Counter Using Webserver

49 |
50 |

0

51 |
52 |
53 |
54 | 55 | 56 | -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | //#include 4 | #include 5 | #include 6 | 7 | MFRC522DriverPinSimple ss_pin(5); // Configurable, see typical pin layout above. 8 | 9 | MFRC522DriverSPI driver{ss_pin}; // Create SPI driver. 10 | // MFRC522DriverI2C driver{}; // Create I2C driver. 11 | MFRC522 mfrc522{driver}; // Create MFRC522 instance. 12 | 13 | String tagContent = ""; 14 | 15 | void setup() 16 | { 17 | Serial.begin(115200); // Initialize serial communications with the PC for debugging. 18 | while (!Serial) 19 | ; // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4). 20 | mfrc522.PCD_Init(); // Init MFRC522 board. 21 | MFRC522Debug::PCD_DumpVersionToSerial(mfrc522, Serial); // Show details of PCD - MFRC522 Card Reader details. 22 | Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); 23 | } 24 | 25 | void loop() 26 | { 27 | // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. 28 | if (!mfrc522.PICC_IsNewCardPresent()) 29 | { 30 | return; 31 | } 32 | 33 | // Select one of the cards. 34 | if (!mfrc522.PICC_ReadCardSerial()) 35 | { 36 | return; 37 | } 38 | 39 | // Dump debug info about the card; PICC_HaltA() is automatically called. 40 | MFRC522Debug::PICC_DumpToSerial(mfrc522, Serial, &(mfrc522.uid)); 41 | 42 | Serial.println("Printing only the Card ID:"); 43 | Serial.println("--------------------------"); 44 | for (byte i = 0; i < mfrc522.uid.size; i++) 45 | { 46 | tagContent.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); 47 | tagContent.concat(String(mfrc522.uid.uidByte[i], HEX)); 48 | } 49 | 50 | tagContent.toUpperCase(); 51 | 52 | Serial.println(tagContent); 53 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/src/automation.cpp: -------------------------------------------------------------------------------- 1 | #include "automation.h" 2 | 3 | AutomationProto::AutomationProto() : m_tube{false}, m_socket{false}, m_bulb{false}, 4 | m_dimValue{0}, m_dimmer(DIMMER_OUTPUT_PIN, DIMMER_ZERO_CROSS_PIN) 5 | { 6 | }; 7 | 8 | // Pin configuration for tube/bulb/socket 9 | int const AutomationProto::TUBE_PIN = 16; 10 | int const AutomationProto::BULB_PIN = 17; 11 | int const AutomationProto::SOCKET_PIN = 18; 12 | 13 | // Dimmer Pin implementation 14 | int const AutomationProto::DIMMER_OUTPUT_PIN = 32; 15 | int const AutomationProto::DIMMER_ZERO_CROSS_PIN = 36; 16 | 17 | void AutomationProto::init() 18 | { 19 | pinMode(TUBE_PIN, OUTPUT); 20 | pinMode(BULB_PIN, OUTPUT); 21 | pinMode(SOCKET_PIN, OUTPUT); 22 | 23 | // Relays are active low so we set it to HIGH 24 | digitalWrite(TUBE_PIN, HIGH); 25 | digitalWrite(BULB_PIN, HIGH); 26 | digitalWrite(SOCKET_PIN, HIGH); 27 | 28 | // Begin dimmer setup 29 | m_dimmer.begin(NORMAL_MODE, ON); //dimmer initialisation: name.begin(MODE, STATE) 30 | } 31 | 32 | // Getters and Setters 33 | void AutomationProto::setTubeStatus(bool status) 34 | { 35 | m_tube = status; 36 | digitalWrite(TUBE_PIN, !status); 37 | } 38 | 39 | bool AutomationProto::isTubeOn() 40 | { 41 | return m_tube; 42 | } 43 | void AutomationProto::setSocketStatus(bool status) 44 | { 45 | m_socket = status; 46 | digitalWrite(SOCKET_PIN, !status); 47 | } 48 | bool AutomationProto::isSocketOn() 49 | { 50 | return m_socket; 51 | } 52 | void AutomationProto::setBulbStatus(bool status) 53 | { 54 | m_bulb = status; 55 | digitalWrite(BULB_PIN, !status); 56 | } 57 | bool AutomationProto::isBulbOn() 58 | { 59 | return m_bulb; 60 | } 61 | 62 | void AutomationProto::setDimmerValue(int value) 63 | { 64 | m_dimValue = value; 65 | m_dimmer.setPower(value); 66 | } 67 | int AutomationProto::getDimmerValue() 68 | { 69 | return m_dimValue; 70 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/src/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Project: IR Sensor Counter 3 | Author: donsky 4 | For: www.donskytech.com 5 | Date: April 30, 2023 6 | */ 7 | 8 | #include 9 | #include 10 | 11 | const int IR_Sensor = 33; 12 | 13 | volatile uint64_t count = 0; 14 | volatile uint64_t currentCount = -1; 15 | 16 | unsigned long currentTime = 0; 17 | unsigned long lastReadTime = 0; 18 | unsigned int intervalDelay = 1000; 19 | 20 | void IRAM_ATTR isr() 21 | { 22 | currentTime = millis(); 23 | // IR Sensor is noisy so we add a debounce mechanism here 24 | if (currentTime - lastReadTime > intervalDelay) 25 | { 26 | count++; 27 | lastReadTime = currentTime; 28 | } 29 | } 30 | 31 | // set the LCD number of columns and rows 32 | int lcdColumns = 16; 33 | int lcdRows = 2; 34 | 35 | // Check your I2C LCD Address 36 | LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); 37 | 38 | // Function to print to LCD 39 | void printToLCD(const String &message, uint8_t column, uint8_t row, bool isClear) 40 | { 41 | if (isClear) 42 | { 43 | lcd.clear(); 44 | } 45 | // set cursor to column, row 46 | lcd.setCursor(column, row); 47 | if (message.length() == 0) 48 | { 49 | lcd.setCursor(0, 1); 50 | for (int n = 0; n < 16; n++) 51 | { 52 | lcd.print(" "); 53 | } 54 | } 55 | else 56 | { 57 | lcd.print(message); 58 | } 59 | } 60 | 61 | void setup() 62 | { 63 | Serial.begin(115200); 64 | pinMode(IR_Sensor, INPUT); 65 | attachInterrupt(digitalPinToInterrupt(IR_Sensor), isr, FALLING); 66 | 67 | lcd.init(); 68 | lcd.clear(); 69 | lcd.backlight(); // Make sure backlight is on 70 | printToLCD("Current Count:", 0, 0, false); 71 | delay(1000); 72 | } 73 | void loop() 74 | { 75 | Serial.printf("Count :: %lld\r\n", count); 76 | if (currentCount != count) 77 | { 78 | currentCount = count; 79 | char buffer[50]; 80 | ltoa(count, buffer, 10); 81 | // Print a message to the LCD. 82 | printToLCD(buffer, 0, 1, false); 83 | } 84 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-infrared-sensor/src/ir_sensor_counter.cpp.txt: -------------------------------------------------------------------------------- 1 | /* 2 | Project: IR Sensor Counter 3 | Author: donsky 4 | For: www.donskytech.com 5 | Date: April 30, 2023 6 | */ 7 | 8 | #include 9 | #include 10 | 11 | const int IR_Sensor = 33; 12 | 13 | volatile uint64_t count = 0; 14 | volatile uint64_t currentCount = -1; 15 | 16 | unsigned long currentTime = 0; 17 | unsigned long lastReadTime = 0; 18 | unsigned int intervalDelay = 1000; 19 | 20 | void IRAM_ATTR isr() 21 | { 22 | currentTime = millis(); 23 | // IR Sensor is noisy so we add a debounce mechanism here 24 | if (currentTime - lastReadTime > intervalDelay) 25 | { 26 | count++; 27 | lastReadTime = currentTime; 28 | } 29 | } 30 | 31 | // set the LCD number of columns and rows 32 | int lcdColumns = 16; 33 | int lcdRows = 2; 34 | 35 | // Check your I2C LCD Address 36 | LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); 37 | 38 | // Function to print to LCD 39 | void printToLCD(const String &message, uint8_t column, uint8_t row, bool isClear) 40 | { 41 | if (isClear) 42 | { 43 | lcd.clear(); 44 | } 45 | // set cursor to column, row 46 | lcd.setCursor(column, row); 47 | if (message.length() == 0) 48 | { 49 | lcd.setCursor(0, 1); 50 | for (int n = 0; n < 16; n++) 51 | { 52 | lcd.print(" "); 53 | } 54 | } 55 | else 56 | { 57 | lcd.print(message); 58 | } 59 | } 60 | 61 | void setup() 62 | { 63 | Serial.begin(115200); 64 | pinMode(IR_Sensor, INPUT); 65 | attachInterrupt(digitalPinToInterrupt(IR_Sensor), isr, FALLING); 66 | 67 | lcd.init(); 68 | lcd.clear(); 69 | lcd.backlight(); // Make sure backlight is on 70 | printToLCD("Current Count:", 0, 0, false); 71 | delay(1000); 72 | } 73 | void loop() 74 | { 75 | Serial.printf("Count :: %lld\r\n", count); 76 | if (currentCount != count) 77 | { 78 | currentCount = count; 79 | char buffer[50]; 80 | ltoa(count, buffer, 10); 81 | // Print a message to the LCD. 82 | printToLCD(buffer, 0, 1, false); 83 | } 84 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-robot-car-websockets/data/js/custom.js: -------------------------------------------------------------------------------- 1 | var targetUrl = `ws://${window.location.hostname}/ws`; 2 | var websocket; 3 | window.addEventListener('load', onLoad); 4 | 5 | 6 | function onLoad() { 7 | initializeSocket(); 8 | } 9 | 10 | function initializeSocket() { 11 | console.log('Opening WebSocket connection to ESP32...'); 12 | websocket = new WebSocket(targetUrl); 13 | websocket.onopen = onOpen; 14 | websocket.onclose = onClose; 15 | websocket.onmessage = onMessage; 16 | } 17 | function onOpen(event) { 18 | console.log('Starting connection to server..'); 19 | } 20 | function onClose(event) { 21 | console.log('Closing connection to server..'); 22 | setTimeout(initializeSocket, 2000); 23 | } 24 | function onMessage(event) { 25 | console.log("WebSocket message received:", event) 26 | } 27 | 28 | function sendMessage(message) { 29 | websocket.send(message); 30 | } 31 | 32 | /* 33 | Speed Settings Handler 34 | */ 35 | var speedSettings = document.querySelectorAll( 36 | 'input[type=radio][name="speed-settings"]' 37 | ); 38 | speedSettings.forEach((radio) => 39 | radio.addEventListener("change", () => 40 | { 41 | var speedSettings = radio.value; 42 | console.log('Speed Settings :: ' + speedSettings) 43 | sendMessage(speedSettings); 44 | } 45 | )); 46 | 47 | 48 | /* 49 | O-Pad/ D-Pad Controller and Javascript Code 50 | */ 51 | // Prevent scrolling on every click! 52 | // super sweet vanilla JS delegated event handling! 53 | document.body.addEventListener("click", function (e) { 54 | if (e.target && e.target.nodeName == "A") { 55 | e.preventDefault(); 56 | } 57 | }); 58 | 59 | function touchStartHandler(event) { 60 | var direction = event.target.dataset.direction; 61 | console.log('Touch Start :: ' + direction) 62 | sendMessage(direction); 63 | } 64 | 65 | function touchEndHandler(event) { 66 | const stop_command = 'stop'; 67 | var direction = event.target.dataset.direction; 68 | console.log('Touch End :: ' + direction) 69 | sendMessage(stop_command); 70 | } 71 | 72 | 73 | document.querySelectorAll('.control').forEach(item => { 74 | item.addEventListener('touchstart', touchStartHandler) 75 | }) 76 | 77 | document.querySelectorAll('.control').forEach(item => { 78 | item.addEventListener('touchend', touchEndHandler) 79 | }) 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /esp32-projects/esp32-coin-acceptor/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "OLED_Displayer.h" 5 | 6 | const int OLED_WIDTH = 128; 7 | const int OLED_HEIGHT = 64; 8 | Adafruit_SSD1306 display(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); 9 | OLEDDisplayer oledDisplayer(OLED_WIDTH, OLED_HEIGHT, display); 10 | 11 | // Sum of all the coins inseted 12 | int totalAmount = 0; 13 | volatile bool updateDisplay = false; 14 | volatile bool coinInserted = false; 15 | 16 | elapsedMillis timer; 17 | elapsedMillis countDownTimer; 18 | long interval_timer = 10000; 19 | bool countDownStarted = false; 20 | 21 | const uint8_t PIN = 19; 22 | 23 | const uint8_t RELAY_PIN = 13; 24 | 25 | void turnOnRelay(); 26 | void turnOffRelay(); 27 | 28 | void IRAM_ATTR isr() 29 | { 30 | coinInserted = true; 31 | updateDisplay = true; 32 | } 33 | 34 | void setup() 35 | { 36 | Serial.begin(9600); 37 | attachInterrupt(PIN, isr, FALLING); 38 | 39 | oledDisplayer.begin(); 40 | pinMode(RELAY_PIN, OUTPUT); 41 | turnOffRelay(); 42 | 43 | Serial.println("Begin coin counter..."); 44 | } 45 | 46 | void loop() 47 | { 48 | if (coinInserted) 49 | { 50 | coinInserted = false; 51 | totalAmount = totalAmount + 1; 52 | oledDisplayer.displayText("Total :", totalAmount, 2); 53 | if (totalAmount > 0 && !countDownStarted) 54 | { 55 | countDownStarted = true; 56 | timer = 0; 57 | countDownTimer = timer; 58 | turnOnRelay(); 59 | } 60 | } 61 | if (totalAmount > 0 && countDownStarted) 62 | { 63 | if (timer >= interval_timer * totalAmount) 64 | { 65 | Serial.println("Time is up!"); 66 | turnOffRelay(); 67 | countDownStarted = false; 68 | totalAmount = 0; 69 | oledDisplayer.displayText("Time Left", "0", 2); 70 | } 71 | } 72 | 73 | if (countDownTimer >= 1000) 74 | { 75 | if (countDownStarted) 76 | { 77 | countDownTimer = 0; 78 | long timeLeft = ((interval_timer * totalAmount) - timer) / 1000; 79 | Serial.print("timeLeft :"); 80 | Serial.println(timeLeft); 81 | oledDisplayer.displayText("Time Left", timeLeft, 2); 82 | } 83 | } 84 | } 85 | 86 | void turnOnRelay() 87 | { 88 | digitalWrite(RELAY_PIN, HIGH); 89 | } 90 | void turnOffRelay() 91 | { 92 | digitalWrite(RELAY_PIN, LOW); 93 | } -------------------------------------------------------------------------------- /esp32-projects/esp32-home-automation/data/css/entireframework.min.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Owen Versteeg; MIT licensed */body,textarea,input,select{background:0;border-radius:0;font:16px sans-serif;margin:0}.smooth{transition:all .2s}.btn,.nav a{text-decoration:none}.container{margin:0 20px;width:auto}label>*{display:inline}form>*{display:block;margin-bottom:10px}.btn{background:#999;border-radius:6px;border:0;color:#fff;cursor:pointer;display:inline-block;margin:2px 0;padding:12px 30px 14px}.btn:hover{background:#888}.btn:active,.btn:focus{background:#777}.btn-a{background:#0ae}.btn-a:hover{background:#09d}.btn-a:active,.btn-a:focus{background:#08b}.btn-b{background:#3c5}.btn-b:hover{background:#2b4}.btn-b:active,.btn-b:focus{background:#2a4}.btn-c{background:#d33}.btn-c:hover{background:#c22}.btn-c:active,.btn-c:focus{background:#b22}.btn-sm{border-radius:4px;padding:10px 14px 11px}.row{margin:1% 0;overflow:auto}.col{float:left}.table,.c12{width:100%}.c11{width:91.66%}.c10{width:83.33%}.c9{width:75%}.c8{width:66.66%}.c7{width:58.33%}.c6{width:50%}.c5{width:41.66%}.c4{width:33.33%}.c3{width:25%}.c2{width:16.66%}.c1{width:8.33%}h1{font-size:3em}.btn,h2{font-size:2em}.ico{font:33px Arial Unicode MS,Lucida Sans Unicode}.addon,.btn-sm,.nav,textarea,input,select{outline:0;font-size:14px}textarea,input,select{padding:8px;border:1px solid #ccc}textarea:focus,input:focus,select:focus{border-color:#5ab}textarea,input[type=text]{-webkit-appearance:none;width:13em}.addon{padding:8px 12px;box-shadow:0 0 0 1px #ccc}.nav,.nav .current,.nav a:hover{background:#000;color:#fff}.nav{height:24px;padding:11px 0 15px}.nav a{color:#aaa;padding-right:1em;position:relative;top:-1px}.nav .pagename{font-size:22px;top:1px}.btn.btn-close{background:#000;float:right;font-size:25px;margin:-54px 7px;display:none}@media(min-width:1310px){.container{margin:auto;width:1270px}}@media(max-width:870px){.row .col{width:100%}}@media(max-width:500px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:#000;border-bottom:10px double;border-top:3px solid;content:'';float:right;height:4px;position:relative;right:3px;top:14px;width:20px}.nav a{padding:.5em 0;display:block;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:#ddd}.msg{padding:1.5em;background:#def;border-left:5px solid #59d} -------------------------------------------------------------------------------- /esp8266-projects/esp8266-webserver-littlefs/data/entireframework.min.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Owen Versteeg; MIT licensed */body,textarea,input,select{background:0;border-radius:0;font:16px sans-serif;margin:0}.smooth{transition:all .2s}.btn,.nav a{text-decoration:none}.container{margin:0 20px;width:auto}label>*{display:inline}form>*{display:block;margin-bottom:10px}.btn{background:#999;border-radius:6px;border:0;color:#fff;cursor:pointer;display:inline-block;margin:2px 0;padding:12px 30px 14px}.btn:hover{background:#888}.btn:active,.btn:focus{background:#777}.btn-a{background:#0ae}.btn-a:hover{background:#09d}.btn-a:active,.btn-a:focus{background:#08b}.btn-b{background:#3c5}.btn-b:hover{background:#2b4}.btn-b:active,.btn-b:focus{background:#2a4}.btn-c{background:#d33}.btn-c:hover{background:#c22}.btn-c:active,.btn-c:focus{background:#b22}.btn-sm{border-radius:4px;padding:10px 14px 11px}.row{margin:1% 0;overflow:auto}.col{float:left}.table,.c12{width:100%}.c11{width:91.66%}.c10{width:83.33%}.c9{width:75%}.c8{width:66.66%}.c7{width:58.33%}.c6{width:50%}.c5{width:41.66%}.c4{width:33.33%}.c3{width:25%}.c2{width:16.66%}.c1{width:8.33%}h1{font-size:3em}.btn,h2{font-size:2em}.ico{font:33px Arial Unicode MS,Lucida Sans Unicode}.addon,.btn-sm,.nav,textarea,input,select{outline:0;font-size:14px}textarea,input,select{padding:8px;border:1px solid #ccc}textarea:focus,input:focus,select:focus{border-color:#5ab}textarea,input[type=text]{-webkit-appearance:none;width:13em}.addon{padding:8px 12px;box-shadow:0 0 0 1px #ccc}.nav,.nav .current,.nav a:hover{background:#000;color:#fff}.nav{height:24px;padding:11px 0 15px}.nav a{color:#aaa;padding-right:1em;position:relative;top:-1px}.nav .pagename{font-size:22px;top:1px}.btn.btn-close{background:#000;float:right;font-size:25px;margin:-54px 7px;display:none}@media(min-width:1310px){.container{margin:auto;width:1270px}}@media(max-width:870px){.row .col{width:100%}}@media(max-width:500px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:#000;border-bottom:10px double;border-top:3px solid;content:'';float:right;height:4px;position:relative;right:3px;top:14px;width:20px}.nav a{padding:.5em 0;display:block;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:#ddd}.msg{padding:1.5em;background:#def;border-left:5px solid #59d} -------------------------------------------------------------------------------- /esp32-projects/esp32-rfid-MFRC522-web-server/data/css/entireframework.min.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Owen Versteeg; MIT licensed */body,textarea,input,select{background:0;border-radius:0;font:16px sans-serif;margin:0}.smooth{transition:all .2s}.btn,.nav a{text-decoration:none}.container{margin:0 20px;width:auto}label>*{display:inline}form>*{display:block;margin-bottom:10px}.btn{background:#999;border-radius:6px;border:0;color:#fff;cursor:pointer;display:inline-block;margin:2px 0;padding:12px 30px 14px}.btn:hover{background:#888}.btn:active,.btn:focus{background:#777}.btn-a{background:#0ae}.btn-a:hover{background:#09d}.btn-a:active,.btn-a:focus{background:#08b}.btn-b{background:#3c5}.btn-b:hover{background:#2b4}.btn-b:active,.btn-b:focus{background:#2a4}.btn-c{background:#d33}.btn-c:hover{background:#c22}.btn-c:active,.btn-c:focus{background:#b22}.btn-sm{border-radius:4px;padding:10px 14px 11px}.row{margin:1% 0;overflow:auto}.col{float:left}.table,.c12{width:100%}.c11{width:91.66%}.c10{width:83.33%}.c9{width:75%}.c8{width:66.66%}.c7{width:58.33%}.c6{width:50%}.c5{width:41.66%}.c4{width:33.33%}.c3{width:25%}.c2{width:16.66%}.c1{width:8.33%}h1{font-size:3em}.btn,h2{font-size:2em}.ico{font:33px Arial Unicode MS,Lucida Sans Unicode}.addon,.btn-sm,.nav,textarea,input,select{outline:0;font-size:14px}textarea,input,select{padding:8px;border:1px solid #ccc}textarea:focus,input:focus,select:focus{border-color:#5ab}textarea,input[type=text]{-webkit-appearance:none;width:13em}.addon{padding:8px 12px;box-shadow:0 0 0 1px #ccc}.nav,.nav .current,.nav a:hover{background:#000;color:#fff}.nav{height:24px;padding:11px 0 15px}.nav a{color:#aaa;padding-right:1em;position:relative;top:-1px}.nav .pagename{font-size:22px;top:1px}.btn.btn-close{background:#000;float:right;font-size:25px;margin:-54px 7px;display:none}@media(min-width:1310px){.container{margin:auto;width:1270px}}@media(max-width:870px){.row .col{width:100%}}@media(max-width:500px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:#000;border-bottom:10px double;border-top:3px solid;content:'';float:right;height:4px;position:relative;right:3px;top:14px;width:20px}.nav a{padding:.5em 0;display:block;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:#ddd}.msg{padding:1.5em;background:#def;border-left:5px solid #59d} -------------------------------------------------------------------------------- /esp32-projects/esp32-robot-car-websockets/data/css/entireframework.min.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Owen Versteeg; MIT licensed */body,textarea,input,select{background:0;border-radius:0;font:16px sans-serif;margin:0}.smooth{transition:all .2s}.btn,.nav a{text-decoration:none}.container{margin:0 20px;width:auto}label>*{display:inline}form>*{display:block;margin-bottom:10px}.btn{background:#999;border-radius:6px;border:0;color:#fff;cursor:pointer;display:inline-block;margin:2px 0;padding:12px 30px 14px}.btn:hover{background:#888}.btn:active,.btn:focus{background:#777}.btn-a{background:#0ae}.btn-a:hover{background:#09d}.btn-a:active,.btn-a:focus{background:#08b}.btn-b{background:#3c5}.btn-b:hover{background:#2b4}.btn-b:active,.btn-b:focus{background:#2a4}.btn-c{background:#d33}.btn-c:hover{background:#c22}.btn-c:active,.btn-c:focus{background:#b22}.btn-sm{border-radius:4px;padding:10px 14px 11px}.row{margin:1% 0;overflow:auto}.col{float:left}.table,.c12{width:100%}.c11{width:91.66%}.c10{width:83.33%}.c9{width:75%}.c8{width:66.66%}.c7{width:58.33%}.c6{width:50%}.c5{width:41.66%}.c4{width:33.33%}.c3{width:25%}.c2{width:16.66%}.c1{width:8.33%}h1{font-size:3em}.btn,h2{font-size:2em}.ico{font:33px Arial Unicode MS,Lucida Sans Unicode}.addon,.btn-sm,.nav,textarea,input,select{outline:0;font-size:14px}textarea,input,select{padding:8px;border:1px solid #ccc}textarea:focus,input:focus,select:focus{border-color:#5ab}textarea,input[type=text]{-webkit-appearance:none;width:13em}.addon{padding:8px 12px;box-shadow:0 0 0 1px #ccc}.nav,.nav .current,.nav a:hover{background:#000;color:#fff}.nav{height:24px;padding:11px 0 15px}.nav a{color:#aaa;padding-right:1em;position:relative;top:-1px}.nav .pagename{font-size:22px;top:1px}.btn.btn-close{background:#000;float:right;font-size:25px;margin:-54px 7px;display:none}@media(min-width:1310px){.container{margin:auto;width:1270px}}@media(max-width:870px){.row .col{width:100%}}@media(max-width:500px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:#000;border-bottom:10px double;border-top:3px solid;content:'';float:right;height:4px;position:relative;right:3px;top:14px;width:20px}.nav a{padding:.5em 0;display:block;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:#ddd}.msg{padding:1.5em;background:#def;border-left:5px solid #59d} -------------------------------------------------------------------------------- /esp8266-projects/esp8266-conveyor-counter-using-webserver/data/entireframework.min.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Owen Versteeg; MIT licensed */body,textarea,input,select{background:0;border-radius:0;font:16px sans-serif;margin:0}.smooth{transition:all .2s}.btn,.nav a{text-decoration:none}.container{margin:0 20px;width:auto}label>*{display:inline}form>*{display:block;margin-bottom:10px}.btn{background:#999;border-radius:6px;border:0;color:#fff;cursor:pointer;display:inline-block;margin:2px 0;padding:12px 30px 14px}.btn:hover{background:#888}.btn:active,.btn:focus{background:#777}.btn-a{background:#0ae}.btn-a:hover{background:#09d}.btn-a:active,.btn-a:focus{background:#08b}.btn-b{background:#3c5}.btn-b:hover{background:#2b4}.btn-b:active,.btn-b:focus{background:#2a4}.btn-c{background:#d33}.btn-c:hover{background:#c22}.btn-c:active,.btn-c:focus{background:#b22}.btn-sm{border-radius:4px;padding:10px 14px 11px}.row{margin:1% 0;overflow:auto}.col{float:left}.table,.c12{width:100%}.c11{width:91.66%}.c10{width:83.33%}.c9{width:75%}.c8{width:66.66%}.c7{width:58.33%}.c6{width:50%}.c5{width:41.66%}.c4{width:33.33%}.c3{width:25%}.c2{width:16.66%}.c1{width:8.33%}h1{font-size:3em}.btn,h2{font-size:2em}.ico{font:33px Arial Unicode MS,Lucida Sans Unicode}.addon,.btn-sm,.nav,textarea,input,select{outline:0;font-size:14px}textarea,input,select{padding:8px;border:1px solid #ccc}textarea:focus,input:focus,select:focus{border-color:#5ab}textarea,input[type=text]{-webkit-appearance:none;width:13em}.addon{padding:8px 12px;box-shadow:0 0 0 1px #ccc}.nav,.nav .current,.nav a:hover{background:#000;color:#fff}.nav{height:24px;padding:11px 0 15px}.nav a{color:#aaa;padding-right:1em;position:relative;top:-1px}.nav .pagename{font-size:22px;top:1px}.btn.btn-close{background:#000;float:right;font-size:25px;margin:-54px 7px;display:none}@media(min-width:1310px){.container{margin:auto;width:1270px}}@media(max-width:870px){.row .col{width:100%}}@media(max-width:500px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:#000;border-bottom:10px double;border-top:3px solid;content:'';float:right;height:4px;position:relative;right:3px;top:14px;width:20px}.nav a{padding:.5em 0;display:block;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:#ddd}.msg{padding:1.5em;background:#def;border-left:5px solid #59d} --------------------------------------------------------------------------------