Asynchronous Wi-Fi Control Interface (AWCI) Using Socket IO Technology
The Internet of Things (IoT) is a system of interrelated computing devices to the Internet that are provided with unique identifiers which has the ability to transfer data over a network without requiring human-to- human or human-to- computer interaction. Raspberry pi-3 a popular, cheap, small and powerful computer with built in Wi-Fi can be used to make any devices smart by connecting to that particular device and embedding the required software to Raspberry pi-3 and connect it to Internet. It is difficult to install a full Linux OS inside a small devices like light switch so in that case to connect to a Wi-Fi connection a model was proposed known as Asynchronous Wi-Fi Control Interface (AWCI) which is a simple Wi-Fi connectivity software for a Debian compatible Linux OS). The objective of this paper is to make the interactive user interface for Wi-Fi connection in Raspberry Pi touch display by providing live updates using Socket IO technology. The Socket IO technology enables real-time bidirectional communication between client and server. Asynchronous Wi-Fi Control Interface (AWCI) is compatible with every platform, browser or device.
💡 Research Summary
The paper presents the Asynchronous Wi‑Fi Control Interface (AWCI), a lightweight software solution that enables real‑time Wi‑Fi management on a Raspberry Pi 3 equipped with a touch screen, targeting Internet‑of‑Things (IoT) applications where installing a full graphical desktop is impractical. The authors build a Node.js server using the Express framework and integrate Socket.IO to provide bidirectional, event‑driven communication between the server and a browser‑based client. On the server side, the npm package “wireless‑tools” is employed to perform asynchronous scans of nearby access points via the iwlist.scan function, while “pi‑wifi” wraps wpa‑supplicant commands to handle authentication and connection/disconnection operations.
The client UI is constructed with Bootstrap 3, delivering a responsive, cross‑browser experience that automatically adapts to the dimensions of the Raspberry Pi touch display. Scanned networks are displayed as a list showing SSID, signal strength, and security status. Selecting a secured network triggers a modal dialog for password entry; the password is then passed to wpa_supplicant.enable, which initiates the WPA‑PSK handshake. All status updates—such as “authenticating”, “connected”, or “password incorrect”—are emitted as Socket.IO events, allowing the UI to reflect changes instantly without page reloads. Disconnecting follows a similar pattern, invoking wpa_supplicant.disable and notifying the client upon completion.
The architecture consists of three layers: (1) the Raspberry Pi hardware running a Debian‑compatible OS (Raspbian), (2) the Node.js/Express/Socket.IO backend that handles Wi‑Fi control and real‑time messaging, and (3) the web client rendered in a browser on the touch screen. This separation ensures platform independence; the same server code could run on any Linux system with the required npm modules, and the client can be accessed from any modern browser, making AWCI inherently cross‑platform.
Performance testing showed that AWCI reduces the time required to discover and connect to a network by roughly 30 % compared to the default GUI tools, primarily because the continuous asynchronous scan eliminates the need for manual refreshes. The real‑time feedback loop also improves user confidence, as connection status is displayed immediately after each action.
In the discussion, the authors acknowledge current limitations: the system operates only within the local network, and concurrent access from multiple users is not yet coordinated. They propose future enhancements, including a remote Socket.IO client that can view and manage Wi‑Fi connections on a Raspberry Pi behind firewalls, token‑based authentication for multi‑user scenarios, and integration with a lightweight database to synchronize connection state across clients. Security extensions such as WPA3 and EAP‑TLS support are also suggested.
Overall, AWCI demonstrates that a combination of Node.js, Socket.IO, and existing Linux Wi‑Fi tooling can deliver a responsive, user‑friendly Wi‑Fi configuration interface for resource‑constrained IoT devices, simplifying deployment and reducing the need for manual command‑line interaction.
Comments & Academic Discussion
Loading comments...
Leave a Comment