Translated from: http://www.sitepoint.com/javascript-beyond-the-web-in-2015/ Author: Patrick CatanzaritiReprinted from: CSDN http://www.csdn.net/article/2015-12-29/2826575-javascript-beyond-the-web-in-2015 Translator: Jingzhuang
2015 was undoubtedly a significant year for the Internet of Things (IoT). We saw substantial progress in the size and capabilities of many IoT devices. Major companies like Microsoft and Samsung have officially entered this field, and the IoT community has generally grown stronger in 2015. This article will explore and summarize the development status of IoT and JavaScript technology in 2015. Although the use of JavaScript in IoT devices has experienced a period of hype and excitement, the community’s attitude towards JavaScript has become more cautious this year. Nevertheless, JavaScript remains a crucial choice for IoT developers and is still worth considering. This article will introduce IoT devices that can be developed using JavaScript and discuss the current status of these technologies.
Tessel 2
Tessel 2 (Image source: Tessel)
Tessel is a microcontroller similar to Arduino, but it runs JavaScript instead of traditional languages like C. Tessel is an excellent entry point into IoT technology for JavaScript developers. Since Tessel was launched last year, developers have accomplished many interesting projects with it[1]. Tessel 2 was released this year and has many exciting upgrades compared to the first generation.
Tessel can run various npm packages, but it cannot run Node.js itself, so it often requires building compatible versions of commonly used packages. Tessel 2 has greatly improved in this regard, as it can run Node.js directly. For this reason, I pre-ordered it as soon as it was released. The biggest advantage of Tessel 2 is its ability to use various npm packages directly, which brings great potential.
Tessel 2 has two USB ports, allowing access to various USB devices (such as cameras) just like accessing Tessel’s modules. Tessel 2 also features a GPIO port to connect various electronic devices through jumper wires to pins.
Related Resources
1. Pre-order Tessel 2[2]: You can pre-order Tessel 2 on their website and start your creation as soon as possible. Tessel 2 is scheduled for official shipping in January 2016.
2. Official Tessel Documentation[3]: You can refer to the relevant documentation to start your work (the documentation for Tessel 2 is very similar to that of Tessel 1).
Open Hybrid
Open Hybrid (Image source: OpenHybrid)
Augmented reality technology provides a fascinating alternative for controlling IoT devices around us. You can observe results through an augmented reality interface similar to a mobile app, or control these IoT devices in an intuitive and unrestricted manner based on that interface, rather than directly manipulating objects physically. Many companies are currently exploring implementations in augmented reality, and MIT’s Media Lab has developed an interesting device called Open Hybrid, which allows IoT developers to create related applications using JavaScript. JavaScript developers may find this technology very interesting. Open Hybrid allows development using web technologies, including HTML and JavaScript. It is still in the early stages of augmented reality technology, but it undoubtedly shows us the future potential of IoT technology!
Related Resources
1. Official Open Hybrid Page[4]: You can learn about this technology, watch related demo videos, or download relevant materials.
2. Talks on OpenHybrid[5]: A talk about the ideas and construction process behind OpenHybrid.
Samsung’s IoT.js and JerryScript
Samsung IoT.js and JerryScript page
To enable the use of JavaScript in IoT devices[6], Samsung has invested significant resources. In 2015, Samsung open-sourced JerryScript, a JavaScript engine that can be applied to IoT devices. JerryScript allows JavaScript to run on small, resource-constrained IoT devices, such as microcontrollers widely used in IoT. In my opinion, it is somewhat similar to the goal that Tessel aims to achieve, but JerryScript’s goal is not limited to a single device; it aims to extend its reach to more and smaller IoT devices.
IoT.js[7] is another attempt by Samsung to use JavaScript in the IoT community. Like JerryScript, it is also open-source. IoT.js is a framework for creating interoperable IoT platforms using JavaScript for IoT devices. Some describe it as a lightweight Node.js, but I have not yet delved deeply into this technology, so I cannot confidently confirm that description.
Currently, both IoT.js and JerryScript are in early development stages, so I look forward to their continued development in 2016. I also hope that Samsung can apply them to specific devices, allowing developers to gain a deeper understanding of them.
Related Resources
1. Official JerryScript Page[8]: Contains relevant download links and getting started guidance.
2. Official IoT.js Page[9]: Contains relevant download links and getting started guidance.
From Spark to Particle
Particle Electron (Image source: Particle)
In 2015, Spark rebranded to Particle. Spark provided a Wi-Fi module that allows microcontrollers embedded in IoT devices to stream communication with their own cloud service. From the perspective of JavaScript developers, they have a JavaScript SDK and many compatible third-party JavaScript plugins. Although Spark was rebranded to Particle this year, the range of related devices has also expanded significantly.
The company is currently working on releasing a faster and more reliable microcontroller called Photon. It adds a microcontroller named Electron, capable of 2G/3G communication (allowing devices to stay online without Wi-Fi connection), building on the Kickstarter foundation. Electron is currently available for pre-order on their website and is expected to ship officially in January 2016.
Finally, these devices will continue to support JavaScript APIs during their development, providing more opportunities for JavaScript in the coming year to engage with more IoT devices. Furthermore, Particle has a robust community.
Related Resources
-
Particle Prototype Devices[10]: The official Particle page showcasing various related prototype devices and introductions.
-
ParticleJS Official Documentation[11]
Windows 10 IoT Core
Including a Raspberry Pi Windows 10 IoT Core developer kit (Image source: Microsoft and Adafruit)
This year, Microsoft officially released Windows 10 to the world, providing a unified Windows platform for various platforms, including IoT devices. Microsoft has also considered JavaScript developers in this regard, providing support for Node.js within the Windows 10 IoT ecosystem through the Chakra JavaScript[12] engine. So far, the main IoT devices I have seen using the Windows 10 IoT operating system are Raspberry Pi 2. MininowBoard Max and DragonBoard410c also support Windows 10 IoT. Over time, we may find more devices embracing the Windows 10 IoT ecosystem. It is important to note that Windows 10 IoT Core does not use a fully functional Windows 10 operating system; it is a stripped-down version tailored for IoT devices.
Related Resources
-
Running Windows 10 IoT on Raspberry Pi 2[13]: Contains a related series to help you get started and use Windows 10 IoT with Raspberry Pi 2.
-
Running Node.js on Windows IoT Platform[14]: An official example provided by Microsoft to help developers get started with Windows 10 IoT Core and Node.js.
-
Windows 10 IoT Core Documentation and Examples[15]: Documentation and examples, including Node.js.
Evothings
Evothings Studio running on Mac OSX and mobile devices
Evothings is a set of development tools for creating mobile IoT web applications, which saw significant development and increasing functionality in 2015. I stumbled upon this set of tools in the latter half of the year and was deeply attracted by the functionalities they offered. This set of tools has now been integrated into an application called Evothings Studio. Evothings Studio allows you to develop HTML5 and JavaScript applications for mobile that can be reloaded and debugged in real-time. I discovered it while searching for suitable Estimote Bluetooth beacons[16], and it provided a perfect solution in this scenario, as desktop simulators could not simulate Bluetooth connection beacons. Running Evothings on my mobile device made the software testing process very simple.
For JavaScript developers, this platform is also very exciting, as the Evothings team has provided a set of related example documentation[17] to demonstrate how to use JavaScript across a variety of IoT devices.
Related Resources
-
Official Getting Started Documentation[18]: Includes related example content
-
Evothings Tutorials[19]: Specific project practices
-
Building a Beacon App Prototype with Estimote and Evothings[20]
The IFTTT Maker Channel
IFTTT Maker Channel
This year, IFTTT launched a channel that can create and receive custom HTTP requests—the IFTTT Maker Channel, a feature long desired by the IoT community. This allows users to connect to various services through IFTTT, enabling them to receive HTTP requests by customizing their Maker Channel.
This service is especially suitable for Node.js developers, as HTTP requests can easily be generated or received through Node.js. This means that all IoT devices that can connect to Node.js can connect to IFTTT.
Related Resources
-
IFTTT Maker Channel[21]: The official page for the IFTTT Maker Channel.
-
Connecting IoT and Node.js to IFTTT[22]: Some development examples.
-
Automating LIFX Lights with LightBlue Bean and IFTTT[23].
Johnny-Five Revamped!
Johnny-Five revamped website
Johnny-Five is a JavaScript programming framework commonly used for Arduino NodeBot development. The revamped Johnny-Five website has added a wealth of documentation. The number of supported devices has also continually increased, helping developers write IoT applications more effectively using JavaScript.
Related Resources
-
Johnny-Five Official Website[24]: Revamped website
-
JavaScript Robotic Book[25]: A book on how to write robots using JavaScript, authored primarily by the NodeBots community, which is highly recommended.
Raspberry Pi Zero
Raspberry Pi Zero (Image source: Raspberry Pi Foundation)
Finally, I would like to introduce a newer and currently popular IoT device that offers features exciting for JavaScript developers: the Raspberry Pi Zero. It is half the size of the Model A+ Pi but still boasts incredible speed and power. Since Raspberry Pi devices generally run Linux, it is quite common to run Node servers on them. The Raspberry Pi Zero provides a minimal device that can run JavaScript, and I am sure it will bring more impressive creations in the coming months.
Related Resources
-
Raspberry Pi Zero Product Page[26]: The official product page where you can view related specifications or purchase the product.
-
Using JavaScript to Stream Raspberry Pi Camera to VR[27].
-
JavaScript Robotics Book[28].
Conclusion
2015 has offered many impressive IoT devices for JavaScript developers, including devices like Tessel that directly use JavaScript, as well as devices like Raspberry Pi Zero that can indirectly use JavaScript programming. I believe that in 2016, JavaScript developers will have even more options. If you are a JavaScript developer and do not have a deep understanding of the IoT community, you can refer to the technologies mentioned above. I believe JavaScript will achieve more than we can imagine. Finally, embrace the JavaScript community!
Translated from: http://www.sitepoint.com/javascript-beyond-the-web-in-2015/ Author: Patrick CatanzaritiReprinted from: CSDN http://www.csdn.net/article/2015-12-29/2826575-javascript-beyond-the-web-in-2015 Translator: Jingzhuang
[1]: https://tessel.hackster.io/zaccolley/thermal-printer-module-for-tessel-74293b[2]: https://tessel.io/[3]: https://tessel.io/docs/home[4]: http://openhybrid.org/index.html[5]: http://openhybrid.org/solid.html[6]: https://samsung.github.io/jerryscript/[7]: https://samsung.github.io/iotjs/[8]: https://samsung.github.io/jerryscript/[9]: https://samsung.github.io/iotjs/[10]: https://www.particle.io/prototype[11]: https://docs.particle.io/reference/javascript/[12]: https://blogs.windows.com/buildingapps/2015/05/12/bringing-node-js-to-windows-10-iot-core/[13]: http://www.sitepoint.com/running-windows-10-iot-core-on-a-raspberry-pi/[14]: https://blogs.windows.com/buildingapps/2015/05/12/bringing-node-js-to-windows-10-iot-core/[15]: http://ms-iot.github.io/content/en-US/win10/StartCoding.htm[16]: http://www.sitepoint.com/how-to-prototype-beacon-apps-with-estimote-and-evothings/[17]: https://evothings.com/tutorials/[18]: https://evothings.com/getting-started-with-evothings-studio-in-90-seconds/[19]: https://evothings.com/tutorials/[20]: http://www.sitepoint.com/how-to-prototype-beacon-apps-with-estimote-and-evothings/[21]: https://ifttt.com/maker[22]: http://www.sitepoint.com/connecting-the-iot-and-node-js-to-ifttt/[23]: http://www.sitepoint.com/automating-lifx-lights-with-the-lightblue-bean-and-ifttt/[24]: http://johnny-five.io/[25]: http://www.amazon.com/Make-JavaScript-Robotics-Raspberry-BeagleBone/dp/1457186950[26]: https://www.raspberrypi.org/products/pi-zero/[27]: http://www.sitepoint.com/streaming-a-raspberry-pi-camera-into-vr-with-javascript/[28]: http://www.amazon.com/Make-JavaScript-Robotics-Raspberry-BeagleBone/dp/1457186950
Recommended Articles
ID | Click Title or Enter Article ID to Go Directly to the Article |
---|---|
128 | Debian Abandons Linux Standard Base (LSB) |
254 | Introduction to Linux File System Structure |
673 | Incredible, Python Can Run Without an Operating System! |
1135 | When Programmers Grow Old |
3501 | Watch ‘Star Wars’ in the Linux Terminal |
Sharing this article with friends is the best appreciation!