Internet Of Things Presentation On Developing IoT’s (Unit 5) Presented by Group Sahil Lanjewar Manoj Madke Utkarsha Raut Prathmesh Pendhare Rohit Neware VI Semester
CONTENTS Introduction To Python. Python Platforms for IoT Development . Introduction To Different Iot Tools. Developing applications through iot tools. Developing Sensor Based Application Through embedded System Platform. Implementing Iot Concepts with Python. Implement loT Using PYTHON.
Introduction To Python. python is a very popular programming language at present. It is among other applications it is very much useful for embedded systems application development for example, IoT based application development python is very popular and it is a lightweight programming language. python is also very easy to learn; and python-based you know python is supported by different embedded systems development platforms or IoT development platforms such as raspberry pi.So , it supports different types of IoT devices and also you know you do not need to take help of complex libraries etcetera etcetera execution is faster and so, there were so many different advantages because of which python-based programming is very important to learn particularly if you are interested in IoT based application development. Python is a very versatile language the scripting is very easy it is very easy to write the read the code and moreover it does not support strict rules for syntax. because it supports an interface with a wide range of hardware platforms and moreover since it is an open-source platform. So, you have lots of libraries, lots of collaborative work. It forms a strong backbone to build large applications.
Python Platforms for IoT Development. Python on Raspberry Pi Python on PyBoard ESP8266 and ESP32 with Micro Python Python on Raspberry Pi The Internet of Things (IoT) is reshaping how businesses operate, allowing for innovative solutions that enhance efficiency and connectivity. A popular platform for developing IoT applications is the Raspberry Pi, a compact and affordable computer that can be easily programmed using Python. This blog will guide you through the process of building an IoT application using Raspberry Pi and Python, making it accessible for businesses and potential clients interested in Python development services.
Python on PyBoard Pyboard is a microcontroller board that runs Micro Python , a lightweight implementation of Python designed for embedded systems and IoT applications. It is particularly useful for controlling hardware devices, such as sensors, actuators, and communication modules, making it an ideal choice for IoT projects. SP8266 and ESP32 with Micro Python ESP8266 and ESP32 are low-cost Wi-Fi-enabled microcontrollers widely used in IoT applications. They support Micro Python , a lightweight version of Python designed for microcontrollers, making IoT development easier and more efficient.
Introduction To Different Iot Tools. IoT development means combining hardware parts and software programs in such a way that the final product could monitor specific values, collect and transfer data, analyze given data and cause the physical device to act correspondingly. Creating such systems is a true challenge. Moreover, the Internet of Things has already been transformed into an industry in its own right, so the need for reliable and comprehensive developer toolkits has also increased. IoT development tools needed to create complex applications are represented by IoT hardware devices (boards, SoM , SoC, sensors, gateways, trackers, and more), IoT app development platforms, IoT operating systems (e.g., Embedded Linux) and programming languages.
Arduino : Arduino is the leading company on the IoT market that produces electronic devices and software for them. Arduino hardware offerings include microcontroller boards, modules, shields and kits. Hardware specifications are suitable for creating various projects, such as robotics and home automation. Flutter : Another hardware product for IoT solutions is Flutter — a programmable processor core. The board is based on Arduino, has a powerful ARM processor, built-in battery charging and a security chip. A long-range wireless transmitter makes this board the perfect fit for wireless networks of sensors. Kinoma : A group of software engineers from Marvell Technology, Inc., a leading manufacturer of memory devices, microcontrollers, telecom equipment and semiconductor devices, has developed a line of open-source Kinoma software and hardware products for the Internet of Things and embedded solutions. Tessel 2 : To create connected devices, you can also use Tessel 2 — a programmable microcontroller supporting JavaScript, Node.js libraries and other languages. It runs Linux and provides access to many NPM modules with all their capabilities. M2MLabs Mainspring : The development of machine-to-machine applications is easy with the M2MLabs Mainspring framework. This open-source Java-based framework is widely used for building fleet management apps and remote monitoring projects. Developing applications through iot tools.
Raspberry Pi OS (ex. Raspbian) : Raspberry Pi OS, formerly known as Raspbian, is the official operating system for the Raspberry Pi hardware. A 32-bit version is available currently, with a 64-bit version in active development. This is a free, Debian-based system. Raspberry includes basic programs and utilities to make the hardware run, but it also compiles thousands of packages and pre-compiled software for easy installation. Node-RED : Node-RED is a free programming tool based on Node.js and designed to integrate distributed IoT hardware and software systems and automate their interaction. It works primarily in Linux environments but can be installed on Android and Windows as well (you’ll only need a Linux subsystem for Windows). Eclipse IoT : A wide range of open-source projects for IoT development is gathered under the Eclipse umbrella. They include software development platforms, frameworks, services, standards, tools for building digital twins, fog computing and edge computing solutions, and many more. Eclipse IoT projects focus on working with the Lua programming language, which is considered a good fit for Internet of Things projects. Site Where : Site Where is an open-source multi-tenant platform for building, deploying and supporting IoT applications at the industrial level. The platform uses technologies such as the Docker framework, Kubernetes, microservices and Apache Kafka. Site Where facilitates big data transfer, storage, processing and integration, device management and event handling. You can deploy Site Platform locally or to the cloud platforms, including Azure, AWS, GCP.
Device Hive : Device Hive offers public, private, or hybrid cloud deployment models, a container-based architecture managed by Kubernetes, and support to libraries written in various languages. You can use this scalable and device-agnostic platform for implementing IoT projects of any complexity. Home Assistant : Home Assistant is a comprehensive home automation software system. This single center integrates smart home devices, providing local control and security. Home Assistant offers convenient mobile applications that enable the remote management of your devices and send notifications if something goes wrong. You can also extend the functionality of this tool by integrating it with additional apps. Open Remote : Open Remote is a platform you can use to create and manage IoT monitoring applications. The primary domains leveraging the tool are smart city and mobility, energy management and asset management. Things Board : The Things Board IoT platform uses MQTT, CoAP and HTTP protocols to connect devices and handle data from them. Out-of-the-box configurable dashboards, charts, maps and widgets provide you with robust real-time visualization of your data, which you can share with partners. In addition, you can create custom widgets using the built-in editor .
Mile sight Device Hub : Mile sight is a leading global provider of surveillance cameras, AI systems, IoT hardware and software products. Device Hub is among the company’s key software solutions. This is a connectivity suite that enables the deployment of multiple devices, their real-time monitoring and remote upgrading. Zetta : Zetta is a platform for designing APIs for IoT devices. The platform is based on Node.js and combines reactive programming, WebSockets and REST APIs. A Zetta server can run in the cloud or locally on hardware such as Raspberry Pi or Intel Edison.
Developing Sensor Based Application Through embedded System Platform. 1. Define the Application Goal Identify what the application should achieve (e.g., monitoring temperature, detecting motion, tracking location). Specify operational requirements like power efficiency, real-time response, or network connectivity. 2. Choose the Embedded System Platform Microcontrollers: Use platforms like: Arduino: Easy for beginners, with extensive libraries for sensors. ESP32/ESP8266: Built-in Wi-Fi and Bluetooth for IoT applications. STM32: Advanced, low-power ARM-based controllers for professional applications. Microprocessors: Raspberry Pi: Powerful, suitable for complex processing and multimedia tasks. 3. Select the Sensors Based on the type of data required: Environmental Sensors: Temperature (DHT11, DS18B20), Humidity (DHT22), Pressure (BMP280).
Motion Sensors: PIR sensors, Accelerometers (ADXL345), Gyroscopes. Proximity/Distance: Ultrasonic sensors (HC-SR04), IR sensors. Light Sensors: LDR, TSL2561 for ambient light measurement. Check sensor specifications like range, accuracy, and compatibility with the Microcontroller. 4. Establish Sensor-Microcontroller Connectivity Interface Protocols: Analog: Use ADC (Analog-to-Digital Converters) for sensors like LDR. Digital: Use GPIO pins for binary output sensors (e.g., PIR). Communication Protocols: I2C (Inter-integrated circuit): For sensors like BMP280 (pressure) or MPU6050 (motion). SPI (serial peripheral interface): For high-speed sensors like certain ADCs or digital accelerometers. UART (universal asynchronous receiver/ transmitter): For GPS modules or other serial devices. 5. Develop Embedded Software Programming Environment:
Arduino IDE: For Arduino and ESP boards. Platform IO: Supports multiple platforms (ESP32, STM32, etc.). Keil uVision or STM32CubeIDE: For STM32 microcontrollers. Code Development: Initialize sensor communication (e.g., configure I2C or SPI settings). Read sensor data and process it (e.g., average readings, detect thresholds). Integrate libraries (e.g., Adafruit or SparkFun libraries for sensors). Implement control logic for actuators if necessary (e.g., turning on a fan based on temperature). 6. Test and Debug Use serial monitors or debugging tools to verify data from sensors. Test the system under real-world conditions to ensure accurate readings. Debug communication issues (e.g., check pull-up resistors for I2C lines). 7. Add Output/Action Mechanisms Output Devices: Display sensor data using LCDs (16x2, OLED) or LED indicators. Send data to a cloud platform or mobile app for remote monitoring via Wi- Fi/Bluetooth.
Control Actuators: Trigger relays, motors, or buzzers based on sensor data. 8. Optimize Power Consumptio n Implement low-power modes for microcontrollers (e.g., sleep mode). Use energy-efficient sensors and components. Optimize sampling rate and data transmission intervals. 9. Integrate Connectivity (Optional) For IoT applications, transmit sensor data using: Wi-Fi: ESP32, ESP8266. Bluetooth: BLE modules (HC-05, ESP32 BLE). LoRa: Long-range communication for low-power devices. Cellular: GSM modules (SIM800, SIM900). 10. Deploy and Monitor Build the final circuit on a PCB or prototyping board. Encase the system for protection and deploy it in the target environment. Use monitoring tools (like Blynk or Things Board) to visualize and analyze data in real time
Implementing Iot Concepts with Python. Introduction . Python is one of the most widely used languages in IoT (Internet of Things) due to its simplicity, readability, and extensive library support. IoT applications involve collecting data from sensors, processing it, and transmitting it over a network to cloud servers or databases for analysis and automation. The recipe for the internet of things is very simple. A 'thing', which could literally be anything, is fitted with an embedded system which connects it to the internet, in other words, it has its own IP address.
Why We used Python In loT ? IoT occupies a place of importance in Wireless Sensor Networks, Data Analytics, Cyber Physical Systems, Big Data and Machine Learning. It is also very focused on real time analytics and processes. So, for the development of an IoT solution, one would need a programming language which is Python. Because Python is most popular & has all the facility to do all these things using his libraries. Easy to Learn & Use – Simple syntax makes development faster. Cross-Platform Compatibility – Runs on various hardware like Raspberry Pi, ESP32, ESP8266, Arduino, etc. Large Community & Libraries – Availability of IoT-specific libraries like Machine Learning & AI Integration – Python makes it easy to integrate AI/ML models in IoT projects.
Implement loT Using PYTHON. We will be discussing the PYTHON packages which we used for developing IoT Application in Python. Mraa Socketse Mysqldb Numpy Matplotlib Pandas Opencv Tkinter Tensorflow Paho-mqtt
Mraa : This library is used in microcontrollers like: Intel Edition, Raspberry pi. Being ahigh level library, reading from and writing to pins is a one-line affair, and the library also provides support for communication protocols such as I2C, UART and SPI. Socket : sockets is a package which facilitates networking over TCP/IP and UDP using Python. One of the more interesting uses of sockets, is that one can build their own communication protocol using this package as the base. Mysqldb : A database is a no-brainer when it come to most IoT applications. For something whose sole purpose is to send data to the internet, for generating some prediction using machine learning . Numpy : This package is use for scientific computing using python. very similar to MatLab , but much lighter. The feature I use most is to read sensor data in bulk from my databases and work on them using the inbuilt functions. Matplotlib : Data visualization is one of the most fundamental operations that can be performed. It looks pretty impressive when you convert a huge list of numbers to a concise graph which can be understood intuitively. matplotlib provides a number of different styles of graphs that can be plotted using local data. Pandas : Pandas is a package dedicated towards data analysis. It is in essence, a local alternative to using SQL databases which is more suited to dealing with data as it is built on NumPy.
OpenCV : OpenCV is a Python port of the very successful C library for image processing. It contains high-level variants of familiar image processing functions which make photo analysis much easier. The big brother of signal processing, image processing. Tkinter : Tkinter is a GUI development library which comes bundled in with all distributions of Python. This is extremely useful in situations such as functionality testing or repeated executions of the same code. Tensorflow : This library is also used for applying ML to iot Objects. This is a very useful library to have if you deal with a lot of non-linear datasets or work extensively with decision trees and neural networks . paho-mqtt : This library is used for fast communication using MQTT protocol in PYTHON. MQTT requests can be made directly within Python, without any additional setup to be done. Especially useful in the prototving stage.