Explore chapters and articles related to this topic
Open-Source Tools for IoT Security
Published in Syed Rameem Zahra, Mohammad Ahsan Chishti, Security and Privacy in the Internet of Things, 2020
Anam Iqbal, Mohammad Ahsan Chishti
Contiki is an open-source lightweight operating system used in the IoT. It is distributed using the 3-clause BSD-style license. It uses C language for development, libraries, and tool-chains and can run on devices such as ARM-powered devices. It supports network stacks like uIP, world’s smallest IPv6 stack (IPv6, 6TiSCH, and CoAP) and Rime Stack which includes TCP, UDP and HTTP protocols, with the smallest footprint. MAC is implemented through Rime, and the upper-level implements IPv6. It is most suitable for event-driven systems, and event-scheduling is done as per cooperative scheduling. It provides dynamic loading and unloading of individual programs and services. The kernel is monolithic and supports pseudo-threading. The implementation of protothreads has been introduced to minimize the system requirements, as they avoid the overhead generally, created by multithreading. Contiki does not provide a Memory Protection Unit, but a provision of changing the memory requirements during run time is available. Contiki provides persistent storage support through the Coffee Flash file system. It is a suitable choice for high-constrained devices due to its low memory and a low energy requirement. The simulator used with Contiki is Cooja (Musadiq et al., 2018; Bansal and Kumar, 2020).
Internet of Things: A Progressive Case Study
Published in Vijender Kumar Solanki, Vicente García Díaz, J. Paulo Davim, Handbook of IoT and Big Data, 2019
NodeMCU firmware implements Lua 5.1 over Espressif SDK for its ESP8266 SoC (system on chip), and the IoT modules are based on this. NodeMCU Lua is based on eLua that is a featured implementation of Lua 5.1 and is best suitable for embedded system development and its execution. NodeMCU Lua provides a scripting framework that is used for useful applications within the limited RAM and flash memory resources of embedded processors like that of ESP8266. The NodeMCU development kit is used to open the appropriate COM (communication) port for the ESP8266 processor through USB cable and a SPIFFS (serial peripheral interface flash file system) that requires a good Wi-Fi connection. To enable ESP8266 firmware flashing, GPIO0 pin must be pulled low before the device is reset. Table 12.1 shows the operations and values required for communication between the ESP8266 and system using NodeMCU firmware flasher [18,19]. These values are subjected to change with respect to the machine used.
The Contiki Operating System: A Tool for Design and Development of IoT—Case Study Analysis
Published in Ricardo Armentano, Robin Singh Bhadoria, Parag Chatterjee, Ganesh Chandra Deka, The Internet of Things, 2017
B. Venkatalakshmi, A. Pravin Renold, S. Vijayakumar
The various features of Contiki OS are as follows: Support for recently approved standards by IETF (Internet engineering task force) in the domain of 6LoWPAN such as RPL (routing protocol for low-power lossy networks), CoAP (constrained application protocol).Support for emulation by means of the simulator Cooja.Usage of lightweight, stackless thread called protothread. Protothreads avoid conditional blocking and reduce explicit state machines in event-driven programs. A protothread is stackless, that is, all protothreads in a system run on the same stack.Mechanism to operate nodes in low power state and to support tool for monitoring energy consumption by the nodes.Support for a light weight flash file system called as coffee. Coffee file system is used as storage device in resource-constrained system. It uses application program interface to provide the functionality such as storage, access, and handle data on storage.Usage of shell-based debugging environment. The shell commands allow text-based interaction with sensor nodes based on Unix-like terminal.
A novel solution for energy-saving and lifetime-maximizing of LoRa wireless mesh networks
Published in Journal of Information and Telecommunication, 2023
Hoang Hai Son, Vo Phuc Tinh, Duc Ngoc Minh Dang, Bui Thi Duyen, Duy-Dong Le, Thai-Thinh Dang, Quoc-Hung Nguyen, Thanh-Qui Pham, Van-Luong Nguyen, Tran Anh Khoa, Nguyen Hoang Nam
As mentioned in the previous subsection, the heart of the proposed solution is an ESP8266-12F microcontroller. Applying the deep sleep mode for 24 hours presents two saving and super-saving energy consumption solutions. To facilitate an explanation of the energy-saving policy, we refer to the architecture of the ESP8266-12F microcontroller. The first solution is energy-saving (ES); when using the microcontroller's deep sleep mode, all of its functional features are off, leaving only the last one, the real-time clock (RTC), remaining active. So, we assume that in 24 hours of deep sleep mode, it wakes up once every 1 hour, and each time 15 seconds are required to set the state and transmit data. Thus, each time sent, data is counted and saved to the memory, and every hour the microcontroller has to wake up due to counter overflow. However, this is not the best solution. By using the Serial Peripheral Interface Flash File System (SPIFFS) feature of the microcontroller, we propose to extend the second solution, termed energy-super saving (ESS). With this solution, we provide a flexible choice when configuring microcontrollers. Time off is included within a 24-hour day, as we do not need to use the entire system. During that break, the microcontroller wakes every hour and operates once to reset the timer. Each time this takes one second.