themselves into the fabric of everyday life until they are indistinguishable from it. —— Mark Weiser, Xerox Parc, 1991 The Computer for the Twenty-First Century
now beginning. First were mainframes, each shared by lots of people. Now we are in the personal computing era, person and machine staring uneasily at each other across the desktop. Next comes ubiquitous computing, or the age of calm technology, when technology recedes into the background of our lives.
do something else. • The best computer is a quiet, invisible servant. • The more you can do by intuition the smarter you are; the computer should extend your unconscious. • Technology should create calm.
of Things, haptic computing, and "things that think” • Research topics: distributed computing, mobile computing, location computing, mobile networking, context-aware computing, sensor networks, human-computer interaction, and artificial intelligence.
and other items—embedded with electronics, software, sensors, actuators, and network connectivity that enable these objects to collect and exchange data.
in which computation is largely or completely performed on distributed device nodes known as smart devices or edge devices as opposed to primarily taking place in a centralized cloud environment. • Edge refers to the geographic distribution of computing nodes in the network as Internet of Things devices. Reference: https://en.wikipedia.org/wiki/Edge_computing
processing latency • Faster feedbacks • Offline capability • Reduce resource cost: only send and store useful data to the cloud Reference: https://en.wikipedia.org/wiki/Edge_computing
devices: • Don’t have routable connectivity to the Internet, for example, Bluetooth devices. • Don’t have processing capability needed for transport-layer security (TLS) and as such can't communicate with remote APIs • Don't have the electrical power to perform required network transmission.
the participating devices are capable of communicating without one, in order to: • Condensing & cache data • Manage Timestamps • IPV6 to IPV4 translation • Ingesting and uploading other flat-file-based data • Firmware updates
a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks.
transfer protocol for use with constrained nodes and constrained networks in the Internet of Things. • The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation. CoAP
protocol for message-oriented middleware based on XML (Extensible Markup Language). • It enables the near-real-time exchange of structured yet extensible data between any two or more network entities. Originally named Jabber.
a type of single board computer that can be plugged into a carrier board/baseboard, or some motherboards. • Reduce the cost of the base board or the main PCB (Printed Circuit Boards) • Design-reuse, can be integrated into many embedded computer applications
are common • Typically, the forward voltage of an LED is about 1.8–3.3 volts; it varies by the color of the LED. A RED LED typically drops 1.8 volts, but voltage drop normally rises as the light frequency increases, so a BLUE LED may drop around 3.3 volts. • To connect a LED to Arduino or Raspberry Pi: 5V - 2V / 0.02A = 150 ohm
provide a programmable interface to read the state of a binary input device (such as a pushbutton switch) or control the on/off state of a binary output device (such as an LED).
a common method used to apply a proportional control signal to an external device using a digital output pin. (e.g. servo motors, LCD display). It is a technique for getting analog results with digital means. • Frequency (expressed in Hz): describes how often the output pulse repeats. • Period is the time each cycle takes and is the inverse of frequency. • Duty cycle (expressed as a percentage) describes the width of the pulse within that frequency window.
bus connects simple peripheral devices with small data payloads. Sensors and actuators are common use cases for I2C. Examples include accelerometers, thermometers, LCD displays, and motor drivers. • I2C is a synchronous serial interface, relies on a shared clock signal to synchronize data transfer between devices. I2C devices connect using a 3-Wire interface consisting of: • SCL: Shared clock signal • SDA: Shared data line • GND: Common ground reference
are typically found where fast data transfer rates are required. SPI is also a synchronous serial interface, it relies on a shared clock. • SPI supports full-duplex data transfer, meaning the master and slave can simultaneously exchange information. To support full-duplex transfer, the bus must provide the following separate signals, which makes SPI a minimum 4-Wire interface: • MOSI: Master Out Slave In • MISO: Master In Slave Out • CLK: Shared clock signal • GND: Common ground reference
hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. • Complex peripheral devices such as GPS modules, LCD displays, and XBee radios typically use UART ports (often simply called serial ports) to communicate. • Unlike SPI and I2C, UART only supports point-to-point communication between two devices.
to be secure. Cameras Gateways HVAC Control Smart Meters Point of Sale Inventory Control Interactive Ads Vending Machines Security Systems Smart Doorbells Routers Energy Monitors Asset Tracking Fleet Management Driver Assist Predictive Service
environmental temperature and pressure data from a BMP280 sensor, displays the latest reading on the Rainbow HAT, and send the data to a designated cloud service (Google Pub/Sub or AWS IoT). Reference: https://codelabs.developers.google.com/codelabs/androidthings-weatherstation/index.html