Introduction to the Internet of Things (Materials)
When I first started my PhD, I began working on a small project related to wireless sensor networks. The main goal was to deploy numerous miniature nodes capable of sensing their environment and communicating with each other within a monitoring setting. These nodes would self-organize into a network, collect environmental data, and transmit it back for display and analysis. This was my first close encounter with sensor networks. For months, my desk was filled with wireless sensor nodes; I studied the code line by line, debugged network functions, celebrated when the network connected successfully, and pulled all-nighters trying to fix stability issues. Later, this project was exhibited at a technology fair and received positive feedback. During the experimentation process, I also developed various tools to improve efficiency, became familiar with low-level technologies, and gained insights into many critical factors affecting IoT system construction—laying the foundation for our future large-scale IoT systems.
Later, the technology evolved from sensor networks into what we now call the Internet of Things (IoT), which has rapidly advanced and attracted significant attention. An interesting phenomenon has emerged: almost every startup or entrepreneurial project today tries to associate itself with the IoT, often combining it with cloud computing, big data, and other trending technologies in their project descriptions. Indeed, IoT technology has quietly permeated nearly every aspect of life and industrial production. In fact, many current corporate technologies and products already incorporate IoT elements—what we see as distinct products are often carriers integrating multiple technologies.
As previously mentioned, the IoT is a broad concept. Research on the IoT and the construction of IoT systems involve nearly all aspects of computer science. A true understanding of the IoT requires foundational knowledge in computer networks, operating systems, computer architecture, programming languages, compiler principles, and system development. On one hand, by deepening our understanding of networking, operating systems, big data, computer architecture, programming languages, compiler theory, and system development, we can enhance our comprehension of the IoT. On the other hand, an IoT system is essentially a miniature system containing all fundamental computing elements—often even more simplified than traditional computer systems. Therefore, studying the IoT can also deepen our understanding of these core computer science disciplines.
Practice reveals truth—the IoT serves as a microcosm of computer systems. Through research, we have observed that while there is abundant discussion of concepts, hands-on learning materials that allow active participation remain relatively scarce. This is naturally tied to the characteristics of IoT itself. As we've noted, IoT spans a wide range of domains and knowledge areas. Implementing practical projects involves many components, often leading to uncertainty and difficulty in deciding what to include. Based on our prior research experience and interactions with students, this course aims to develop a set of experimental methods accessible and engaging for everyone. The main feature of this course is its integration of real-world IoT technologies and alignment with cutting-edge developments in IoT research, using common, simple IoT devices such as mobile phones. This enables students to observe tangible experimental results and experience the process firsthand. Topics covered include IoT communication, localization, sensing, and system construction. Most experiments can be completed using smartphones or basic embedded devices, eliminating the need for specialized equipment and solving the traditional problem of difficult experimental setup.
"A sparrow may be small, but it has all five vital organs." Despite the simplicity of the devices used, the breadth of technology and knowledge involved remains comprehensive. Through directly participatory experiments, we aim to promote deeper technical understanding.
The motivation behind compiling this material stems from our own accumulated research experience in IoT, during which we encountered numerous challenges. In solving these problems, we found that many others faced similar difficulties. We hope that by organizing and sharing our experimental materials and insights here, we can provide some help to those seeking to understand the IoT—our greatest wish would be to make even a small contribution.
Ultimately, we hope this material helps achieve some of the following goals:
- Understand the background and history of IoT development
- Grasp the fundamental technologies of IoT
- Become familiar with major development trends and international frontiers in IoT
- Gain proficiency in building IoT systems
Target audience for this material includes:
- Students interested in learning about IoT
- Individuals aiming for in-depth research in IoT
- Entrepreneurs planning IoT-related startups
Acknowledgments: This material is the result of team effort, made possible by the strong support from team members Xie Pengjin, Li Yinghui, Xu Zhenqiang, Yang Jing, Song Zhipeng, Tong Shuai, Wang Zhao, and other members.
Note: Much of the content in this material is still in draft and refinement stages, and errors or inaccuracies may exist. We appreciate your understanding and welcome your feedback. Some images and materials are sourced from the internet; please contact us promptly if there are any copyright concerns.
This content must not be reproduced or distributed without explicit permission from the author.
Jiliang Wang
September 2019