GitHub - emqx/thing-loom: Build real, connected hardware from one prompt.
ThingLoom
[](https://github.com/emqx/thing-loom#thingloom) Chinese version
> **Build your smart home with one prompt.**
ThingLoom turns a natural-language request into a verified, working path from a physical sensor to a live dashboard. An agent guides the wiring, generates the firmware, flashes the board, provisions secure messaging, and checks a real reading before calling the project complete.
Why ThingLoom
[](https://github.com/emqx/thing-loom#why-thingloom)
Building even a small smart-home device usually means stitching together board drivers, firmware, Wi-Fi, MQTT, TLS, cloud credentials, and a dashboard. Most tutorials stop after generating code. ThingLoom packages that knowledge into reusable agent skills and treats **real telemetry from real hardware** as the definition of done.
The goal is not another IoT framework. It is the shortest reliable path from an idea to a connected device:
``` One prompt -> wire the sensor -> generate and flash firmware -> publish over secure MQTT -> verify the real message -> open a live dashboard -> store and explore history (TODO) ```
Before you start
[](https://github.com/emqx/thing-loom#before-you-start)
Bring an ESP32 development board, a supported sensor such as a DHT22 or BH1750FVI, a USB data cable, jumper wires, and access to a 2.4 GHz Wi-Fi network. That is enough to begin. Choose the disposable Zero EMQX environment for a quick demo, or connect your own MQTT broker for an existing deployment. If you need a reliable long-term broker but do not have one, create an EMQX Cloud Serverless or Dedicated Flex deployment.
Try a project
[](https://github.com/emqx/thing-loom#try-a-project) Start with either verified end-to-end skill:
Temperature and humidity
[](https://github.com/emqx/thing-loom#temperature-and-humidity)
git clone https://github.com/emqx/thing-loom.git cd thing-loom/dht22 codex
Then ask:
``` Build me a temperature and humidity monitor. ```
The skill takes the project through wiring, broker setup, firmware compilation and flashing, MQTT verification, and a local or remote live dashboard. See the DHT22 project for hardware and security details.
Ambient light
[](https://github.com/emqx/thing-loom#ambient-light)
cd thing-loom/bh1750 codex
Then ask:
``` Build me an ambient-light monitor. ```
The BH1750FVI project follows the same verified path and publishes real illuminance readings in lux.
The toolchain
[](https://github.com/emqx/thing-loom#the-toolchain) | Tool | Role | | --- | --- | | Agent Skills | Turn a prompt into a repeatable hardware workflow. | | Arduino CLI | Compile, flash, and monitor ESP32 firmware. | | EMQX Cloud | Create a managed Serverless or Dedicated Flex broker when you do not already have one. | | Zero EMQX | Create an isolated, disposable MQTT namespace with authenticated MQTTS and WSS transport. | | MQTTX CLI | Independently verify that the device message reached MQTT. | | Cloudflare Workers Static Assets | Publish the live browser dashboard when a remote URL is requested. | | EMQX Tables | **TODO:** persist, query, and visualize device telemetry as time-series data. |
From a first reading to a lasting smart home
[](https://github.com/emqx/thing-loom#from-a-first-reading-to-a-lasting-smart-home) Zero EMQX is designed for prototypes, demos, and first-run validation. Its namespaces expire automatically and the service provides no SLA, so it should not carry production traffic.
When your device needs persistent credentials, long-term operation, an SLA, or production capacity, use your own broker or create an EMQX Cloud deployment. Choose **Serverless** for a simple usage-based start, or **Dedicated Flex** for dedicated resources, higher performance, and enterprise capabilities. EMQX Tables then keeps MQTT telemetry in the same managed platform for historical queries, analytics, and visualization.
Principles
[](https://github.com/emqx/thing-loom#principles)
- A generated project is not complete until a real device publishes a valid reading.
- Credentials stay in local, Git-ignored files and are never printed in chat or logs.
- One proven vertical slice comes before a generic device framework or a catalog of sensors.
Roadmap
[](https://github.com/emqx/thing-loom#roadmap)
- ESP32-C6 + DHT22 -> secure MQTT -> live dashboard
- ESP32-C6 + BH1750FVI -> secure MQTT -> live dashboard
- MQTT -> EMQX Tables time-series storage
- Historical charts, alerts, and long-running smart-home deployments
- More verified sensor skills
Build our intelligent world together
[](https://github.com/emqx/thing-loom#build-our-intelligent-world-together)
Every proven skill can turn another maze of wiring, firmware, protocols, and cloud services into one simple request. Bring a sensor, an idea, or a working end-to-end path—and help make technology feel less like configuration and more like creation.
Use the skill contribution template to add a proven hardware-to-dashboard path of your own.
> **Join us. Let complex work begin with one sentence.**
License
[](https://github.com/emqx/thing-loom#license) MIT