{"id":1452,"date":"2025-10-10T13:45:24","date_gmt":"2025-10-10T13:45:24","guid":{"rendered":"https:\/\/www.bleuio.com\/blog\/?p=1452"},"modified":"2025-10-10T17:35:58","modified_gmt":"2025-10-10T17:35:58","slug":"log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio","status":"publish","type":"post","link":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/","title":{"rendered":"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using BleuIO"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Have you ever wanted to stream real-time air quality data from a Bluetooth sensor straight into the cloud \u2014 without any expensive gateway or IoT server?<br>In this tutorial, we\u2019ll show you how to use the <strong>BleuIO USB dongle<\/strong> and a <strong>HibouAir<\/strong> sensor to capture CO2, temperature, and humidity readings over <strong>Bluetooth Low Energy (BLE)<\/strong>, then automatically log them into <strong>Google Sheets<\/strong> for easy tracking and visualization.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By the end, you\u2019ll have a live data logger that updates your Google Sheet every few seconds with real environmental readings \u2014 and you\u2019ll even learn how to create charts directly inside Google Sheets.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is Google Sheets?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Google Sheets<\/strong> is a free, cloud-based spreadsheet application that lets you create, edit, and share data online in real time. It\u2019s part of Google\u2019s Workspace tools and is accessible from any device with an internet connection. Because it stores data in the cloud, it\u2019s ideal for data logging, quick testing, and lightweight analysis \u2014 especially for IoT projects. You can capture sensor readings, visualize trends with charts, and even connect Sheets to other platforms like Google Looker Studio or BigQuery for deeper analytics. For developers and makers, Google Sheets serves as an excellent starting point for collecting and analyzing data without needing a dedicated server or database.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What You\u2019ll Need<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong><a href=\"https:\/\/www.bleuio.com\/bluetooth-low-energy-usb-ssd025.php\" target=\"_blank\" rel=\"noreferrer noopener\">BleuIO USB dongle<\/a><\/strong><\/li>\n\n\n\n<li>A <strong><a href=\"https:\/\/www.hibouair.com\/specifications-air-quality-monitor-co2-sensor.php\" target=\"_blank\" rel=\"noreferrer noopener\">HibouAir CO2 sensor<\/a><\/strong> <\/li>\n\n\n\n<li>A <strong>Google account<\/strong> (for Sheets and Apps Script)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019ll also need a few Python libraries, which we\u2019ll install below.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1 \u2014 Set Up Your Google Sheet<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019ll use Google Sheets as our cloud storage for the data.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <a href=\"https:\/\/docs.google.com\/spreadsheets\/create\" target=\"_blank\" rel=\"noreferrer noopener\">Google Sheets<\/a> and create a <strong>new spreadsheet<\/strong>.<\/li>\n\n\n\n<li>Name it something like <code>BleuIO_HibouAir_Data<\/code>.<\/li>\n\n\n\n<li>Rename the first tab to <code>data<\/code>.<\/li>\n\n\n\n<li>In the first row, add the following headers: <code>timestamp, CO2, temperature, humidity<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2 \u2014 Create a Google Apps Script Webhook<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Next, we\u2019ll build a small <strong>Google Apps Script<\/strong> that accepts POST requests and appends data to your sheet.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <a href=\"https:\/\/script.google.com\/home\">https:\/\/script.google.com\/home<\/a> and click <strong>New Project<\/strong>.<\/li>\n\n\n\n<li>Paste this code into the editor:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ ===== CONFIG =====\nconst SPREADSHEET_ID = 'YOUR_SHEET_ID_HERE'; \/\/ from your sheet URL\nconst SHEET_NAME = 'data'; \/\/ tab name\n\/\/ ==================\n\nfunction doPost(e) {\n  const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);\n  if (!e || !e.postData || !e.postData.contents) {\n    return ContentService.createTextOutput('NO_BODY');\n  }\n  let payload = JSON.parse(e.postData.contents);\n  const rows = Array.isArray(payload) ? payload : &#91;payload];\n  const toRow = o =&gt; &#91;\n    o.timestamp || new Date().toISOString(),\n    Number(o.CO2),\n    Number(o.temperature),\n    Number(o.humidity)\n  ];\n  const values = rows.map(toRow);\n  sheet.getRange(sheet.getLastRow() + 1, 1, values.length, values&#91;0].length).setValues(values);\n  return ContentService.createTextOutput('OK');\n}\n<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Replace <code>YOUR_SHEET_ID_HERE<\/code> with your sheet\u2019s ID \u2014 it\u2019s the long string between <code>\/d\/<\/code> and <code>\/edit<\/code> in your Sheet URL.<\/li>\n\n\n\n<li>Click <strong>Deploy \u2192 New Deployment<\/strong> \u2192 choose <strong>Web app<\/strong>.<\/li>\n\n\n\n<li>Under settings:\n<ul class=\"wp-block-list\">\n<li><em>Execute as:<\/em> <strong>Me<\/strong><\/li>\n\n\n\n<li><em>Who has access:<\/em> <strong>Anyone with the link<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Deploy<\/strong>, then copy the <strong>Web app URL<\/strong>.<br>This will be your <code>WEBHOOK_URL<\/code>.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"805\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.24.14-1024x805.png\" alt=\"\" class=\"wp-image-1453\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.24.14-1024x805.png 1024w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.24.14-300x236.png 300w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.24.14-768x603.png 768w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.24.14-1536x1207.png 1536w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.24.14.png 1578w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"826\" height=\"654\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.25.34.png\" alt=\"\" class=\"wp-image-1454\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.25.34.png 826w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.25.34-300x238.png 300w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-10-at-11.25.34-768x608.png 768w\" sizes=\"auto, (max-width: 826px) 100vw, 826px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3 \u2014 Install Python Libraries<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open your terminal (or PowerShell) and install the required dependencies:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install pyserial requests\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These will let Python talk to the BleuIO dongle and send HTTPS requests to Google Sheets.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4 \u2014 Connect and Configure the BleuIO Dongle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Plug in your <strong>BleuIO USB dongle<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On <strong>macOS<\/strong>, it will appear as something like <code>\/dev\/cu.usbmodemXXXX<\/code>.<\/li>\n\n\n\n<li>On <strong>Windows<\/strong>, it will show up as <code>COMX<\/code>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You can list serial ports to confirm:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls \/dev\/cu.usbmodem*    # macOS\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">or<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-WMIObject Win32_SerialPort | Select-Object DeviceID,Name  # Windows\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5 \u2014 Run the Python Script<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now we\u2019ll use a Python script that handles the entire process automatically. The script first connects to the BleuIO dongle and sets it to central mode using the <code>AT+CENTRAL<\/code> command, which allows it to scan for nearby BLE devices. It then searches for HibouAir BLE advertisements using the <code>AT+FINDSCANDATA=220069=3<\/code> command, which filters packets matching the HibouAir sensor\u2019s unique identifier. Once it receives a valid advertisement, the script decodes the CO2, temperature, and humidity values from the data packet. Finally, it packages these readings along with a timestamp and pushes them to your Google Apps Script webhook, which automatically logs them into your Google Sheet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udcc2 <strong>GitHub Repository:<\/strong> <a href=\"https:\/\/github.com\/smart-sensor-devices-ab\/bleuio_googlesheet\" target=\"_blank\" rel=\"noreferrer noopener\"><em>View Source Code on GitHub<\/em><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Before running<\/strong>, update:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>SERIAL_PORT<\/code> \u2192 your BleuIO port<\/li>\n\n\n\n<li><code>WEBHOOK_URL<\/code> \u2192 your Google Apps Script Web App URL<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6 \u2014 Watch Your Data Flow!<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open your Google Sheet. You\u2019ll see new rows appear every few seconds:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>timestamp<\/th><th>CO2<\/th><th>temperature<\/th><th>humidity<\/th><\/tr><\/thead><tbody><tr><td>2025-10-10T14:48:07.849Z<\/td><td>514<\/td><td>23.8<\/td><td>46.1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1004\" height=\"584\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image.png\" alt=\"\" class=\"wp-image-1455\" style=\"width:465px;height:auto\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image.png 1004w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image-300x175.png 300w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image-768x447.png 768w\" sizes=\"auto, (max-width: 1004px) 100vw, 1004px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7 \u2014 Create Charts in Google Sheets<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once your data is flowing into Google Sheets, you can easily visualize it without using any external tools. Start by highlighting the range of data you want to analyze, then go to <strong>Insert \u2192 Chart<\/strong> in the menu. Google Sheets will automatically suggest a chart type, but you can switch to a <strong>Line Chart<\/strong> or <strong>Combo Chart<\/strong> to better visualize trends over time. For a more dashboard-like view, you can also add a <strong>Gauge Chart<\/strong> to display real-time values for CO\u2082 or temperature. Customize the chart\u2019s colors, titles, and formatting to match your preferences, and adjust refresh settings so your visuals update automatically as new data arrives.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"997\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image-1-1024x997.png\" alt=\"\" class=\"wp-image-1456\" style=\"width:530px;height:auto\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image-1-1024x997.png 1024w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image-1-300x292.png 300w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image-1-768x748.png 768w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/image-1.png 1352w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And that\u2019s it! You\u2019ve built a real-time BLE air-quality logger with BleuIO and Google Sheets \u2014 no servers, no databases, no fuss.<br>This setup is perfect for classrooms, offices, or research labs that need quick, visual environmental monitoring.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Use Cases<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This project demonstrates how you can use BleuIO and Google Sheets to quickly prototype and test IoT ideas. For example, it\u2019s perfect for <a href=\"https:\/\/www.hibouair.com\/index.php\" target=\"_blank\" rel=\"noreferrer noopener\">indoor air-quality monitoring<\/a> in offices, classrooms, or labs, allowing you to observe changes in CO\u2082 levels, temperature, and humidity over time. Researchers can use it to log environmental data during experiments or field studies. It\u2019s also useful for IoT developers who want to validate BLE sensors or test new device firmware without setting up a backend system. Teachers can turn this setup into an educational project, helping students understand Bluetooth communication, data logging, and visualization. Overall, pairing BleuIO with Google Sheets offers a fast, free, and flexible way to monitor and analyze real-world sensor data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whether you\u2019re analyzing indoor air quality, tracking sensor performance, or just exploring IoT data pipelines, <strong>BleuIO makes BLE integration simple and powerful<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever wanted to stream real-time air quality data from a Bluetooth sensor straight into the cloud \u2014 without any expensive gateway or IoT server?In this tutorial, we\u2019ll show you how to use the BleuIO USB dongle and a HibouAir sensor to capture CO2, temperature, and humidity readings over Bluetooth Low Energy (BLE), then [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1458,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,2],"tags":[],"class_list":["post-1452","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.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using 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\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using BleuIO - BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"og:description\" content=\"Have you ever wanted to stream real-time air quality data from a Bluetooth sensor straight into the cloud \u2014 without any expensive gateway or IoT server?In this tutorial, we\u2019ll show you how to use the BleuIO USB dongle and a HibouAir sensor to capture CO2, temperature, and humidity readings over Bluetooth Low Energy (BLE), then [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/\" \/>\n<meta property=\"og:site_name\" content=\"BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-10T13:45:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-10T17:35:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/ble-google-sheet-air-quality.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"650\" \/>\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\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/\"},\"author\":{\"name\":\"BleuIO\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"headline\":\"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using BleuIO\",\"datePublished\":\"2025-10-10T13:45:24+00:00\",\"dateModified\":\"2025-10-10T17:35:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/\"},\"wordCount\":913,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/ble-google-sheet-air-quality.jpg\",\"articleSection\":[\"BleuIO\",\"BleuIO tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/\",\"name\":\"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using BleuIO - BleuIO - Create Bluetooth Low Energy application\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/ble-google-sheet-air-quality.jpg\",\"datePublished\":\"2025-10-10T13:45:24+00:00\",\"dateModified\":\"2025-10-10T17:35:58+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/ble-google-sheet-air-quality.jpg\",\"contentUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/ble-google-sheet-air-quality.jpg\",\"width\":650,\"height\":450,\"caption\":\"ble google sheet air quality\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using 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":"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using 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\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/","og_locale":"en_US","og_type":"article","og_title":"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using BleuIO - BleuIO - Create Bluetooth Low Energy application","og_description":"Have you ever wanted to stream real-time air quality data from a Bluetooth sensor straight into the cloud \u2014 without any expensive gateway or IoT server?In this tutorial, we\u2019ll show you how to use the BleuIO USB dongle and a HibouAir sensor to capture CO2, temperature, and humidity readings over Bluetooth Low Energy (BLE), then [&hellip;]","og_url":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/","og_site_name":"BleuIO - Create Bluetooth Low Energy application","article_published_time":"2025-10-10T13:45:24+00:00","article_modified_time":"2025-10-10T17:35:58+00:00","og_image":[{"width":650,"height":450,"url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/ble-google-sheet-air-quality.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\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/#article","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/"},"author":{"name":"BleuIO","@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"headline":"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using BleuIO","datePublished":"2025-10-10T13:45:24+00:00","dateModified":"2025-10-10T17:35:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/"},"wordCount":913,"commentCount":0,"image":{"@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/ble-google-sheet-air-quality.jpg","articleSection":["BleuIO","BleuIO tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/","url":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/","name":"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using BleuIO - BleuIO - Create Bluetooth Low Energy application","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/#primaryimage"},"image":{"@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/ble-google-sheet-air-quality.jpg","datePublished":"2025-10-10T13:45:24+00:00","dateModified":"2025-10-10T17:35:58+00:00","author":{"@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"breadcrumb":{"@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/#primaryimage","url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/ble-google-sheet-air-quality.jpg","contentUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2025\/10\/ble-google-sheet-air-quality.jpg","width":650,"height":450,"caption":"ble google sheet air quality"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bleuio.com\/blog\/log-real-time-ble-air-quality-data-from-hibouair-to-google-sheets-using-bleuio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bleuio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Log Real-Time BLE Air Quality Data from HibouAir to Google Sheets using 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\/1452","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=1452"}],"version-history":[{"count":2,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/1452\/revisions"}],"predecessor-version":[{"id":1459,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/1452\/revisions\/1459"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media\/1458"}],"wp:attachment":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media?parent=1452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/categories?post=1452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/tags?post=1452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}