{'fraction_non_alphanumeric': 0.03065134099616858, 'fraction_numerical': 0.006130268199233717, 'mean_word_length': 5.401960784313726, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Applying Model Driven Engineering Techniques to the Development of Contiki-Based IoT Systems

The huge variety of smart devices and their communication models increases the development complexity of embedded software for the Internet of Things. As a consequence, development of these systems becomes more complex, error-prone, and costly. To tackle this problem, in this study, a model-driven approach is proposed for the development of Contiki-based IoT systems. To this end, the Contiki metamodel available in the literature is extended to include elements of WiFi connectivity modules (such as ESP8266), IoT Log Manager, and information processing components (such as Raspberry Pi). Based on this new metamodel, a domain-specific modeling environment is developed in which visual symbols are used and static semantics (representing system constraints) are defined. Also, the architectural code for the computing components of the IoT system such as Contiki, ESP8266, and RaspberryPi are generated from the developer's instance model. Finally, a Smart Fire Detection system is used to evaluate this study. By modeling the Contiki-based IoT system, we support model-driven development of the system, including WSN motes and sink nodes (with ContikiOS), WiFi modules and information processing components.