The device access uses the EMQX message server, encryption and authentication; the back end uses Spring boot; the front end uses Vue; the mobile terminal uses Uniapp; the database uses Mysql, TDengine and Redis; the device side supports ESP32, ESP8266, Raspberry Pi, etc.; the system architecture diagram is as follows
System monitoring: operation logs, login logs, system logs, online users, service monitoring, connection pool monitoring, cache monitoring, etc.
Product management: products, product models, product categories, product firmware, device authorization codes, etc.
Device management: control, grouping, timing, logs, statistics, positioning, sharing, configuration, disabling, OTA upgrade, automatic registration, shadow mode, real-time monitoring, encryption authentication, etc.
EMQ management: Mqtt client, listener, message topic, message subscription, plug-in management, rule engine, resources
Hardware SDK: Supports WIFI and MQTT connections, object model response, real-time monitoring, regular reporting of monitoring data, AES encryption, NTP time, etc.
Object model management: attributes (device status and monitoring data), functions (performing specific tasks), events (device proactively reports to the cloud)
Other functions: multi-tenancy, statistics, news information, notifications and announcements, support for TDengine time series database
Plan to develop and improve functions: device alarms, scene linkage, cloud-cloud connection with smart speakers, device network configuration, third-party login, SMS login, APP interface customization, video stream processing, etc.
Related technologies: Spring boot, MyBatis, Spring Security, Jwt, Mysql, Redis, TDengine, EMQX, Mqtt, etc.
Development tools: IDEA
Web side
Related technologies: ES6, Vue, Vuex, Vue-router, Vue-cli, Axios, Element-ui, etc.
Development tools: Visual Studio Code
Mobile terminal (Android / Ios / WeChat applet / H5)
Related technologies: uniapp, uView, uChart
Development tools: HBuilder
Hardware side
Related technologies: ESP-IDF, Arduino, FreeRTOS, etc.
Development tools: Visual Studio Code and Arduino
Encryption authentication (recommended)
Simple authentication
Other authentication methods supported by EMQX
2. Device interaction
Mqtt topics related to publication model, device information, and clock synchronization
Mqtt topics related to subscription model, device upgrade, and clock synchronization
The project provides a sample SDK, using the ESP8266 chip and developed based on Arduino. (Device burning uses a serial port module, such as Ch340, which comes with most development boards) The wiring diagram is as follows