{"id":1634,"date":"2026-02-27T11:16:13","date_gmt":"2026-02-27T11:16:13","guid":{"rendered":"https:\/\/www.bleuio.com\/blog\/?p=1634"},"modified":"2026-02-27T12:21:38","modified_gmt":"2026-02-27T12:21:38","slug":"integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2","status":"publish","type":"post","link":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/","title":{"rendered":"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2)"},"content":{"rendered":"\n<p>In the <strong><a href=\"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-for-seamless-ble-applications\/\" target=\"_blank\" rel=\"noreferrer noopener\">previous project<\/a><\/strong>, we focused on getting <strong>Teensy 4.1<\/strong> working as a USB Host for the <strong>BleuIO<\/strong>. The goal was simple: remove the PC from the equation and prove that a microcontroller could directly control BleuIO and communicate over BLE using AT commands.<\/p>\n\n\n\n<p>This project builds on that foundation and does something practical with it. Instead of manually sending commands and observing responses, we now create a complete scanner that automatically detects nearby HibouAir sensors, reads their BLE advertisement data, decodes it, and prints meaningful environmental values in real time.<\/p>\n\n\n\n<p>At this point, the system stops being a connectivity demo and becomes an actual application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardware Requirements<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.digikey.pt\/pt\/products\/detail\/sparkfun-electronics\/20359\/16688101\" target=\"_blank\" rel=\"noreferrer noopener\">Teensy 4.1<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bleuio.com\/bluetooth-low-energy-usb-ssd025.php\" target=\"_blank\" rel=\"noreferrer noopener\">BleuIO<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hibouair.com\/specifications-air-quality-monitor-co2-sensor.php\" target=\"_blank\" rel=\"noreferrer noopener\">HibouAir Air quality monitoring sensor<\/a><\/li>\n\n\n\n<li>USB cable<\/li>\n\n\n\n<li><a href=\"https:\/\/www.bleuio.com\/accessories.php#usbTypeAConnectorBoardv\" target=\"_blank\" rel=\"noreferrer noopener\">USB TYPE A pcb adaptor<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.arduino.cc\/en\/software\/\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino IDE 2.x<\/a><\/li>\n\n\n\n<li>ArduinoJson library (v7.x or compatible)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Software Requirements<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\">Install ArduinoJson<\/h5>\n\n\n\n<p>This project uses <strong>ArduinoJson<\/strong> to parse scan results from BleuIO.<\/p>\n\n\n\n<p>In Arduino IDE:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>Library Manager<\/strong><\/li>\n\n\n\n<li>Search for <code>arduinojson<\/code><\/li>\n\n\n\n<li>Install version 7.x or compatible<\/li>\n<\/ol>\n\n\n\n<p>ArduinoJson is required to deserialize the JSON scan data received from BleuIO.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"808\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/image-6.png\" alt=\"\" class=\"wp-image-1636\" style=\"width:285px;height:auto\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/image-6.png 614w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/image-6-228x300.png 228w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How it Works<\/h2>\n\n\n\n<p>The architecture remains the same as in Part 1, but now it is used with purpose.<\/p>\n\n\n\n<p>Teensy operates in USB Host mode and communicates directly with BleuIO. BleuIO handles all Bluetooth Low Energy scanning internally and outputs scan results as structured JSON strings over USB serial. Teensy receives those strings, parses the JSON content, extracts the manufacturer-specific payload, and decodes it into usable values.<\/p>\n\n\n\n<p>Conceptually, the flow looks like this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Teensy 4.1 (USB Host + Application Logic)<br>        \u2193<br>BleuIO (BLE Scanning Engine)<br>        \u2193<br>BLE Advertisement Data (JSON)<br>        \u2193<br>HibouAir Decoder<br>        \u2193<br>Readable Environmental Measurements<\/pre>\n\n\n\n<p>The important thing to notice here is that Teensy never deals with BLE packets directly. There is no radio handling, no GAP or GATT management, and no BLE stack integration. Everything related to Bluetooth stays inside BleuIO. The microcontroller simply receives structured scan results and processes them like any other data stream.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Automatic Startup and Scanning<\/h2>\n\n\n\n<p>When the firmware starts, it configures BleuIO automatically. It disables command echo, enables verbose mode, and then sends a filtered scan command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">AT+FINDSCANDATA=FF5B07<\/pre>\n\n\n\n<p>This tells BleuIO to report only devices containing the HibouAir manufacturer identifier. From that moment, scan results begin arriving continuously as JSON lines.<\/p>\n\n\n\n<p>Each line contains fields such as the device address and a <code>data<\/code> field containing the manufacturer payload in hex format. That hex string is where the sensor readings are encoded.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Parsing the JSON Data<\/h2>\n\n\n\n<p>Since scan data arrives asynchronously, the project includes a small USB serial line reader. It buffers incoming characters until a newline is detected, ensuring that we always attempt to parse complete JSON messages.<\/p>\n\n\n\n<p>The ArduinoJson library is used to deserialize each line into a <code>JsonDocument<\/code>. Once deserialized, we check that the expected scan fields are present. If so, we extract the hex-encoded manufacturer payload and pass it to the <code>HibouAir<\/code> decoder.<\/p>\n\n\n\n<p>At this stage, the data is still raw \u2014 just a long hex string representing packed bytes from the BLE advertisement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Decoding the HibouAir Advertisement Payload<\/h2>\n\n\n\n<p>The core of this project is the <code>HibouAir<\/code> structure. Instead of manually extracting bytes in the main loop, the decoding logic is encapsulated in a dedicated class.<\/p>\n\n\n\n<p>The constructor receives the JSON document, extracts the <code>data<\/code> field, and interprets the hex string as a packed binary structure. Using <code>offsetof()<\/code> ensures that the correct byte offsets are used, and helper functions convert the hex pairs into integers. Because the BLE advertisement uses little-endian ordering, some fields require byte swapping before they become meaningful.<\/p>\n\n\n\n<p>Once decoded, the class provides clean accessor functions such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>getTemp()<\/code><\/li>\n\n\n\n<li><code>getHum()<\/code><\/li>\n\n\n\n<li><code>getBar()<\/code><\/li>\n\n\n\n<li><code>getCo2()<\/code><\/li>\n\n\n\n<li><code>getPM2_5()<\/code><\/li>\n<\/ul>\n\n\n\n<p>These functions already return properly scaled values. For example, temperature is divided by 10 to convert from raw integer format to degrees Celsius.<\/p>\n\n\n\n<p>This separation keeps the application logic simple. The main loop only needs to create a <code>HibouAir<\/code> object and call <code>show_sensor()<\/code> to print the values.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example Output<\/h2>\n\n\n\n<p>When running the project with a nearby HibouAir sensor, the Serial Monitor shows structured environmental readings like this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Sensor ID: 22008C<br>Light: 14 Lux<br>Pressure: 1007.3 hPA<br>Temperature: 22.9 C<br>Humidity: 14.1 %rh<br>CO2: 508 ppm<\/pre>\n\n\n\n<p>For particulate matter devices, additional values appear:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">PM 1.0: 0.0 ug\/m3<br>PM 2.5: 1.2 ug\/m3<br>PM 10: 2.5 ug\/m3<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"864\" height=\"1024\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/image-5-864x1024.png\" alt=\"\" class=\"wp-image-1635\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/image-5-864x1024.png 864w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/image-5-253x300.png 253w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/image-5-768x910.png 768w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/image-5.png 962w\" sizes=\"auto, (max-width: 864px) 100vw, 864px\" \/><\/figure>\n\n\n\n<p>This output is generated directly from BLE advertisements without establishing a connection to the sensor. The sensors simply broadcast their measurements, and the system passively collects and decodes them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GitHub Repository<\/h2>\n\n\n\n<p>The complete source code for this project is available here:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/smart-sensor-devices-ab\/bleuio-teensy-hibouair-scanner\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/smart-sensor-devices-ab\/bleuio-teensy-hibouair-scanner<\/a><\/p>\n\n\n\n<p>You can clone the repository, install the ArduinoJson library through the Arduino IDE Library Manager, upload the sketch to Teensy 4.1, and run it immediately. The code is modular and organized so you can reuse the USB line reader, the HibouAir decoder, or the scanning logic in your own applications.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>With this foundation in place, several natural extensions become possible. You could store measurements on an SD card, publish them via MQTT, expose them through a REST interface, or even build a complete air-quality gateway. The BLE side does not need to change.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the previous project, we focused on getting Teensy 4.1 working as a USB Host for the BleuIO. The goal was simple: remove the PC from the equation and prove that a microcontroller could directly control BleuIO and communicate over BLE using AT commands. This project builds on that foundation and does something practical with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1638,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,2],"tags":[],"class_list":["post-1634","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bleuio","category-bleuio-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2) - 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\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2) - BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"og:description\" content=\"In the previous project, we focused on getting Teensy 4.1 working as a USB Host for the BleuIO. The goal was simple: remove the PC from the equation and prove that a microcontroller could directly control BleuIO and communicate over BLE using AT commands. This project builds on that foundation and does something practical with [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-27T11:16:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-27T12:21:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/bleuio-teensy-hibouair.webp\" \/>\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\/webp\" \/>\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\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/\"},\"author\":{\"name\":\"BleuIO\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"headline\":\"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2)\",\"datePublished\":\"2026-02-27T11:16:13+00:00\",\"dateModified\":\"2026-02-27T12:21:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/\"},\"wordCount\":778,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/bleuio-teensy-hibouair.webp\",\"articleSection\":[\"BleuIO\",\"BleuIO tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/\",\"name\":\"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2) - BleuIO - Create Bluetooth Low Energy application\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/bleuio-teensy-hibouair.webp\",\"datePublished\":\"2026-02-27T11:16:13+00:00\",\"dateModified\":\"2026-02-27T12:21:38+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/bleuio-teensy-hibouair.webp\",\"contentUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/bleuio-teensy-hibouair.webp\",\"width\":800,\"height\":450,\"caption\":\"bleuio teensy hibouair\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2)\"}]},{\"@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":"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2) - 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\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/","og_locale":"en_US","og_type":"article","og_title":"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2) - BleuIO - Create Bluetooth Low Energy application","og_description":"In the previous project, we focused on getting Teensy 4.1 working as a USB Host for the BleuIO. The goal was simple: remove the PC from the equation and prove that a microcontroller could directly control BleuIO and communicate over BLE using AT commands. This project builds on that foundation and does something practical with [&hellip;]","og_url":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/","og_site_name":"BleuIO - Create Bluetooth Low Energy application","article_published_time":"2026-02-27T11:16:13+00:00","article_modified_time":"2026-02-27T12:21:38+00:00","og_image":[{"width":800,"height":450,"url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/bleuio-teensy-hibouair.webp","type":"image\/webp"}],"author":"BleuIO","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/#article","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/"},"author":{"name":"BleuIO","@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"headline":"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2)","datePublished":"2026-02-27T11:16:13+00:00","dateModified":"2026-02-27T12:21:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/"},"wordCount":778,"commentCount":0,"image":{"@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/bleuio-teensy-hibouair.webp","articleSection":["BleuIO","BleuIO tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/","url":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/","name":"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2) - BleuIO - Create Bluetooth Low Energy application","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/#primaryimage"},"image":{"@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/bleuio-teensy-hibouair.webp","datePublished":"2026-02-27T11:16:13+00:00","dateModified":"2026-02-27T12:21:38+00:00","author":{"@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"breadcrumb":{"@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/#primaryimage","url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/bleuio-teensy-hibouair.webp","contentUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2026\/02\/bleuio-teensy-hibouair.webp","width":800,"height":450,"caption":"bleuio teensy hibouair"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bleuio.com\/blog\/integrating-bleuio-with-teensy-4-1-scanning-and-decoding-hibouair-sensor-data-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bleuio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Integrating BleuIO with Teensy 4.1 \u2013 Scanning and Decoding HibouAir Sensor Data (Part 2)"}]},{"@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\/1634","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=1634"}],"version-history":[{"count":9,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/1634\/revisions"}],"predecessor-version":[{"id":1647,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/1634\/revisions\/1647"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media\/1638"}],"wp:attachment":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media?parent=1634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/categories?post=1634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/tags?post=1634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}