IoT Solution (WEB, API, Mobile, IoT)
This solution delivers four projects:
- AJKIOT.Web - An application that manages accounts and accesses
- ajk_iot_mobile - A mobile application
- AJKIOT.Api - Endpoints for the WebApp and MobileApp
- ajk_iot_devices - Software for the ESP32/ESP8266 module
100 commits are aimed at providing a solution to support at least one IoT device.
The goal of this project is to create a platform for IoT devices that can operate independently of the manufacturer's cloud services. The software is designed to be installed on your own resources, eliminating dependency on external servers. This architecture ensures full control over the devices even in the event of a global network outage. The project is simplified to ensure easy installation and maintenance.
The primary scenario is to install the API and WEB software on internal resources (e.g., servers within a facility containing IoT devices) and make them accessible externally. This configuration allows device control both from within the local network and from outside. Future releases will include the ability to define an arbitrary number of endpoints and support for new types of devices that will be managed through mobile and web applications.
The API application provides endpoints for all other components: WEB, Mobile, and IoT. Communication between WEB and Mobile occurs via REST requests and websockets using SignalR. IoT devices communicate through the MQTT protocol. All interactions occur in real-time, with interfaces updating to reflect the current status of devices.
- Create an account in the WEB application.
- Go to the "Devices" section and add the devices you have (currently, only two types of devices are supported).
- Download the firmware available under the button on the device card.
- Install the firmware on the device using PlatformIO (a separate guide with ready commands will be available).
- Upon startup, the IoT device will expose an AP to which you need to connect. Then, using the mobile app (recommended) or a browser (address 192.168.4.1), configure the device to connect to the WiFi network visible to the API server.
- Control devices through the mobile or WEB application.
- API: REST, SignalR
- IoT Communication Protocol: MQTT
- Firmware Installation: PlatformIO
The project is designed with simplicity and reliability in mind, emphasizing independence from external servers and flexibility in managing IoT devices.
By dedicating efforts to design this platform, we gain full control over IoT devices, independence from manufacturers' clouds, and ease of installation and management. We invite you to participate in the project and submit improvement proposals on GitHub.
Visit the live site: https://iot.ajksoftware.pl/
The current release version is ready for public testing. Considering the current stage and stability, it is recommended to label this release as a Release Candidate (RC) version.
Consent to test: https://play.google.com/apps/testing/pl.ajksoftware.ajkiot
Link to the application on Google Store: https://play.google.com/store/apps/details?id=pl.ajksoftware.ajkiot
In the first step, install the TestFlight app from the AppStore.
In the second step, click on the link to join the application testing. https://testflight.apple.com/join/piRa838S
Set API Address: https://iot.ajksoftware.pl:7253
ESP-01 (OpenTimer)
ESP32-WROOM-DEVKIT v2 (Switch)