Lesson-1_Everything is Connected and Become Programmable.pdf
Document Details
Uploaded by IndulgentRegionalism
EARIST
Tags
Full Transcript
Lesson 1: EVERYTHING IS CONNECTED AND BECOMES PROGRAMMABLE 1.1 Digital Transformation Digitization Transforms Business The Evolution of Digital Transformation ▪ Today there are more smart devices than there are people: Many people are connected to the Internet 24 hours a day....
Lesson 1: EVERYTHING IS CONNECTED AND BECOMES PROGRAMMABLE 1.1 Digital Transformation Digitization Transforms Business The Evolution of Digital Transformation ▪ Today there are more smart devices than there are people: Many people are connected to the Internet 24 hours a day. By 2020 each consumer will have 6.58 smart devices. ▪ Modern digital networks make all of this possible ▪ Digital transformation is the application of digital technology to provide the stage for business and industry to innovate. Digitization Transforms Business The Impact of Digital Transformation on Business Digitization Transforms Business Can Smart Devices Think? ▪ If programmed appropriately, smart devices are able to evaluate data that is provided to them and modify processes or settings “on the fly”. ▪ If provided with sufficient data, they can “learn” and modify their own code based on the new parameters. ▪ Smart Cities use sensors to control many of their infrastructure systems such as traffic flow, parking, water utilization, and hydro. ▪ Self-driving cars are equipped with many ultrasound sensors, cameras, precision GPSs, and computers. Globally Connected Through Networks Networking is the Foundation ▪ Fifty billion things provide trillions of gigabytes of data ▪ Networks provide the foundation for the Internet and the digitized world. ▪ Networks can range from simple networks consisting of two computers to networks connecting millions of devices. ▪ Networks can provide products and services to customers through their connection to the Internet. ▪ The Internet is the largest network in existence and effectively provides the “electronic skin” that surrounds the planet. Globally Connected Through Networks Network Types ▪ Local Area Network (LAN) - Networks in a small geographic area, such as a home or small business. ▪ Wide Area Networks (WANs) - A collection of LANs that provides inter-LAN and Internet connectivity. ▪ Internet - A multi-layer global network system that connects hundreds of millions of computers. ▪ Wireless Networks - Use electromagnetic waves to carry signals over the network. ▪ The Cloud - Data centers or groups of connected servers used to store and analyze data, provide access to on-line applications, and provide backup services. ▪ The Edge - The physical “edge” of a corporate network. ▪ Personal Area Network (PAN) - Connecting your smartphone to your car using Bluetooth is ▪ Fog Computing - The data from IoT devices can be an example of a PAN. pre-processed for immediate use in the fog located at the edge of the network. 1.2 Devices that Connected to the IoT The Growth of IoT Devices What is the IoT? ▪ The Internet of Things (IoT) is the connection of millions of smart devices and sensors connected to the Internet. ▪ Previously inanimate objects such as doorknobs or light bulbs can now be equipped with an intelligent sensor that can collect and transfer data to a network. ▪ An estimated 3 million new devices are connected to the Internet each month. ▪ In the next four years, there are going to be over 50 billion connected devices worldwide. ▪ Two-thirds will be “things”: sensors, actuators, and newly invented intelligent devices that monitor, control, analyze, and optimize our world. The Growth of IoT Devices What are the Benefits of Connecting these IoT Devices? The Growth of IoT Devices How are IoT Devices Connected to the Network? ▪ A sensor needs to be connected to a network so that the gathered data can be stored and shared. ▪ Controllers are responsible for collecting data from sensors and providing network or Internet connectivity. Controllers may have the ability to make immediate decisions, or they may send data to a more powerful computer for analysis. ▪ Sensors often work together with a device called an actuator. ▪ Actuators take electrical input and transform the input into physical action. Connecting IoT Devices to the Network The Future of Networks ▪ Artificial Intelligence (AI) – Devices have the ability to “think” on their own. ▪ Intent-Based Networking (IBN) – Providing software with rules, guidelines, or intent so that data could modify the network, infrastructure features, or security features within a network. ▪ Example - A business defines that a contract employee is given access to only a specific set of data and applications. This is the intent. In an IBN system all the network devices will be automatically configured to fulfil this requirement across the network, no matter where the employee is connected. 1.3 Apply Basic Programming to Support IoT Devices Basic Programming Concepts Follow the Flowchart Basic Programming Concepts Flowcharts Flowcharts: ▪ Diagrams that are used to represent processes or workflows. ▪ Illustrate how a process should work. ▪ Show input states, any decisions made, and the results of those decisions. Basic Programming Concepts System Software, Application Software, and Computer Languages ▪ Two common types of computer software: system software and application software. Application software programs are created to accomplish a certain task or collection of tasks. System software works between the computer hardware and the application program. Both system software and application software are created using a programming language. Python is an example of an interpreted programming language. Basic Programming Concepts Programming Variables ▪ Programming languages use variables to hold phrases, numbers, or other important information that can be used in coding. Variables can hold the result of a calculation, the result of a database query, or some other value. x+y=z “x, y and z” are variables which can represent characters, character strings, numeric values or memory addresses a = 10 associates the value 10 to variable “a” ▪ Variables allow programmers to quickly create a wide range of simple or complex programs which tell the computer to behave in a pre-defined fashion. Basic Programming Concepts Basic Program Structures ▪ Most common logic structures are: IF – THEN allows the computer to make a decision based on the result of an expression. myVar > 0 True if the value stored in the myVar variable is greater than zero. If false, the computer moves on to the next structure, If true, the computer executes the associated action before moving on to the next instruction in the program. FOR Loops execute a specific set of instructions a specific number of times, based on an expression. A variable acts as a counter inside a range of values identified by a minimum and a maximum. Every time the loop is executed, the counter variable is incremented. When the counter is equal to the defined maximum value, the loop is abandoned and the execution moves on to the next instruction. WHILE Loops execute a specific set of instructions while an expression is true. Basic Programming Using Blockly What is Blockly Setting Up a Variable Work Space ▪ Visual programming tool created to help beginners understand the concepts of programming. Allows a user to create a program without entering any lines of code. ▪ Assigns different programming structures to colored blocks which contain slots and spaces to allow programmers to enter values. Programmers can connect structures together by dragging and attaching the appropriate blocks. ▪ Specific blocks represent functions. Select and drag function blocks to the work space and fill in the required slots. Basic Programming Using Blockly Blockly Games https://blockly-games.appspot.com/ Programming with Python What is Python? Guessing Guessing Game with Game with Python Blockly ▪ Python is a very popular language that is designed to be easy to read and write. ▪ Philosophy of the language: Beautiful is better than ugly Explicit is better than implicit Simple is better than complex Complex is better than complicated Readability counts Programming with Python The Python Interpreter Interpreter Welcome Message ▪ The Python interpreter understands and executes Python code. Python code can be created in any text editor and Python interpreters are available for many operating systems. ▪ In Linux machines, the Python interpreter is usually installed in /usr/bin/python or /usr/bin/python3. ▪ With the new Windows Python installer, Python is installed by default into the user’s home directory. After the Python interpreter has been installed, it operates somewhat like the Linux shell. This means that when called with no arguments, it reads and executes commands interactively. When called with a file name argument or with a file as standard input, it reads and executes a script from that file. Programming with Python The Python Interpreter (Cont.) IF-THEN Block ▪ To start the interpreter, simply type python or python3 at the shell prompt. ▪ In interactive mode, the interpreter waits for commands. The primary prompt is represented by three greater-than signs (>>>). Continuation lines are represented by three dots (...). ▪ The >>> prompt indicates the interpreter is ready and waiting commands. Programming with Python Variables and Basic Statements in Python ▪ The interpreter receives and executes statements interactively. ▪ Special variable “_” ▪ Acts as a simple holds the result of calculator. the last expression issued. ▪ To assign values to ▪ Attempts to use a not defined variable will variables, use the = sign. result in an error. Programming with Python Variables and Basic Statements in Python (Cont.) ▪ The interpreter receives and executes statements interactively. ▪ Print statement prints the ▪ Functions allow result of the expression it was given. for a block of code to be given ▪ Use the backslash character (\) to escape a name and re- characters. As an example, a string uses used as needed. double quotes but also needs to use a double quote within the string. ▪ Single quotes or double quotes can be used to wrap strings. Programming with Python Useful Functions and Data Types in Python ▪ Python supports many useful functions and datatypes. Some of the more important ones are as follows: ▪ Range() - Generates a list of numbers usually used to iterate with FOR loops. range(stop) - number of integers (whole numbers) to generate, starting from zero range([start], stop[, step] – Starting number of the sequence, the ending number in the sequence, and the difference between each number in the sequence. Programming with Python Useful Functions and Data Types in Python (Cont.) Tuples - sequences, separated by parentheses. Lists - sequence of changeable Python objects, created by putting different comma-separated values between square brackets. Programming with Python Useful Functions and Data Types in Python (Cont.) ▪ Sets are unordered collections of unique elements. Common uses include membership testing, removing duplicates from a sequence, and computing standard math operations on sets such as intersection, union, difference, and symmetric difference. Programming with Python Useful Functions and Data Types in Python (Cont.) ▪ A dictionary is a list of elements that are separated by commas. ▪ Each element is a combination of a value and a unique key. ▪ Each key is separated from its value by a colon. ▪ Dictionary elements can be accessed, updated, and deleted. Programming with Python Programming Structures in Python ▪ FOR Loop ▪ IF-THEN, ELSE, ELIF Iterates the items of any ▪ WHILE Loop Make decisions based upon the sequence (a list or a string), in the order that they appear Executes a block of code if result of an expression the expression is true in the sequence ELSE specify instructions to be executed if the expression is false. ELIF is used to perform a second test. 1.4 Prototyping Your Idea What is Prototyping? Defining Prototyping ▪ Prototyping is the process of creating a working model of a product or system. ▪ In IoT, it helps to have design skills, electrical skills, physical/mechanical skills, programming skills, and to understand how TCP/IP works. ▪ Because the IoT is still developing, there are still unknown tasks to discover. ▪ This is a great time to invent something that is part of the IoT. What is Prototyping? How to Prototype ▪ How do you prototype? A team at Google used the “Rapid Prototyping Method” to create the Google Glass. ▪ Kickstarter, Indiegogo, and Crowdfunder are just three of the many online crowd funding programs. ▪ What IoT invention will you create? Prototyping Resources Physical Materials ▪ A good place to start is, of course, the Internet. People who have never physically met can now collaborate and work together. ▪ Maker Media is a global platform for connecting makers with each other to exchange projects and ideas. ▪ Making Society has a good section on modeling plastic and clay. ▪ LEGO Mindstorms has a large community of contributors and fans. ▪ Meccano, or Erector Set, is a model construction system that consists of reusable metal strips, plates, angle girders, wheels, axles, and gears, with nuts and bolts to connect the pieces. It lets you build working prototypes and mechanical devices. ▪ 3D printing is the process of making a solid object based on a 3D model computer file. Prototyping Resources Electronic Toolkits ▪ While you can create programs for almost any computer, some platforms are designed for the beginner. Below you will find some of the most popular platforms: Arduino is an open-source physical computing platform based on a simple microcontroller board, and a development environment for writing software for the board. You can develop interactive objects that take input from a variety of switches or sensors to control lights, motors, and other physical objects. Raspberry Pi is a low cost, credit-card-sized computer that plugs into a computer monitor or TV. You operate it using a standard keyboard and mouse. It is capable of doing everything a computer can do, from browsing the Internet and playing high-definition video, to making spreadsheets, word-processing, and playing games. The Beaglebone is very similar to the Raspberry Pi in size, power requirements, and application. The Beaglebone has more processing power than the Raspberry Pi; therefore, it is a better choice for applications with higher processing requirements. Prototyping Resources Programming Resources ▪ Programming is critical to the IoT. Creating custom code is very useful when developing an IoT solution. There are many other free resources that can help you get started with programming: The MIT OpenCourseWare (OCW) is a web-based publication of almost all MIT course content. Open and available to the world, OCW is a great place to get familiar with computer programming for free. OCW programming related courses can be found at http://ocw.mit.edu/courses/intro-programming. Khan Academy is a non-profit educational website created in 2006 to provide “a free, world-class education for anyone, anywhere”. The lectures related to computer programming can be found at https://www.khanacademy.org/computing/cs. Code Academy is another excellent resource. It relies on interactivity to help people learn how to write computer programs. You can find them at http://www.codeacademy.com. Prototyping Resources Community Inventor and Entrepreneurship Workshops ▪ So, perhaps you have just created something really great. What now? There are a number of places where you can get help exposing your idea or prototype to others. ▪ Investigate what is available in your community. ▪ The Internet has many resources to help your idea get exposure. A good example is Quirky. Quirky allows users to share their ideas. When an idea is submitted, other Quirky users can vote and choose whether or not they want to support your idea. If an idea is good, it may become a real product. You can learn more about Quirky at https://www.quirky.com/how-it-works.