{"id":26539751,"url":"https://github.com/controllercustom/wifi_control","last_synced_at":"2026-04-28T16:04:17.751Z","repository":{"id":282770113,"uuid":"948226032","full_name":"controllercustom/wifi_control","owner":"controllercustom","description":"Voice Control for Arduino projects with web user interface","archived":false,"fork":false,"pushed_at":"2025-03-16T20:30:51.000Z","size":395,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T21:25:02.568Z","etag":null,"topics":["arduino","assistive-technology","esp32","pi-pico-w","spe","spee","speech-recognition","voice-recognition"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/controllercustom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-14T00:46:13.000Z","updated_at":"2025-03-16T20:30:54.000Z","dependencies_parsed_at":"2025-03-17T04:31:02.092Z","dependency_job_id":null,"html_url":"https://github.com/controllercustom/wifi_control","commit_stats":null,"previous_names":["controllercustom/wifi_control"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/controllercustom/wifi_control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fwifi_control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fwifi_control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fwifi_control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fwifi_control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/controllercustom","download_url":"https://codeload.github.com/controllercustom/wifi_control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/controllercustom%2Fwifi_control/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261037159,"owners_count":23100933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","assistive-technology","esp32","pi-pico-w","spe","spee","speech-recognition","voice-recognition"],"created_at":"2025-03-22T00:18:49.385Z","updated_at":"2026-04-28T16:04:17.656Z","avatar_url":"https://github.com/controllercustom.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wifi_control -- Add voice control to your Arduino project\n\nApple iPhones and iPads have numerous accessibility features such as voice\ncontrol and eye gaze tracking (newer models). MacOS computers have built-in\nsupport for camera based head tracking and voice control. Windows computers\nwith the installation of third party software support various accessibility\nmethods such as eye gaze and camera based head tracking, etc. Windows 11\nAccessibility supports \"Voice Access\" which is similar to \"Voice Control\" on\nApple devices.\n\nThis Arduino project demonstrates the use of a web page interface to bridge\nbetween iPhone and iPad Voice Control and microcontroller boards with WiFi. The\nsupported boards are Raspberry Pi Pico W, Raspberry Pi Pico 2 W, and ESP32 with\nWiFi.\n\nOther access methods such as eye gaze and head tracking may also be used but\nthe focus here is on Apple Accessibility Voice Control.\n\nFor simplicity, a single LED is supported but any hardware a microcontroller\ncan control may have a web page interface. For example, motors, servos, relays,\nLED strings and arrays, TV IR senders, etc.\n\n\u003ckbd\u003e\u003cimg alt=\"Block diagram showing Voice Control via WiFi to Pi Pico W, Pi Pico 2 W boards, or ESP32\" src=\"./images/system_diagram.svg\"\u003e\u003c/kbd\u003e\n\nBoth Apple and Microsoft promise Voice Control and Voice Access do all voice\nprocessing on the device. Voice recordings are not sent to servers in the\nInternet cloud. But be sure to turn off any voice diagnostic or improvement\noptions because enabling these options do send recordings back to Apple or\nMicrosoft.\n\nIf you are using Amazon Echo devices, be aware as of March 28, 2025 all voice\nrecordings will be sent to Amazon servers for processing. The private local\nvoice processing option will be removed.\n\n## Control an LED using Voice Control\n\n![iPad Safari WiFiControl screen](./images/ipad/voice_control.jpg)\n\nSafari is connected to the web server on the WiFi board with Voice Control\nenabled. Since the application is trivial, there are only two options on the\nweb page for LED on and LED off. The targets are large as possible to make them\neasy to press. The LED on the WiFi board can be controlled by touching the\nscreen. Or by speaking the number next to the targets. For example, speaking\n\"10\" turns the LED on. Another option is to speak the name of the target. For\nexample, speaking \"Tap LED off\" turns the LED off.\n\nThe Voice Control configuration screen on an iPad is shown next. The iPhone\nscreen is nearly identical so it is not shown.\n\n![iPad Accessibility Voice Control options](./images/ipad/enable_voice_control.jpg)\n\n## Control an LED using Windows 11 Voice Access\n\n![Windows 11 Chrome WiFiControl.local](./images/win11/chrome.jpg)\n\nSince the buttons have labels, the LED can be turned on by saying \"click LED\non\".\n\n![Windows 11 Chrome WiFiControl.local show grid](./images/win11/show_grid.jpg)\n\nTurn on the mouse grid by saying \"show grid\". Saying \"click 6\" turns the LED off.\n\n![Windows 11 Chrome WiFiControl.local show numbers](./images/win11/show_numbers.jpg)\n\nTurn on the mouse numbers by saying \"show numbers\". Saying \"click 27\" turns the LED on.\n\n## Hardware\n\nOne of the following.\n\n* Pi Pico W\n* Pi Pico 2 W\n* ESP32 with WiFi\n\n## Software\n\nArduino IDE 1.8.19 with the Arduino-Pico board package by Earle F. Philhower,\nIII. This project should work with the Arduino IDE 2.x. This project also works\nwith ESP32 boards although most of the testing has been done on a Pi Pico W\nboard.\n\n[Installation instructions for the Arduino IDE](https://www.arduino.cc/en/software)\n\n[Installation instructions for Arduino-Pico boards](https://arduino-pico.readthedocs.io/en/latest/install.html)\n\n[Installation instructions for ESP32 boards](https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html)\n\nOnce the Board option is set to \"Raspberry Pi Pico W\", the other options are\nleft at default values.\n\n![IDE build options for Pi Pico W](./images/build_options.jpg)\n\nOnce the Board option is set to \"ESP32 Dev Module\", the other options are left at\ndefault values. This board does not have a built-in LED but other variants do.\n\n![IDE build options for ESP32 Dev Module](./images/build_options_eps32_dev_module.jpg)\n\n\n## Libraries\n\nThe library is installed using the IDE Library Manager.\n\n* \"WebSockets\" by Markus Sattler\n\n## secrets.h is missing\n\nsecrets.h is not included because it must contain the SSID and passphrase for\nyour WiFi network. Or you can modify the INO file to remove `#include\n\"secrets.h` then add your SSID and passphrase to the INO file. Be sure not to\npublish your secrets to the world.\n\nsecrets.h should include something like the following.\n\n```c\n#define STASSID \"myssid\"\n#define STAPSK \"mypassphrase\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontrollercustom%2Fwifi_control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontrollercustom%2Fwifi_control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontrollercustom%2Fwifi_control/lists"}