Abstract:
This work presents a programmable toolkit that allows the design and implementation of a smart weather system(SWS) at a local level. The uPyCraft software development kit (SDK) was used to load the MicroPython code and scrap three weather values (surface temperature, relative humidity and atmospheric pressure) from the DHT11 and BME280 sensors connected to the ESP8266 microcontroller. The NetBeans SDK was used to develop the database management system using SQLite and Java programing to store the collected data. The RStudio SDK was used for statistical data analysis, time series forecasting and in the development of a dashboard. The toolkit also facilitates expansion of functionalities of an existing automatic weather station (AWS) like that at the Botswana International University of Science and Technology (BIUST) into a fully-fledged SWS. The K-Nearest Neighbour (KNN) was used for multi-step ahead forecasting of maximum air temperature as a proof of concept in using the weather data collected from the BIUST AWS. The Multi-InputMulti-Output (MIMO) strategy and the Recursive strategy were compared through the KNN algorithm. The performance of these two predictive models were assessed using the mean absolute error (MAE) and correlation coefficient(r). The optimum predictive performance of MIMO outperformed that of the Recursive strategy with a 95% accuracy compared to 67% of the latter. This work is the first of its kind in developing a programmable toolkit to bridge existing gaps in the availability, access and use of weather data generated by the BIUST AWS. The developed dashboard can be used for dissemination of weather outputs to end users. The generated datasets can be used by students, researchers and data analysts to evaluate machine learning algorithms and determine optimal solutions based on real world weather data instead of using artificial data. The proposed programmable toolkit is scalable, with potential applications in smart houses, smart villages, and smart irrigations.