Internet of Things Programming with JavaScript
()
About this ebook
- This is a practical guide to help you configure and build a complete distributed IoT system from scratch using JavaScript
- Utilize the power of Node and HTML5 to develop web services and a centralized web server, enabling high-level communication between connected devices
- Control all your connected devices from the browser by setting up a common dashboard
This book is for developers who are interested in learning how to communicate with connected devices in JavaScript to set up an IoT system. Some basic knowledge of JavaScript is expected. Hobbyists who want to explore the potential of IoT in JavaScript will also find this book useful.
Related to Internet of Things Programming with JavaScript
Related ebooks
Node Web Development, Second Edition Rating: 0 out of 5 stars0 ratingsWebRTC Integrator's Guide Rating: 5 out of 5 stars5/5Node.js Web Development - Third Edition Rating: 2 out of 5 stars2/5Mastering React Native Rating: 5 out of 5 stars5/5Deploying Node.js Rating: 5 out of 5 stars5/5Raspberry Pi By Example Rating: 0 out of 5 stars0 ratingsReact to Python: Creating React Front-End Web Applications with Python Rating: 0 out of 5 stars0 ratingsInternet of Things with Python Rating: 0 out of 5 stars0 ratingsLearning JavaScript Robotics Rating: 3 out of 5 stars3/5Learning Node.js for Mobile Application Development Rating: 0 out of 5 stars0 ratingsBuilding Scalable Apps with Redis and Node.js Rating: 0 out of 5 stars0 ratingsRaspberry Pi Computer Architecture Essentials Rating: 0 out of 5 stars0 ratingsLearning Raspberry Pi Rating: 0 out of 5 stars0 ratingsLearning WebRTC Rating: 0 out of 5 stars0 ratingsModern JavaScript Applications Rating: 0 out of 5 stars0 ratingsNode.js High Performance Rating: 0 out of 5 stars0 ratingsMastering Reactive JavaScript Rating: 0 out of 5 stars0 ratingsTest-Driven JavaScript Development Rating: 0 out of 5 stars0 ratingsNode.js Design Patterns Rating: 4 out of 5 stars4/5JavaScript Security Rating: 4 out of 5 stars4/5Learning Bootstrap 4 - Second Edition Rating: 5 out of 5 stars5/5Express Web Application Development Rating: 3 out of 5 stars3/5Learning Behavior-driven Development with JavaScript Rating: 5 out of 5 stars5/5CORS Essentials Rating: 0 out of 5 stars0 ratingsNode.js Design Patterns - Second Edition Rating: 4 out of 5 stars4/5Learning RabbitMQ with C#: A magical tool for the IT world Rating: 0 out of 5 stars0 ratingsJavaScript Domain-Driven Design Rating: 3 out of 5 stars3/5React and React Native Rating: 4 out of 5 stars4/5
Hardware For You
CompTIA A+ Complete Review Guide: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 5 out of 5 stars5/5Electrical Engineering | Step by Step Rating: 0 out of 5 stars0 ratingsExploring Arduino: Tools and Techniques for Engineering Wizardry Rating: 4 out of 5 stars4/5CompTIA A+ Complete Review Guide: Exam Core 1 220-1001 and Exam Core 2 220-1002 Rating: 5 out of 5 stars5/5Hacking Electronics: Learning Electronics with Arduino and Raspberry Pi, Second Edition Rating: 0 out of 5 stars0 ratingsBuild Your Own PC Do-It-Yourself For Dummies Rating: 4 out of 5 stars4/5iPhone For Dummies Rating: 0 out of 5 stars0 ratingsChip War: The Fight for the World's Most Critical Technology Rating: 4 out of 5 stars4/5Practical Digital Forensics Rating: 0 out of 5 stars0 ratingsiPhone For Seniors For Dummies: Updated for iPhone 12 models and iOS 14 Rating: 4 out of 5 stars4/5Raspberry Pi Electronics Projects for the Evil Genius Rating: 3 out of 5 stars3/5macOS Sonoma For Dummies Rating: 0 out of 5 stars0 ratingsLinux All-In-One For Dummies Rating: 2 out of 5 stars2/5Arduino: A Quick-Start Beginner's Guide Rating: 4 out of 5 stars4/5iMac For Dummies Rating: 0 out of 5 stars0 ratingsLearning Android Forensics Rating: 4 out of 5 stars4/5The Official Raspberry Pi Beginner's Guide: How to use your new computer Rating: 4 out of 5 stars4/5Mobile Device Exploitation Cookbook Rating: 0 out of 5 stars0 ratingsProgramming Arduino: Getting Started with Sketches Rating: 4 out of 5 stars4/5After Steve: How Apple Became a Trillion-Dollar Company and Lost Its Soul Rating: 4 out of 5 stars4/5Linux All-in-One For Dummies Rating: 3 out of 5 stars3/5Chromebook For Dummies Rating: 5 out of 5 stars5/5Using Yocto Project with BeagleBone Black Rating: 0 out of 5 stars0 ratingsRaspberry Pi for Secret Agents - Second Edition Rating: 4 out of 5 stars4/5How to Do Everything MacBook Air Rating: 5 out of 5 stars5/5Raspberry Pi Cookbook for Python Programmers Rating: 0 out of 5 stars0 ratingsMacBook For Dummies Rating: 4 out of 5 stars4/5
Reviews for Internet of Things Programming with JavaScript
0 ratings0 reviews
Book preview
Internet of Things Programming with JavaScript - Rubén Oliva Ramos
Table of Contents
Internet of Things Programming with JavaScript
Credits
About the Author
www.packtpub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Getting Started with Raspberry Pi Zero
Setting up Raspberry Pi Zero
Preparing the SD card
Installing the Raspbian operating system
Debugging your Raspberry Pi Zero with a serial console cable
Testing and accessing the serial COM interface
Connecting to the home network and accessing remotely
Connecting with an Ethernet adapter
Accessing the Raspberry Pi Zero via SSH
Connecting to the Wi-Fi network
How to install the wireless tools
Configuring IP address and wireless network
Testing the communication
Ping from a computer
Updating the package repository
Remote Desktop
Remote Desktop with Windows
Configuring a web server
Testing the PHP installation
Summary
2. Connecting Things to the Raspberry Pi Zero
Connectting digital input - sensor DS18B20
Hardware requirements
Hardware connections
Configuring the one-wire protocol
Software configuration
Displaying the readings on the screen
Connecting analog inputs using an MCP3008 ADC Converter
Raspberry Pi GPIO header
Reading the data with a Python script
Connecting an RTC
I2C setup
DS3231 module setup
Hardware setup
Testing the RTC
I2C device setup
Putting the real-time clock to final test
Summary
3. Connecting Sensors - Measure the Real Things
Measuring flow sensor to calculate the volume of water
Hardware connections
Reading the sensor signal
Reading and counting pulses with Arduino
Calculating water flow rate based on the pulses counted
Calculating flow and volume of water:
Displaying the parameters measured on an LCD
Measuring the concentration of gas
Connections with the sensor and Arduino board
Measuring the level of alcohol with a sensor
Detecting fire with a sensor
Measuring the humidity for plants
Measuring the level of water in a recipient
Measuring temperature, humidity, and light and displaying data on an LCD
Hardware and software requirements
Testing sensors
Displaying data on the LCD
Detecting motion with a PIR sensor
PIR sensor interfaced with Arduino
Detecting if the door is open with a reed switch
Detecting who can get in the house with a fingerprint sensor
Hardware configuration:
Save the fingerprint:
Testing the sensor
Summary
4. Control-Connected Devices
Making a simple web server with Node.js
Controlling a relay from a Raspberry Pi Zero using Restful API and Node.js
JSON structure
Commands with the aREST API
Installing Node.js on your Raspberry Pi Zero
Controlling the relay using aREST commands from a web browser
Configuring the web server
Configuring Node.js on a computer as a web server
Downloading Node.js
Installing Node.js
Configuring web server port 8080 with Node.js
Monitoring temperature, humidity, and light using Node.js with Arduino Wi-Fi
Connecting to the Wi-Fi network
Monitoring temperature, humidity, and light using Node.js with Arduino Ethernet
Code for the application of the Arduino Ethernet shield
Configuring the device in Node.js
Summary
5. Adding a Webcam to Monitor Your Security System
Interaction between Arduino and Raspberry Pi
Installing Arduino IDE in Raspbian
Remote access to Raspberry Pi
Executing Arduino in a graphical interface
Arduino interface in Raspian
Preparing the interface
Selecting the serial port
Downloading a sketch from the graphical interface
Controlling an output connected to Arduino from Raspberry Pi Zero
Controlling the Arduino board from Python
Hardware connections
Connecting a TTL serial camera to Arduino and saving pictures to a micro SD
Detecting motion with the serial TTL camera
Controlling a snapshot from Raspberry Pi
Code for the function to take a picture
Controlling your camera from a web page
Calling the Python scripts from PHP
Code for Python scripts
Monitoring your USB camera for security in a network
Configuring Arduino YUN
Monitoring from the MJPG-STREAMER server
Monitoring the USB camera from the Raspberry Pi
Summary
6. Building a Web Monitor and Controlling Devices from a Dashboard
Configuring MySQL database server
Installing MySQL
Installing MySQL driver for PHP
Testing PHP and MySQL
Installing PhpMyAdmin for administrating databases
Configuring the Apache server
Entering to the phpMyAdmin remote panel
Showing the Arduinobd database
Sending data from Arduino and the Ethernet shield to the web server
Datalogger with MySQL
Programming the script software
Testing the connection
Data queries from the database
Software for the scripts
Scripts for specific data to be displayed
Query for recording temperature
Controlling and dimming a LED
Software requirements
Testing the LED
Controlling the LED from an interface
Controlling the speed of a DC motor
Controlling Lights with electrical circuits
Electrical appliances
Other appliances
Control a door lock
Control watering plants
Remote access from anywhere to your Raspberry Pi Zero
How to access our modem to configure it
Configuring Dynamic DNS
Creating an account at No-ip.org
Controlling lights and measuring current consumption
Building the interface to control and monitor
Installing Jade for Node.js
Interface for controlling and monitoring
Controlling and monitoring Arduino, Wi-Fi, and Ethernet shields on connected devices and sensors
Building the code to control and monitor devices from a single interface
Adding the devices to monitor and control
Summary
7. Building a Spy Police with the Internet of Things Dashboard
Spy microphone that detects noise
Software code
Regulating the current of an AC lamp dimmer
Hardware requirements
Software code
Controlling access with an RFID card
Hardware requirements
Software requirements
Software code
Detecting smoke
Software code
Building an alarm system using the Raspberry Pi Zero
Motion sensor with Raspberry Pi Zero
Software code
The alarm module
Software code
Central interface
Graphical interface
Monitoring the climate from a remote dashboard
Exploring the sensor test
Configuring the remote dashboard (Dweet.io)
Summary
8. Monitoring and Controlling Your Devices from a Smart Phone
Controlling a relay from a smart phone using APP Inventor
Hardware requirements
Software requirements
Creating our first application
Designing the interface
Communicating APP Inventor with Arduino ethernet shield
Code for APP Inventor
Reading JSON response in Android Studio using ethernet shield
Android application
Java class
Permission of the application
Controlling a DC motor using an Android Application
Hardware requirements
Controlling outputs from android using your Raspberry Pi Zero
Controlling outputs with Raspberry Pi via Bluetooth
Controlling lights from an Android Application
Summary
9. Putting It All Together
Integrating the system - development projects
Getting into the details of light sensor
Motion sensor
Automatic light controller
Solar power monitor circuit
Automatic irrigation system with a soil sensor
Arduino water-level controller
Bluetooth based home automation
Controlling access with a matrix keyboard
The keypad
Connecting an LCD screen to display the code
Controlling the door lock with a keypad
Code to access using the keypad
Integrating the system control with relays and devices
Controlling multiple appliances
The complete system
How to set up the power supplies
Power supply for AC loads
Connecting a relay of 24 DC volts to the Arduino board
Summary
Internet of Things Programming with JavaScript
Internet of Things Programming with JavaScript
Copyright © 2017 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: February 2017
Production reference: 1150217
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78588-856-4
www.packtpub.com
Credits
About the Author
Rubén Oliva Ramos is a computer systems engineer, with a master's degree in computer and electronic systems engineering, teleinformatics and networking specialization from University of Salle Bajio in Leon, Guanajuato Mexico. He has more than five years of experience in: developing web applications to control and monitor devices connected with Arduino and Raspberry Pi using web frameworks and cloud services to build Internet of Things applications.
He is a mechatronics teacher at University of Salle Bajio and teaches students on the master's degree in Design and Engineering of Mechatronics Systems. He also works at Centro de Bachillerato Tecnologico Industrial 225 in Leon, Guanajuato Mexico, teaching the following: electronics, robotics and control, automation, and microcontrollers at Mechatronics Technician Career. He has worked on consultant and developer projects in areas such as monitoring systems and datalogger data using technologies such as Android, iOS, Windows Phone, Visual Studio .NET, HTML5, PHP, CSS, Ajax, JavaScript, Angular, ASP .NET databases (SQlite, mongoDB, and MySQL), and web servers (Node.js and IIS). Ruben has done hardware programming on Arduino, Raspberry Pi, Ethernet Shield, GPS and GSM/GPRS, ESP8266, and control and monitor systems for data acquisition and programming.
"I want to thank God for helping me writing this book and his inspiration, to my wife, Mayte, and my sons, Ruben and Dario, for their support while writing this book and in general for their support in all my projects. To my parents, my brother and sister whom I love.
I hope this book covers the main topics for students that want to learn more about Internet of Things projects, and all the prerequisites for building this kind of application."
www.packtpub.com
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every