Iot Development for Esp32 and Esp8266 with JavaScript: A Practical Guide to XS and the Moddable SDK
內容描述
This book introduces a new approach to embedded development, grounded in modern, industry-standard JavaScript. Using the same language that powers web browsers and Node.js, the Moddable SDK empowers IoT developers to apply many of the same tools and techniques used to build sophisticated websites and mobile apps.
The Moddable SDK enables you to unlock the full potential of inexpensive microcontrollers like the ESP32 and ESP8266. Coding for these microcontrollers in C or C++ with the ESP-IDF and Arduino SDKs works for building basic products but doesn't scale to handle the increasingly complex IoT products that customers expect. The Moddable SDK adds the lightweight XS JavaScript engine to those traditional environments, accelerating development with JavaScript while keeping the performance benefits of a native SDK.
Building user interfaces and communicating over the network are two areas where JavaScript really shines. IoT Development for ESP32 and ESP8266 with JavaScript shows you how to build responsive touch screen user interfaces using the Piu framework. You'll learn how easy it is to securely send and receive JSON data over Wi-Fi with elegant JavaScript APIs for common IoT protocols, including HTTP/HTTPS, WebSocket, MQTT, and mDNS. You'll also learn how to integrate common sensors and actuators, Bluetooth Low Energy (BLE), file systems, and more into your projects, and you'll see firsthand how JavaScript makes it easier to combine these diverse technologies.
If you're an embedded C or C++ developer who has never worked in JavaScript, don't worry. This book includes an introduction to the JavaScript language just for embedded developers experienced with C or C++.
What You'll Learn
Building, installing, and debugging JavaScript projects on the ESP32 and ESP8266
Using modern JavaScript for all aspects of embedded development with the Moddable SDK
Developing IoT products with animated user interfaces, touch input, networking, BLE, sensors, actuators, and more
Who This Book Is For
Professional embedded developers who want the speed, flexibility, and power of web development in their embedded software work
Makers who want a faster, easier way to build their hobby projects
Web developers working in JavaScript who want to extend their skills to hardware products
目錄大綱
Chapter 1: Getting StartedThe goal of this section is to get the reader set-up with the hardware, development environment, and their basic JavaScript skills. This equips them to run the examples in the remaining chapters.
Chapter 2: NetworkingThe goal of this section is to teach the reader how to use Wi-Fi to communicate with cloud services and other devices. It provides guidance on when it is appropriate to use the various network services. It also explains how to use standard JSON to communicate with network services.
Chapter 3: Bluetooth Low Energy (BLE)
This is the only chapter which only applies to the ESP32, as the ESP8266 does not have BLE hardware
Chapter 4: Files and Data
This section explains how to access and store data. In addition to introducing the file system, it explains why a file system isn't always the best choice for an IoT product and introduces alternatives
Chapter 5: Working with hardware (Sensors and actuators)
This section introduces the hardware protocols supported by the Moddable SDK and gets the reader started with a few sensors and actuators. In addition to demonstrating how to use a few specific sensors, it provides guidance on how to build JavaScript modules for other off-the-shelf sensors. This chapter introduces Timers, a common tool for working with hardware used to delay operations and perform periodic actions.
Chapter 6: Graphics for IoTThis chapter explains why graphical user interfaces are a valuable addition to IoT products. It introduces the fundamentals of working with graphics on MCUs that were not designed to support graphics. The reader will learn about key performance bottlenecks so that they will have the knowledge needed to build modern graphical displays for their IoT projects using the ESP8266 and ESP32. The chapter also describes the relationship between the Commodetto Graphics Library and the Piu User Interface framework so the reader can choose the tool that is best for their project.
Chapter 7: Commodetto Graphics LibraryThis section introduces use of the Commodetto graphics library to build user displays. It contains examples of using each graphic operation provided by the Poco rendering engine.
Chapter 8: Piu User Interface Framework
This section provides an overview of the Piu user interface framework and examples of the most commonly used objects from the Piu API
Chapter 9: Adding native code
This section describes how to increase the performance and features of the reader's IoT projects through the strategic use of native C code. It teaches how to integrate C code into a JavaScript application. It provides guidance on when it is appropriate to use C code, by explaining the benefits and risks of using native code.
Chapter 10: Security
Chapter 11: What's Next?
This section covers a few advanced topics and provides links to additional developer resources. The goal is to provide readers with the information necessary to move on to developing more complex and customizable applications.
作者介紹
Peter Hoddie is an engineer and entrepreneur focused on client software. He is recognized for crafting compact and efficient code that pushes the boundaries of user experience on consumer hardware. The software he and his teams have built has powered mass-market consumer products from companies including Apple, Palm, Sling, HP, and Sony. Peter recognizes that the first users of any product are the developers creating it, and that those developers cannot build compelling consumer products on a foundation that's unstable, complex, or confusing. He therefore champions investments in great tools and a simple runtime architecture.
Peter has founded several companies, including Kinoma, which merged into Marvell Semiconductor. He led QuickTime development at Apple during the 1990s as a Distinguished Engineer. He contributed to the development of the QuickTime file format and its adoption by ISO into the MPEG-4 standard. He is currently a member of the JavaScript language standards committee (ECMA TC39) and chair of ECMA TC53 for "Smart wearable systems and sensor-based devices". Peter is particularly proud of his work putting both the KinomaJS framework and Darwin Streaming Server into open source. He continues to come to terms with the 10 patents that bear his name.
Lizzie Prader is an engineer whose educational background is in theoretical computer science, but is currently better described as an engineer focused on developers' needs. She recognizes the importance of customer support during all stages of a project, and enjoys working with developers to smooth the on-ramp to embedded development. Working with users of all skill levels--from professional engineers to makers and hobbyists to absolute programming beginners--has made her an advocate of well-organized documentation and readable code.
Prior to Moddable, Lizzie worked as a developer relations engineer at Kinoma. Her main goal was to help customers get the most out of Kinoma's software and hardware prototyping products, both through direct contact with developers and by creating a variety of resources including sample code, tutorials, and blog posts