IoTPy: an IoT platform to sense and respond to critical events.
K Mani Chandy (~k_mani) |
All living things sense and respond to their environments. A tiger senses and responds to a prey if the tiger to survive. Likewise, a deer must sense and respond to a tiger. People around the world now have access to valuable sources of data that help to them to sense and respond to important events. Inexpensive sensors – accelerometers, thermometers, dust sensors – connected to inexpensive onboard computers such as the Raspberry Pi, and sensors in phones, generate valuable data. Twitter and other social media platforms, news sources and webcams, generate data. My talk is an invitation to all Pythonistas to help build a free, open source, Python platform that helps non-experts build useful sense & respond applications using free or inexpensive technologies. I’ve built a package, IoTPy, which you can help extend. Alternatively, you can use ideas from IoTPy to build your own package. You can read about IoTPy at https://www.AssembleSoftware.com which also tells you how to download software from GitHub.
Python has powerful software libraries for AI, data science, signal processing and scientific computation. Programs in these libraries read input, produce output, and then terminate. By contrast, programs in sense & respond applications run forever. A challenge that IoTPy deals with it is using Python software libraries to build non-terminating applications.
Onboard computers now have multiple cores. Some Raspberry Pi models have four cores, and in a few years 8 cores will be available. Sense & respond applications sometimes use multiple computers in a network that may feed servers in the cloud. A challenge for beginning programmers is to exploit the power of multiple cores and multiple computers without getting lost in the details of concurrency locks and thread safety. IoTPy provides a way to exploit concurrency using a single idea: connect multiple cores and multiple computers by connecting output streams of agents to input streams of other agents.
Have a quick look at the first few minutes of the video https://spark.adobe.com/video/lAvjARkF1Cu9c Which is identified in the AssembleSoftware website.
Basic knowledge of Python.
Interest in IoT
https://www.youtube.com/watch?v=Swl9tUnGGGE&t=47m48s (talk at EuroPython 2020)
K Mani Chandy received his B.Tech degree in 1965 from IIT Madras, Masters in Electrical Engineering in 1966 from New York University, and his PhD from the Massachusetts Institute of Technology in 1969 in Operations Research. He worked at Honeywell and IBM and taught in the Computer Science Department at the University of Texas at Austin from 1970 to 1987 where he was the Regents Chair Professor and also served as the chair of the CS department. He was at the Computer Science Department at the California Institute of Technology from 1987 to 2014 where he was the Simon Ramo Chair, and is now an Emeritus Professor. He received the A. A. Michelson Award in 1985 and the IEEE Koji Kobayashi award in 1995 for his contributions to computer performance modeling. He was awarded the John Sherman Fairchild Scholarship in 1987. He received the ACM SIGOPS Hall of Fame award and the ACM Edsger W. Dijkstra prize, with Leslie Lamport, for their paper on distributed snapshots. He received the IEEE Harry H Goode Award in 2017 with Jayadev Misra for contributions to distributed computing. He became an IEEE Fellow in 1990, was inducted into the United States National Academy of Engineering in 1995 and became an ACM Fellow and received a distinguished Alumnus Award from IIT-Madras in 2019. He received teaching awards at the University of Texas and at Caltech and has graduated over 30 PhD students. Chandy has written four books and published widely-cited papers on queuing theory and the performance analysis of computing and communication systems; formal reasoning about concurrent computing systems; programming languages for parallel computing; complex event processing for detecting threats such as earthquakes; and mathematical models of electrical power systems. He is developing a framework, IoTPy, to help students and novice programmers build applications for processing streams of data from sensors and other sources.