{"id":1614,"date":"2026-01-30T19:28:38","date_gmt":"2026-01-30T19:28:38","guid":{"rendered":"https:\/\/www.bleuio.com\/blog\/?p=1614"},"modified":"2026-01-30T19:29:24","modified_gmt":"2026-01-30T19:29:24","slug":"developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio","status":"publish","type":"post","link":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/","title":{"rendered":"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO"},"content":{"rendered":"\n<p>Bluetooth Low Energy is often associated with mobile apps, embedded firmware, or cloud gateways. In practice, however, BLE is equally powerful on the desktop. With the right tools, a desktop application can scan, decode, and visualize BLE sensor data in real time\u2014without relying on browsers or mobile platforms.<\/p>\n\n\n\n<p>In this tutorial, we demonstrate how <strong>BleuIO<\/strong> can be used as a flexible BLE interface for desktop applications written in <strong>Rust<\/strong>, using the <strong>Dioxus<\/strong> framework. The result is a native desktop application that scans nearby <strong>HibouAir<\/strong> sensors, decodes their BLE advertisement data, and presents air-quality metrics in a clean, responsive user interface.<\/p>\n\n\n\n<p>This project is intended as a practical example that shows how BleuIO fits naturally into modern desktop development workflows\u2014regardless of programming language.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What We Are Building<\/h2>\n\n\n\n<p>The application is a native desktop air-quality dashboard. It connects to a BleuIO USB dongle over a serial port, puts the dongle into BLE scanning mode, and continuously listens for BLE advertisements from nearby HibouAir sensors. These advertisements contain manufacturer-specific data with environmental measurements such as CO2 concentration, particulate matter, temperature, humidity, pressure, VOC levels, and ambient light.<\/p>\n\n\n\n<p>The desktop application decodes this data locally and displays it in real time. Each detected sensor is shown as its own panel, with a clear header identifying the device type and a structured content area showing the latest measurements.<\/p>\n\n\n\n<p>The entire solution runs locally on the user\u2019s computer. There is no cloud dependency, no browser runtime, and no mobile device involved.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Rust and Dioxus?<\/h2>\n\n\n\n<p>Rust has become increasingly popular for system-level and desktop applications because it combines performance, memory safety, and strong tooling. For BLE applications that involve continuous serial communication and real-time data processing, these properties are particularly valuable.<\/p>\n\n\n\n<p>Dioxus is a Rust UI framework inspired by modern component-based design. It allows developers to build native desktop interfaces using a declarative approach while still compiling to a true desktop binary. In this project, Dioxus is used to render the dashboard, manage state updates as sensor data arrives, and keep the UI responsive even during continuous BLE scanning.<\/p>\n\n\n\n<p>The combination of Rust, Dioxus, and BleuIO demonstrates that desktop BLE applications do not need to rely on platform-specific SDKs or heavyweight frameworks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements<\/h2>\n\n\n\n<p>To run this project, the following hardware and software are required:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hardware<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/www.bleuio.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">BleuIO USB BLE dongle<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.hibouair.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">HibouAir air-quality sensor<\/a><\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Software<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Rust toolchain (stable)<\/strong><br><a href=\"https:\/\/www.rust-lang.org\/tools\/install\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.rust-lang.org\/tools\/install<\/a><\/li>\n\n\n\n<li><strong>Dioxus CLI<\/strong><br><a href=\"https:\/\/dioxuslabs.com\/learn\/0.5\/getting_started\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dioxuslabs.com\/learn\/0.5\/getting_started<\/a><\/li>\n\n\n\n<li>A supported desktop operating system (macOS, Linux, or Windows)<\/li>\n<\/ul>\n\n\n\n<p>No proprietary SDKs or BLE drivers are required. BleuIO communicates using standard AT commands over a serial interface, making the setup lightweight and portable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How the Project Works Internally<\/h2>\n\n\n\n<p>When the application starts, it first searches for a connected BleuIO dongle by scanning available serial ports and matching the dongle\u2019s USB vendor and product IDs. Once the correct device is found, the application opens the serial port and initializes the dongle by disabling command echo and enabling verbose mode.<\/p>\n\n\n\n<p>After initialization, the application instructs BleuIO to start scanning for BLE advertisements that match HibouAir\u2019s manufacturer identifier. BleuIO then streams scan results back to the application as JSON-formatted lines over the serial connection.<\/p>\n\n\n\n<p>Each incoming scan packet is parsed and inspected. The application locates the BLE manufacturer-specific data, verifies that it belongs to HibouAir, and decodes the payload into a structured Rust data type. To ensure stable and predictable readings, only the full advertisement format used by HibouAir beacon type <code>0x05<\/code> is processed. Partial or auxiliary beacon formats are ignored in this example project.<\/p>\n\n\n\n<p>Decoded sensor data is stored in memory and immediately reflected in the user interface. As new advertisements arrive, the corresponding sensor panel updates automatically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Project Structure<\/h2>\n\n\n\n<p>The source code is organized into clear, functional modules. UI components are separated from BLE logic and data models, making the project easy to understand and extend. The main application entry point configures the desktop window and mounts the dashboard component. BLE communication is encapsulated in a dedicated hook that runs asynchronously and feeds decoded sensor data into the UI layer.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>src\/\n\u251c\u2500\u2500 components\/\n\u2502   \u251c\u2500\u2500 dashboard.rs\n\u2502   \u251c\u2500\u2500 sensor_panel.rs\n\u2502   \u2514\u2500\u2500 mod.rs\n\u251c\u2500\u2500 hooks\/\n\u2502   \u251c\u2500\u2500 use_bleuio.rs\n\u2502   \u2514\u2500\u2500 mod.rs\n\u251c\u2500\u2500 models\/\n\u2502   \u251c\u2500\u2500 bleuio.rs\n\u2502   \u251c\u2500\u2500 hibouair.rs\n\u2502   \u251c\u2500\u2500 sensor_data.rs\n\u2502   \u2514\u2500\u2500 mod.rs\n\u251c\u2500\u2500 main.rs\nassets\/\n\u251c\u2500\u2500 main.css\n\u251c\u2500\u2500 tailwind.css\n\u2514\u2500\u2500 favicon.ico<\/code><\/pre>\n\n\n\n<p>This structure mirrors how larger Rust desktop applications are typically organized, and it provides a solid foundation for adding features such as data logging, historical charts, filtering, or export functionality.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Source Code and How to Run the Project<\/h2>\n\n\n\n<p>The complete source code for this project is publicly available on GitHub:<\/p>\n\n\n\n<p><strong>GitHub repository:<\/strong><br><a href=\"https:\/\/github.com\/smart-sensor-devices-ab\/hibouair-bleuio-rust-readltime-desktop\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/smart-sensor-devices-ab\/hibouair-bleuio-rust-readltime-desktop<\/a><\/p>\n\n\n\n<p>After cloning the repository, the application can be run in development mode using the Dioxus CLI. This launches the desktop window and enables hot reloading, which is useful when experimenting with UI changes or decoding logic. The project can also be built and run using standard Cargo commands, producing a native desktop binary.<\/p>\n\n\n\n<p>Because the code is open and self-contained, developers are free to study it, modify it, or reuse parts of it in their own BLE-based desktop applications.<\/p>\n\n\n\n<p>The complete instruction on how to run this project is available on the <strong><a href=\"https:\/\/github.com\/smart-sensor-devices-ab\/hibouair-bleuio-rust-readltime-desktop\/blob\/master\/README.md\" target=\"_blank\" rel=\"noreferrer noopener\">Readme file<\/a><\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Application Output<\/h2>\n\n\n\n<p>When running, the application displays a dashboard with one panel per detected HibouAir sensor. Each panel includes a colored header identifying the sensor type, followed by a white content area showing live air-quality measurements. Values update continuously as new BLE advertisements are received, providing an immediate view of the surrounding environment.<\/p>\n\n\n\n<p>A screenshot of the running application is shown below to illustrate the final result.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"594\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/image-11-1024x594.png\" alt=\"\" class=\"wp-image-1615\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/image-11-1024x594.png 1024w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/image-11-300x174.png 300w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/image-11-768x445.png 768w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/image-11-1536x890.png 1536w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/image-11-2048x1187.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This project is intentionally kept simple. It is not a finished product, but rather an educational example that demonstrates how <strong>BleuIO can be used with Rust and Dioxus to build a native desktop BLE application<\/strong>. The source code is public, easy to follow, and designed to be extended.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bluetooth Low Energy is often associated with mobile apps, embedded firmware, or cloud gateways. In practice, however, BLE is equally powerful on the desktop. With the right tools, a desktop application can scan, decode, and visualize BLE sensor data in real time\u2014without relying on browsers or mobile platforms. In this tutorial, we demonstrate how BleuIO [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1617,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1614","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bleuio-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO - BleuIO - Create Bluetooth Low Energy application<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO - BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"og:description\" content=\"Bluetooth Low Energy is often associated with mobile apps, embedded firmware, or cloud gateways. In practice, however, BLE is equally powerful on the desktop. With the right tools, a desktop application can scan, decode, and visualize BLE sensor data in real time\u2014without relying on browsers or mobile platforms. In this tutorial, we demonstrate how BleuIO [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/\" \/>\n<meta property=\"og:site_name\" content=\"BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-30T19:28:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-30T19:29:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/bleuio-ble-app-with-rust.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"BleuIO\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/\"},\"author\":{\"name\":\"BleuIO\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"headline\":\"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO\",\"datePublished\":\"2026-01-30T19:28:38+00:00\",\"dateModified\":\"2026-01-30T19:29:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/\"},\"wordCount\":954,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/bleuio-ble-app-with-rust.jpg\",\"articleSection\":[\"BleuIO tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/\",\"name\":\"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO - BleuIO - Create Bluetooth Low Energy application\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/bleuio-ble-app-with-rust.jpg\",\"datePublished\":\"2026-01-30T19:28:38+00:00\",\"dateModified\":\"2026-01-30T19:29:24+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/bleuio-ble-app-with-rust.jpg\",\"contentUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/bleuio-ble-app-with-rust.jpg\",\"width\":800,\"height\":450,\"caption\":\"bleuio ble app with rust\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/\",\"name\":\"BleuIO - Create Bluetooth Low Energy application\",\"description\":\"Learn Bluetooth Low Energy programming and build Bluetooth Low Energy Application\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\",\"name\":\"BleuIO\",\"sameAs\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/author\\\/biadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO - BleuIO - Create Bluetooth Low Energy application","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/","og_locale":"en_US","og_type":"article","og_title":"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO - BleuIO - Create Bluetooth Low Energy application","og_description":"Bluetooth Low Energy is often associated with mobile apps, embedded firmware, or cloud gateways. In practice, however, BLE is equally powerful on the desktop. With the right tools, a desktop application can scan, decode, and visualize BLE sensor data in real time\u2014without relying on browsers or mobile platforms. In this tutorial, we demonstrate how BleuIO [&hellip;]","og_url":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/","og_site_name":"BleuIO - Create Bluetooth Low Energy application","article_published_time":"2026-01-30T19:28:38+00:00","article_modified_time":"2026-01-30T19:29:24+00:00","og_image":[{"width":800,"height":450,"url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/bleuio-ble-app-with-rust.jpg","type":"image\/jpeg"}],"author":"BleuIO","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/#article","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/"},"author":{"name":"BleuIO","@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"headline":"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO","datePublished":"2026-01-30T19:28:38+00:00","dateModified":"2026-01-30T19:29:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/"},"wordCount":954,"commentCount":0,"image":{"@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/bleuio-ble-app-with-rust.jpg","articleSection":["BleuIO tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/","url":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/","name":"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO - BleuIO - Create Bluetooth Low Energy application","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/#primaryimage"},"image":{"@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/bleuio-ble-app-with-rust.jpg","datePublished":"2026-01-30T19:28:38+00:00","dateModified":"2026-01-30T19:29:24+00:00","author":{"@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"breadcrumb":{"@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/#primaryimage","url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/bleuio-ble-app-with-rust.jpg","contentUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/01\/bleuio-ble-app-with-rust.jpg","width":800,"height":450,"caption":"bleuio ble app with rust"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bleuio.com\/blog\/developing-a-desktop-ble-air-quality-application-with-rust-dioxus-and-bleuio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bleuio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Developing a Desktop BLE Air-Quality Application with Rust, Dioxus, and BleuIO"}]},{"@type":"WebSite","@id":"https:\/\/www.bleuio.com\/blog\/#website","url":"https:\/\/www.bleuio.com\/blog\/","name":"BleuIO - Create Bluetooth Low Energy application","description":"Learn Bluetooth Low Energy programming and build Bluetooth Low Energy Application","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bleuio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80","name":"BleuIO","sameAs":["https:\/\/www.bleuio.com\/blog"],"url":"https:\/\/www.bleuio.com\/blog\/author\/biadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/1614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/comments?post=1614"}],"version-history":[{"count":2,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/1614\/revisions"}],"predecessor-version":[{"id":1619,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/1614\/revisions\/1619"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media\/1617"}],"wp:attachment":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media?parent=1614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/categories?post=1614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/tags?post=1614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}