{"id":1454,"date":"2022-01-19T16:41:01","date_gmt":"2022-01-19T16:41:01","guid":{"rendered":"https:\/\/smartsensordevices.com\/?p=1454"},"modified":"2022-01-19T16:41:07","modified_gmt":"2022-01-19T16:41:07","slug":"c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor","status":"publish","type":"post","link":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/","title":{"rendered":"C# Desktop application to get real-time BLE data from Air Quality Sensor"},"content":{"rendered":"\n<p><strong>Bluetooth Low Energy (BLE)<\/strong>&nbsp;is a low power wireless technology used to connect devices. It is a popular communication method, especially in the Internet of Things era. Several devices around the house have a built-in Bluetooth transceiver, and most of them provide useful capabilities to automate jobs. This technology is widely used in the healthcare, fitness, beacons, security, and home entertainment industries. For that reason, it is really interesting to create a desktop application using C# that access BLE device data around the house.<\/p>\n\n\n\n<p>In this example, we will create a simple C# windows form application to get real-time HibouAir environmental data using BleuIO.&nbsp;<\/p>\n\n\n\n<p>This script can be used to connect and view other BLE devices data.<\/p>\n\n\n\n<p><strong>Let\u2019s start<\/strong><\/p>\n\n\n\n<p>First, let\u2019s create a new project in visual studio and select C# windows form application from the list.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/smartsensordevices.com\/wp-content\/uploads\/2022\/01\/windows-form-app-1024x202.jpg\" alt=\"\"\/><figcaption><br><\/figcaption><\/figure>\n\n\n\n<p>Choose a suitable name for your project.<\/p>\n\n\n\n<p>Once the project is created, we will see a blank form screen where we will add buttons and labels to communicate with BleuIO graphically.<\/p>\n\n\n\n<p><br>The application will connect to the BleuIO dongle to its given COM port from the script. You can change the port easily by going to line number 18.<br>We will have a disconnect button to disconnect BleuIO from the COM port.<\/p>\n\n\n\n<p>The button Scan for HibouAir devices will look for nearby HibouAir devices and store them in an Array. The Combobox (dropdown item) next to it will load the stored device from where we can select a device to get its data.<\/p>\n\n\n\n<p><br>The Get data button will show the real-time environmental data of this device.<\/p>\n\n\n\n<p>The form will look like this.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"838\" height=\"506\" src=\"http:\/\/smartsensordevices.com\/wp-content\/uploads\/2022\/01\/ble-application-c-1.jpg\" alt=\"\" class=\"wp-image-1455\" srcset=\"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/ble-application-c-1.jpg 838w, https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/ble-application-c-1-300x181.jpg 300w, https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/ble-application-c-1-768x464.jpg 768w\" sizes=\"(max-width: 838px) 100vw, 838px\" \/><\/figure>\n\n\n\n<p>The .cs file associated to this will have the following code.<\/p>\n\n\n\n<p>Source code is available at https:\/\/github.com\/smart-sensor-devices-ab\/bluetooth_realtimedata_csharp<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System;\nusing System.IO.Ports;\nusing System.Linq;\nusing System.Text;\nusing System.Windows.Forms;\nusing System.Collections;\nusing System.Threading;\n\n\nnamespace WindowsFormsApp1\n{\n    \n\n    public partial class Form1 : Form\n    {\n        \/\/Connect to Serial port\n        \/\/Replace port number to your comport\n        SerialPort mySerialPort = new SerialPort(\"COM18\", 57600, Parity.None, 8, StopBits.One);\n        ArrayList device = new ArrayList();\n        string ScannedData = \"\";\n        public string selectedDevices = \"\";\n        string advData = \"\";\n\n        \/\/ HibouAir Advertise data decrypt and show output\n        public String ParseSensorData(string input)\n        {\n            int counter = 17;\n            string theData = \" SensorID : \" + input&#91;counter + 1] +\n              input&#91;counter + 2] +\n              input&#91;counter + 3] +\n              input&#91;counter + 4] +\n              input&#91;counter + 5] +\n              input&#91;counter + 6] + \"\\n\\n \" +\n              \"Pressure : \" + Convert.ToInt32(input&#91;counter + 13].ToString() + input&#91;counter + 14].ToString() + input&#91;counter + 11].ToString() + input&#91;counter + 12].ToString(), 16) \/ 10 + \" mbar\\n\\n \" +\n              \"Temperature : \" + Convert.ToInt32(input&#91;counter + 17].ToString() + input&#91;counter + 18].ToString() + input&#91;counter + 15].ToString() + input&#91;counter + 16].ToString(), 16) \/ 10 + \" \u00b0C\\n\\n \" +\n              \"Humidity : \" + Convert.ToInt32(input&#91;counter + 21].ToString() + input&#91;counter + 22].ToString() + input&#91;counter + 19].ToString() + input&#91;counter + 20].ToString(), 16) \/ 10 + \" %rH\\n\\n \" +\n              \"VOC : \" + Convert.ToInt32(input&#91;counter + 25].ToString() + input&#91;counter + 26].ToString() + input&#91;counter + 23].ToString() + input&#91;counter + 24].ToString(), 16) \/ 10 + \"\\n\\n \" +\n              \"ALS : \" + Convert.ToInt32(input&#91;counter + 9].ToString() + input&#91;counter + 10].ToString() + input&#91;counter + 7].ToString() + input&#91;counter + 8].ToString(), 16) + \" Lux\\n\\n \" +\n              \"PM 1.0 : \" + Convert.ToInt32(input&#91;counter + 29].ToString() + input&#91;counter + 30].ToString() + input&#91;counter + 27].ToString() + input&#91;counter + 28].ToString(), 16) \/ 10 + \" \u00b5g\/m\u00b3\\n\\n \" +\n              \"PM 2.5 : \" + Convert.ToInt32(input&#91;counter + 33].ToString() + input&#91;counter + 34].ToString() + input&#91;counter + 31].ToString() + input&#91;counter + 32].ToString(), 16) \/ 10 + \" \u00b5g\/m\u00b3\\n\\n \" +\n              \"PM 10 : \" + Convert.ToInt32(input&#91;counter + 37].ToString() + input&#91;counter + 38].ToString() + input&#91;counter + 35].ToString() + input&#91;counter + 36].ToString(), 16) \/ 10 + \" \u00b5g\/m\u00b3\"\n              ;\n\n            sensor_op.Text = theData.ToString();\n            return theData;\n        }\n\n\n        public Form1()\n        {\n            InitializeComponent();    \n            mySerialPort.DataReceived += new SerialDataReceivedEventHandler(mySerialPort_DataReceived);\n            mySerialPort.Open();\n            ArrayList device = new ArrayList();\n\n        }\n\n        \n        \/\/Store response from the dongle\n        private void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)\n        {\n            \n            SerialPort sp = (SerialPort)sender;\n            string s = sp.ReadExisting();\n            if (s.Contains(\"RSSI\") &amp;&amp; s.Contains(\"(HibouAIR)\") )\n            {\n                device.Add(s);\n                \n            }\n            if (selectedDevices != \"\")\n            {\n                label1.Invoke(new EventHandler(delegate { label1.Text = selectedDevices.Remove(0, 3); })); \n           \n                if (s.Contains(\"&#91;ADV]\"))\n                {\n                    ScannedData=s;\n                    \n                   \/\/ output_data.Invoke(new EventHandler(delegate { output_data.Text += \"TT: \" + s + \"\\r\\n\"; }));\n                }           \n             }\n            \/\/output_data.Invoke(new EventHandler(delegate { output_data.Text += s + \"\\r\\n\"; }));\n\n\n            \/\/lbl_output.Invoke(this.myDelegate, new Object&#91;] { s });\n        }\n\n\n       \n        \/\/ Disconnect from COM port\n        private void btn_disconnect_Click(object sender, EventArgs e)\n        {\n            mySerialPort.Close();\n            Environment.Exit(0);\n        }\n\n        private void Form1_Load(object sender, EventArgs e)\n        {\n\n        }\n\n\n\n        private void pictureBox1_Click(object sender, EventArgs e)\n        {\n\n        }\n\n        private void btn_deviceList_Click(object sender, EventArgs e)\n        {\n            var inputByte = new byte&#91;] { 13 };\n            byte&#91;] dualCmd = Encoding.UTF8.GetBytes(\"AT+DUAL\");\n            dualCmd = dualCmd.Concat(inputByte).ToArray();\n            mySerialPort.Write(dualCmd, 0, dualCmd.Length);\n\n            byte&#91;] gapScanCmd = Encoding.UTF8.GetBytes(\"AT+GAPSCAN=2\");\n            gapScanCmd = gapScanCmd.Concat(inputByte).ToArray();\n            mySerialPort.Write(gapScanCmd, 0, gapScanCmd.Length);\n            \n\n        }\n\n        private void label1_Click(object sender, EventArgs e)\n        {\n\n        }\n\n        \/\/ Load devices on dropdown\n        private void dropdown_device_SelectedIndexChanged(object sender, EventArgs e)\n        {\n            if(dropdown_device.Text == \"Load Devices\")\n            {\n                \n                foreach (var a in device)\n                {\n                    dropdown_device.Items.Add(a);\n                }\n            }\n            else\n            {\n                selectedDevices = dropdown_device.Text;\n                string&#91;] selectedDeviceID = selectedDevices.Split(' ');\n                selectedDevices = selectedDeviceID&#91;2];\n                btnGetData.Visible = true;\n            }\n            \n        }\n\n        \/\/get advertised data of selected device\n        private void btnGetData_Click(object sender, EventArgs e)\n        {\n\n\n            var inputByte = new byte&#91;] { 13 };\n            byte&#91;] gapScanCmd = Encoding.UTF8.GetBytes(\"AT+FINDSCANDATA=FF5B07\");\n            gapScanCmd = gapScanCmd.Concat(inputByte).ToArray();\n            mySerialPort.Write(gapScanCmd, 0, gapScanCmd.Length);\n            Thread.Sleep(500);\n            byte&#91;] bytes = Encoding.UTF8.GetBytes(\"\\u0003\");\n            bytes = bytes.Concat(inputByte).ToArray();\n            mySerialPort.Write(bytes, 0, bytes.Length);\n            var array = ScannedData.Split('\\n');\n            int i = 0;\n            \/\/filter selected device data\n            foreach (var a in array)\n            {\n                string kk = (string)a;\n                if (kk.Contains(selectedDevices.Remove(0, 3)))\n                {\n                    var bleData = array&#91;i].Split(' ');\n                    advData = bleData&#91;4];\n\n                    var toPrint = ParseSensorData(advData);\n\n                    break;\n                }\n\n                i++;\n\n            }\n            \n        }\n    }\n\n    \n}\n<\/code><\/pre>\n\n\n\n<p>As you can notice, I wrote COM18 to connect to the serial port because the BleuIO device on my computer is connected to COM18.<br>You can check your COM port from the device manager.<br>Let\u2019s run the project and click on scan for HibouAir devices.<\/p>\n\n\n\n<p>Here is a demo of this sample application.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"C# application to get Real time Bluetooth Low energy data\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/vsSV9CAZ8U8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Bluetooth Low Energy (BLE)&nbsp;is a low power wireless technology used to connect devices. It is a popular communication method, especially in the Internet of Things era. Several devices around the house have a built-in Bluetooth transceiver, and most of them provide useful capabilities to automate jobs. This technology is widely used in the healthcare, fitness, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1456,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,21],"tags":[],"class_list":["post-1454","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 v23.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C# Desktop application to get real-time BLE data from Air Quality Sensor - SMART SENSOR DEVICES AB<\/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:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# Desktop application to get real-time BLE data from Air Quality Sensor - SMART SENSOR DEVICES AB\" \/>\n<meta property=\"og:description\" content=\"Bluetooth Low Energy (BLE)&nbsp;is a low power wireless technology used to connect devices. It is a popular communication method, especially in the Internet of Things era. Several devices around the house have a built-in Bluetooth transceiver, and most of them provide useful capabilities to automate jobs. This technology is widely used in the healthcare, fitness, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/\" \/>\n<meta property=\"og:site_name\" content=\"SMART SENSOR DEVICES AB\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-19T16:41:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-19T16:41:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"620\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"siteManager\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ssd_techs\" \/>\n<meta name=\"twitter:site\" content=\"@ssd_techs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"siteManager\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/\"},\"author\":{\"name\":\"siteManager\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#\/schema\/person\/fb91963eccab9e33d2377d360b28d7a1\"},\"headline\":\"C# Desktop application to get real-time BLE data from Air Quality Sensor\",\"datePublished\":\"2022-01-19T16:41:01+00:00\",\"dateModified\":\"2022-01-19T16:41:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/\"},\"wordCount\":370,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg\",\"articleSection\":[\"BleuIO\",\"BleuIO tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/\",\"url\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/\",\"name\":\"C# Desktop application to get real-time BLE data from Air Quality Sensor - SMART SENSOR DEVICES AB\",\"isPartOf\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg\",\"datePublished\":\"2022-01-19T16:41:01+00:00\",\"dateModified\":\"2022-01-19T16:41:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#primaryimage\",\"url\":\"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg\",\"contentUrl\":\"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg\",\"width\":620,\"height\":350,\"caption\":\"get real time bluetooth device data using csharp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/smartsensordevices.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Desktop application to get real-time BLE data from Air Quality Sensor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#website\",\"url\":\"https:\/\/smartsensordevices.com\/blog\/\",\"name\":\"SMART SENSOR DEVICES AB\",\"description\":\"IOT solutions for the future\",\"publisher\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/smartsensordevices.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#organization\",\"name\":\"SMART SENSOR DEVICES AB\",\"url\":\"https:\/\/smartsensordevices.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2020\/03\/cropped-SSD-color.png\",\"contentUrl\":\"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2020\/03\/cropped-SSD-color.png\",\"width\":756,\"height\":230,\"caption\":\"SMART SENSOR DEVICES AB\"},\"image\":{\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ssd_techs\",\"https:\/\/www.linkedin.com\/company\/smart-sensor-devices-ab\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#\/schema\/person\/fb91963eccab9e33d2377d360b28d7a1\",\"name\":\"siteManager\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smartsensordevices.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cca20a2883c689ad2ed55eff75dd546d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cca20a2883c689ad2ed55eff75dd546d?s=96&d=mm&r=g\",\"caption\":\"siteManager\"},\"url\":\"https:\/\/smartsensordevices.com\/blog\/author\/ssdadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C# Desktop application to get real-time BLE data from Air Quality Sensor - SMART SENSOR DEVICES AB","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:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/","og_locale":"en_US","og_type":"article","og_title":"C# Desktop application to get real-time BLE data from Air Quality Sensor - SMART SENSOR DEVICES AB","og_description":"Bluetooth Low Energy (BLE)&nbsp;is a low power wireless technology used to connect devices. It is a popular communication method, especially in the Internet of Things era. Several devices around the house have a built-in Bluetooth transceiver, and most of them provide useful capabilities to automate jobs. This technology is widely used in the healthcare, fitness, [&hellip;]","og_url":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/","og_site_name":"SMART SENSOR DEVICES AB","article_published_time":"2022-01-19T16:41:01+00:00","article_modified_time":"2022-01-19T16:41:07+00:00","og_image":[{"width":620,"height":350,"url":"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg","type":"image\/jpeg"}],"author":"siteManager","twitter_card":"summary_large_image","twitter_creator":"@ssd_techs","twitter_site":"@ssd_techs","twitter_misc":{"Written by":"siteManager","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#article","isPartOf":{"@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/"},"author":{"name":"siteManager","@id":"https:\/\/smartsensordevices.com\/blog\/#\/schema\/person\/fb91963eccab9e33d2377d360b28d7a1"},"headline":"C# Desktop application to get real-time BLE data from Air Quality Sensor","datePublished":"2022-01-19T16:41:01+00:00","dateModified":"2022-01-19T16:41:07+00:00","mainEntityOfPage":{"@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/"},"wordCount":370,"commentCount":0,"publisher":{"@id":"https:\/\/smartsensordevices.com\/blog\/#organization"},"image":{"@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#primaryimage"},"thumbnailUrl":"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg","articleSection":["BleuIO","BleuIO tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/","url":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/","name":"C# Desktop application to get real-time BLE data from Air Quality Sensor - SMART SENSOR DEVICES AB","isPartOf":{"@id":"https:\/\/smartsensordevices.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#primaryimage"},"image":{"@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#primaryimage"},"thumbnailUrl":"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg","datePublished":"2022-01-19T16:41:01+00:00","dateModified":"2022-01-19T16:41:07+00:00","breadcrumb":{"@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#primaryimage","url":"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg","contentUrl":"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2022\/01\/get-real-time-bluetooth-device-data-using-csharp.jpg","width":620,"height":350,"caption":"get real time bluetooth device data using csharp"},{"@type":"BreadcrumbList","@id":"https:\/\/smartsensordevices.com\/blog\/c-desktop-application-to-get-real-time-ble-data-from-air-quality-sensor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/smartsensordevices.com\/"},{"@type":"ListItem","position":2,"name":"C# Desktop application to get real-time BLE data from Air Quality Sensor"}]},{"@type":"WebSite","@id":"https:\/\/smartsensordevices.com\/blog\/#website","url":"https:\/\/smartsensordevices.com\/blog\/","name":"SMART SENSOR DEVICES AB","description":"IOT solutions for the future","publisher":{"@id":"https:\/\/smartsensordevices.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/smartsensordevices.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/smartsensordevices.com\/blog\/#organization","name":"SMART SENSOR DEVICES AB","url":"https:\/\/smartsensordevices.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smartsensordevices.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2020\/03\/cropped-SSD-color.png","contentUrl":"https:\/\/smartsensordevices.com\/blog\/wp-content\/uploads\/2020\/03\/cropped-SSD-color.png","width":756,"height":230,"caption":"SMART SENSOR DEVICES AB"},"image":{"@id":"https:\/\/smartsensordevices.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ssd_techs","https:\/\/www.linkedin.com\/company\/smart-sensor-devices-ab\/"]},{"@type":"Person","@id":"https:\/\/smartsensordevices.com\/blog\/#\/schema\/person\/fb91963eccab9e33d2377d360b28d7a1","name":"siteManager","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smartsensordevices.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cca20a2883c689ad2ed55eff75dd546d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cca20a2883c689ad2ed55eff75dd546d?s=96&d=mm&r=g","caption":"siteManager"},"url":"https:\/\/smartsensordevices.com\/blog\/author\/ssdadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/posts\/1454"}],"collection":[{"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/comments?post=1454"}],"version-history":[{"count":1,"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/posts\/1454\/revisions"}],"predecessor-version":[{"id":1457,"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/posts\/1454\/revisions\/1457"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/media\/1456"}],"wp:attachment":[{"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/media?parent=1454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/categories?post=1454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartsensordevices.com\/blog\/wp-json\/wp\/v2\/tags?post=1454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}