Web Bluetooth Terminal

Progressive Web Application for serial communication with your own Bluetooth Low Energy (Smart) devices

Internet of Things (IoT)C++MIT

Abstract

Web Bluetooth Terminal is an open-source Internet of Things (IoT) project. Progressive Web Application for serial communication with your own Bluetooth Low Energy (Smart) devices. Web Bluetooth Terminal is a website that can connect with the remote devices which support Bluetooth Low Energy (also called Bluetooth Smart) and exchange data bidirectionally. It can be installed on your homescreen as an application and work offline. It is built using C++, Arduino. Key capabilities include: AT - check if the command terminal work normally;; AT+HELP - list all the commands;; AT+BAUD - get/set baud rate;. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.

1. Introduction

Web Bluetooth Terminal is a website that can connect with the remote devices which support Bluetooth Low Energy (also called Bluetooth Smart) and exchange data bidirectionally. It can be installed on your homescreen as an application and work offline.

specification, but needed if you want to make your own BLE IoT devices using affordable bluetooth modules.

The application utilises BLE service (0xFFE0) and characteristic (0xFFE1) available in low cost BLE modules based for example on CC2541 chip, such as HM-10, JDY-08, AT-09, CC41-A and other. Also, it bypasses 20 bytes limit specific for GATT characteristics by keeping incoming messages in a buffer and waiting for the end of line characters.

2. Objective

Progressive Web Application for serial communication with your own Bluetooth Low Energy (Smart) devices

This project demonstrates how C++, Arduino can be applied to a real-world Internet of Things (IoT) problem.

3. Key Features / Modules

  • AT - check if the command terminal work normally;
  • AT+HELP - list all the commands;
  • AT+BAUD - get/set baud rate;
  • AT+DEFAULT — resets the module to the defaults;
  • AT+RESET — resets the module softly;
  • AT+ROLE — gets the module working mode;
  • AT+ROLE0 — makes the module to work in slave mode, waiting for connection from other devices;
  • AT+NAME — gets the module name;
  • AT+NAMESimon — sets the module name to Simon;
  • AT+PIN — gets the module pin (password);

4. Technology Stack

C++Arduino

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Arduino IDE / PlatformIO or a C++ compiler (g++)
  • Target board (e.g. Arduino, ESP32) where applicable
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/loginov-rocks/Web-Bluetooth-Terminal.git
cd Web-Bluetooth-Terminal

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add a mobile dashboard using Blynk or Firebase
  • Store readings in a cloud database for history charts
  • Add alerts via SMS / Telegram when thresholds are crossed

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which microcontroller / board and sensors are used and why?
  2. How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
  3. Where is the sensor data stored and visualised?
  4. How is power consumption managed?
  5. How would you secure the device and its communication?

9. Source Code & License

This project is developed by loginov-rocks and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Internet of Things (IoT) Internship