{"id":19675,"date":"2022-12-14T10:12:38","date_gmt":"2022-12-14T09:12:38","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=19675"},"modified":"2022-12-14T10:12:39","modified_gmt":"2022-12-14T09:12:39","slug":"web-progressive-apps-creating-bluetooth-robots","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/","title":{"rendered":"Web Progressive Apps: Creating Bluetooth Robots"},"content":{"rendered":"\n<p>In this video, Developer Nico Martin shares how, thanks to having some extra time during quarantine, he started experimenting with <strong>Browser APIs<\/strong> (Web Progressive Apps) that allowed him to communicate with hardware devices using JavaScript.<\/p>\n\n\n\n<p>He bought a <strong>RaspBerry pi 0w<\/strong>. This microcomputer allowed him to run <a href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/5-javascript-frameworks-to-use-in-2022\/\" target=\"_blank\" aria-label=\"JavaScript  (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">JavaScript <\/a>and Nodejs files. That&#8217;s how he created a small prototype of a toy car as a first experiment, but he decided to experiment further.<\/p>\n\n\n\n<p>Watch the video below to discover more about his amazing journey into the world of robotics.<\/p>\n\n\n\n<p><br>[jwp-video n=&#8221;1&#8243;]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-bluetooth-le-and-why-is-it-key-in-robotics\">What is Bluetooth LE and why is it key in robotics?<\/h2>\n\n\n\n<p>WebBluetooth plays a key role when it comes to connecting APIs and hardware. In the video, Nico explains that Bluetooth uses the same frequencies as wireless LAN, but instead Bluetooth was designed to send very short commands over short distances.<\/p>\n\n\n\n<p>Classic Bluetooth was buggy and had many problems, but now, Bluetooth BLE is here to solve all the previous problems. <\/p>\n\n\n\n<p>Bluetooth LE is used in the world of IoT because of the many benefits it brings compared to the initial versions of Bluetooth. These benefits include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Energy efficiency<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Encryption for data security between clients and servers<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Increased range and speed<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Much better compatibility with devices from different brands<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">The Generic Attribute Profile GATT<\/h2>\n\n\n\n<p>In the video, Nico also explains the role of GATT (<strong>Generic Attribute Profile<\/strong>). This is what allows the interchange of data, and communication of different statuses (such as battery level, for example). It also enables different operations to perform. The GATT is formed by the following elements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GATT Server<\/strong><\/li>\n\n\n\n<li><strong>GATT Service<\/strong><\/li>\n\n\n\n<li><strong>GATT Characteristic<\/strong><\/li>\n\n\n\n<li><strong>GATT Value<\/strong><\/li>\n<\/ul>\n\n\n\n<p>You can find a more complete explanation of this in the materials kindly shared by Nico <a aria-label=\"here (opens in a new tab)\" href=\"https:\/\/slides.nico.dev\/221018-robots-codemotion\/#\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">here<\/a>.<\/p>\n\n\n\n<p>After the coding is done, Nico shows how, using his browser, he is able to turn a PlayBulb Sphere from blue to red. Of course, that&#8217;s just the beginning and the very basics. Everything turns more complex afterward!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SpeedWheels (Bluetooth LE + Arduino) and more inventions<\/h2>\n\n\n\n<p>Nico Martin then moved on to a more difficult experiment called &#8220;SpeedWheels&#8221;. An Arduino Nano  RP2040 connected to two motors with wheels (and Lego bricks, of course!) You can check out the whole process in this Twitter thread he shared.<br><\/p>\n\n\n\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">After my beloved <a href=\"https:\/\/twitter.com\/hashtag\/RapberryPi?src=hash&amp;ref_src=twsrc%5Etfw\">#RapberryPi<\/a> based SpeedWheels left me hanging on stage for the second time now, I had to resort to drastic measures. I will rewrite everything, this time with the <a href=\"https:\/\/twitter.com\/hashtag\/ArduinoNano?src=hash&amp;ref_src=twsrc%5Etfw\">#ArduinoNano<\/a> RP2040 as a basis.<\/p>\u2014 \ud83e\udd37 nico.dev (@nic_o_martin) <a href=\"https:\/\/twitter.com\/nic_o_martin\/status\/1509286481248010242?ref_src=twsrc%5Etfw\">March 30, 2022<\/a><\/blockquote> <script async=\"\" src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n\n\n\n<p>Also, you can find more details on his GitHub repository here: <a href=\"https:\/\/github.com\/nico-martin\/speed-wheels-ble-arduino\" class=\"ek-link\">https:\/\/github.com\/nico-martin\/speed-wheels-ble-arduino<\/a>. Remember to thank Nico for his generosity!<\/p>\n\n\n\n<p>Nico knows how to have fun with Bluetooth and &#8220;SpeedWheels&#8221; wasn&#8217;t his last invention. Another project of his is the &#8220;BLE Boozer&#8221;. This invention of his is able to switch slides of his presentation also using an Arduino microcontroller. He describes it as &#8220;<em>An Arduino Sketch that provides a Bluetooth Low Energy Service whose buzzer characteristic exposes a value of &#8220;00&#8221; or &#8220;FF&#8221; depending on whether the buzzer is currently pressed or not<\/em>, <em>it also has an LED that gives feedback about the current status<\/em>.&#8221;<a href=\"https:\/\/github.com\/nico-martin\/ble-buzzer#circuit\"><\/a><\/p>\n\n\n\n<p>You can check the process on his Twitter below:<\/p>\n\n\n\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Welcome to another episode of &#8220;Fun with <a href=\"https:\/\/twitter.com\/hashtag\/bluetooth?src=hash&amp;ref_src=twsrc%5Etfw\">#bluetooth<\/a> &#8211; presented by Nico Martin&#8221;.<br>Today: the <a href=\"https:\/\/twitter.com\/hashtag\/Arduino?src=hash&amp;ref_src=twsrc%5Etfw\">#Arduino<\/a> based <a href=\"https:\/\/twitter.com\/hashtag\/BLE?src=hash&amp;ref_src=twsrc%5Etfw\">#BLE<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/Buzzer?src=hash&amp;ref_src=twsrc%5Etfw\">#Buzzer<\/a> <a href=\"https:\/\/t.co\/pL3qpd7ggY\">pic.twitter.com\/pL3qpd7ggY<\/a><\/p>\u2014 \ud83e\udd37 nico.dev (@nic_o_martin) <a href=\"https:\/\/twitter.com\/nic_o_martin\/status\/1517629565081985024?ref_src=twsrc%5Etfw\">April 22, 2022<\/a><\/blockquote> <script async=\"\" src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n\n\n\n<p>Nico also shared the whole code involved in his GitHub repository. Check it out <a href=\"http:\/\/An Arduino Sketch that provides a Bluetooth Low Energy Service whose buzzer characteristic exposes a value of &quot;00&quot; or &quot;FF&quot; depending on whether the buzzer is currently pressed or not.  It also has an LED that gives feedback about the current status.\" target=\"_blank\" aria-label=\"here (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">here<\/a>. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">More about the video&#8217;s author<\/h2>\n\n\n\n<p>Nico Martin is a self-taught web developer and <strong>Google Developer Expert<\/strong> in Web Technologies from Switzerland. As the founder of the digital agency &#8220;say hello&#8221;, he learned early on how to use the web platform to efficiently meet the needs of customers.<\/p>\n\n\n\n<p>He has contributed his know-how as a frontend development freelancer and consultant in various large projects, while constantly experimenting with <strong>modern browser technologies<\/strong> and sharing his learnings in workshops, articles, and talks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this video, Developer Nico Martin shares how, thanks to having some extra time during quarantine, he started experimenting with Browser APIs (Web Progressive Apps) that allowed him to communicate with hardware devices using JavaScript. He bought a RaspBerry pi 0w. This microcomputer allowed him to run JavaScript and Nodejs files. That&#8217;s how he created&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/\">Read more<\/a><\/p>\n","protected":false},"author":64,"featured_media":7801,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":2,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[9883],"tags":[9981,6236],"collections":[],"class_list":{"0":"post-19675","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-iot","8":"tag-bluetooth","9":"tag-web-developer","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Web Progressive Apps: Creating Bluetooth Robots - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Discover how you can use Web Progressive Apps to communicate with hardware devices using JavaScript and Bluetooth LE. Watch the video!\" \/>\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.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Web Progressive Apps: Creating Bluetooth Robots\" \/>\n<meta property=\"og:description\" content=\"Discover how you can use Web Progressive Apps to communicate with hardware devices using JavaScript and Bluetooth LE. Watch the video!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-14T09:12:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-14T09:12:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"789\" \/>\n\t<meta property=\"og:image:height\" content=\"432\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Codemotion\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Codemotion\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/\"},\"author\":{\"name\":\"Codemotion\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/201bb98b02412383686cced7521b861c\"},\"headline\":\"Web Progressive Apps: Creating Bluetooth Robots\",\"datePublished\":\"2022-12-14T09:12:38+00:00\",\"dateModified\":\"2022-12-14T09:12:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/\"},\"wordCount\":660,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg\",\"keywords\":[\"Bluetooth\",\"Web Developer\"],\"articleSection\":[\"IoT\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/\",\"name\":\"Web Progressive Apps: Creating Bluetooth Robots - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg\",\"datePublished\":\"2022-12-14T09:12:38+00:00\",\"dateModified\":\"2022-12-14T09:12:39+00:00\",\"description\":\"Discover how you can use Web Progressive Apps to communicate with hardware devices using JavaScript and Bluetooth LE. Watch the video!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg\",\"width\":789,\"height\":432,\"caption\":\"web progressive apps, bluetooth, robots\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/backend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"IoT\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/backend\/iot\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Web Progressive Apps: Creating Bluetooth Robots\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/201bb98b02412383686cced7521b861c\",\"name\":\"Codemotion\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/cropped-codemotionlogo-150x150.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/cropped-codemotionlogo-150x150.png\",\"caption\":\"Codemotion\"},\"description\":\"Articles wirtten by the Codemotion staff. Tech news, inspiration, latest treends in software development and more.\",\"sameAs\":[\"https:\/\/x.com\/CodemotionIT\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/codemotion-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Web Progressive Apps: Creating Bluetooth Robots - Codemotion Magazine","description":"Discover how you can use Web Progressive Apps to communicate with hardware devices using JavaScript and Bluetooth LE. Watch the video!","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.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/","og_locale":"en_US","og_type":"article","og_title":"Web Progressive Apps: Creating Bluetooth Robots","og_description":"Discover how you can use Web Progressive Apps to communicate with hardware devices using JavaScript and Bluetooth LE. Watch the video!","og_url":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2022-12-14T09:12:38+00:00","article_modified_time":"2022-12-14T09:12:39+00:00","og_image":[{"width":789,"height":432,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg","type":"image\/jpeg"}],"author":"Codemotion","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Codemotion","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/"},"author":{"name":"Codemotion","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/201bb98b02412383686cced7521b861c"},"headline":"Web Progressive Apps: Creating Bluetooth Robots","datePublished":"2022-12-14T09:12:38+00:00","dateModified":"2022-12-14T09:12:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/"},"wordCount":660,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg","keywords":["Bluetooth","Web Developer"],"articleSection":["IoT"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/","url":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/","name":"Web Progressive Apps: Creating Bluetooth Robots - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg","datePublished":"2022-12-14T09:12:38+00:00","dateModified":"2022-12-14T09:12:39+00:00","description":"Discover how you can use Web Progressive Apps to communicate with hardware devices using JavaScript and Bluetooth LE. Watch the video!","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg","width":789,"height":432,"caption":"web progressive apps, bluetooth, robots"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/iot\/web-progressive-apps-creating-bluetooth-robots\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/backend\/"},{"@type":"ListItem","position":3,"name":"IoT","item":"https:\/\/www.codemotion.com\/magazine\/backend\/iot\/"},{"@type":"ListItem","position":4,"name":"Web Progressive Apps: Creating Bluetooth Robots"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/201bb98b02412383686cced7521b861c","name":"Codemotion","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/cropped-codemotionlogo-150x150.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/cropped-codemotionlogo-150x150.png","caption":"Codemotion"},"description":"Articles wirtten by the Codemotion staff. Tech news, inspiration, latest treends in software development and more.","sameAs":["https:\/\/x.com\/CodemotionIT"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/codemotion-2\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-600x432.jpg","author_info":{"display_name":"Codemotion","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/codemotion-2\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg",789,432,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-300x164.jpg",300,164,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-768x421.jpg",768,421,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg",789,432,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg",789,432,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg",789,432,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg",100,55,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1.jpg",789,432,false],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/05\/GettyImages-1184804468-789x432-1-600x432.jpg",600,432,true]},"uagb_author_info":{"display_name":"Codemotion","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/codemotion-2\/"},"uagb_comment_info":0,"uagb_excerpt":"In this video, Developer Nico Martin shares how, thanks to having some extra time during quarantine, he started experimenting with Browser APIs (Web Progressive Apps) that allowed him to communicate with hardware devices using JavaScript. He bought a RaspBerry pi 0w. This microcomputer allowed him to run JavaScript and Nodejs files. That&#8217;s how he created&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/19675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=19675"}],"version-history":[{"count":22,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/19675\/revisions"}],"predecessor-version":[{"id":19733,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/19675\/revisions\/19733"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/7801"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=19675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=19675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=19675"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=19675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}