阿瑟东
B. Data Transmission Transmitting data between devices and controllers is done using one or more communication technologies. These include Bluetooth, ZigBee, Wi-fi, Ethernet or GSM. Bluetooth and ZigBee are commonly used for in-home data transmission and control and provide the link between the sensors and the central processing unit. These data communication technologies are popular because of their low power consumption, and simplicity to implement [4][5]. Furthermore, IoT requires the use of either Wi-fi or Ethernet to connect to the internet. While Ethernet is by far faster than Wi-fi connection, the high data rate is not essential for home automation applications. Additionally, Wi-fi has the
advantage of mobility, making it more widespread in most systems. Wi-fi technology consumes more energy than alternatives such as Bluetooth or ZigBee. The power consumption can be reduced by lowering the frequency of data uploading.
C. Data Processing (Microcontroller) The data collected in a home automation system is usually processed and managed by a microcontroller such as Arduino, Raspberry Pi, and NodeMCU. Raspberry Pi is a small single microcontroller computer. With a higher RAM of 256MB or 512Mb, depending on the model, it can handle more complex tasks than other controllers and used mostly as a central processing unit for multiple devices. Most new models of Raspberry Pi have USB and Ethernet ports, making it easy to upload data to the internet [1][2]. On the other hand, Arduino is a single-board microcontroller that can be simply programmed to execute commands. Arduino comes in a variety of models with onboard flash memory ranging from 32kB to 512kB, and a typically a RAM of 2kB. Evidently, this controller is less powerful than the Raspberry Pi. However, most Arduino models are cheaper, easier to handle, and powerful enough to deal with home automation tasks. Another option is to use the NodeMCU. It is an Arduino based microcontroller but with the addition of the ESP8266 Wi-Fi chipset. This microcontroller has a memory of 128kB and a 4MB storage. It is mostly used for a single IoT application, or to eliminate the need for a central processing unit. Since each part of the system can upload data to the server individually, this also lowers the complexity of the coding and the connection chain [6]. The biggest advantage of the NodeMCU over the other alternatives is the significantly low price for a controller that can connect to the internet directly using Wi-fi, without the need for any additional peripherals of modules. An issue is that the NodeMCU board has only one analog input, which limits its applications to as single data monitoring system. However, this drawback can be compensated for by using the ASD115, which is an analog to digital converter that has four analog input pins and has a higher conversion resolution of 16-bits.
D. Data Display & User Interface The interaction between the user and the system can be done in several ways. One option is to use an application. There are many simple means to create a mobile or a webbased app to display data, even with a limited knowledge of programming. Another control option is through mobile GSM where the user can send commands in codes by SMS to the microcontroller. This control method requires a special GSM module added to the circuit. This method can also be applied using emails [7].