Introduction: Background on Kitui County, Kenya

Kitui County is one of Kenya’s 47 counties located in the lower eastern region of the country. The county has eight subcounties, namely, Kitui Central, Kitui South, Kitui East, Kitui Rural, Kitui West, Mwingi North, Mwingi West, and Mwingi Central. There are three livelihood zones in the county, marginal mixed farming, mixed farming livelihood zone, and formal employment, contributing 44%, 52%, and 4% of the population, respectively. The county has a population of 1,136,187 (Kenya National Bureau of Statistics (KNBS) 2019) people and covers an area of 30,570 square kilometers, of which 6,370 square kilometers is covered by Tsavo National Park (Magee et al. 2017). A large part of this County constitutes arid and semiarid land, and therefore over 50% of the population practice mixed farming and hence cultivate small pieces of land, and therefore the farming is heavily dependent on rainfall.

Climate Change and its Impact in the Region

Africa is considered to be one continent with the highest growth in population at 3% annually (IMF 2019). It is projected that by the year 2050, it will constitute about 25% of the world population (World Bank 2019). In addition, the mortality rate has reduced thereby straining available resources. Sustaining this growth has led to increase in social problems like rural to urban migration and lower yield in the food basket among others. As a result the majority of the active working force has moved to cities and towns to look for alternative sources of income.

The smallholder farmers have not been influenced by the “Green Revolution” as they have continued with the practice of nonuse of chemical fertilizers, pesticides, and genetically modified organisms. These inherent practices are referred to as “traditional farming.” (Onwonga and Freyer 2006). In more recent years, farmers have become more reliant on extension officers. With the devolution of government services, extension officers have become few in some areas and highly concentrated in others (Franzel et al. 2014). These officers are expected to visit farmers to provide advisory services. It is usually tedious and time-consuming for both the farmer and the officer. There is thus need to investigate and keep record of weather conditions for better decision-making for small-scale famers who are the backbone of the economy in Kitui County (Magee et al. 2017). In addition assessment of cumulative health risk is a challenge in real-world situations because of limited data available for place and population-related pollution exposure (Solomon et al. 2016). With continued primary data collection, it is possible to create models that are more accurate in relation to this region.

The current weather stations within the country are a lot more concentrated in one half of the country and not so much on the other half. See map below (Fig. 1).

Fig. 1
figure 1

Weather stations in Kenya (Solomon et al. 2016)

This study proposes to use a raspberry pi (RPi), a microcomputer quite popular now with IoT devices; it is of low-cost and easily adaptable to various conditions. The XBee is able to transmit information within short-range communication with very good accuracy and also low-power utilization and low-costs. The other parts of the paper will discuss methodology for the data collection, data transmission, storage, and visualization.

Other Studies

Studies have been done in agriculture and in pollution; however there is dearth in a studies combining pollution monitoring and agricultural parameters data collection. A review of previous studies has shown a gap in combination of these parameters which are of use to small-scale farming (Rehman et al. 2011) developed a WSAN with sensor and actuator nodes to provide controlled water supply; this is very geared toward precision agriculture. In 2016 (Raja et al. 2016) used various types of sensors to monitor temperature and moisture values of the soil. The data was shared to a central station periodically and concentrated on soil data. A similar study was undertaken in 2015 by (C and S 2015). This study builds on work done by (Rehman et al. 2011) where remote monitoring was done for data collection and information shared with research facilities (Vatsal and Bhavin 2017). Worked on a system showing real-time temperature and relative humidity and once again only concentrated in agricultural information for display locally.

There are several systems designed for precision agriculture. They, however, mostly solve the problem of irrigation or temperature control. Those in environment solve data collection challenges, while those in agriculture solve a single or at most two challenges.


The Internet of Things (IoT) is described as connecting everyday objects via sensors and actuators to the Internet where the devices are intelligently linked together enabling new forms of communication between things and people and between things themselves. This technology has advanced rapidly in the last few years and has become quite popular in environment monitoring. The basic concept is illustrated in the figure below (Fig. 2).

Fig. 2
figure 2

Basic parts of an IoT system

IoT offers new and innovative ways to monitor and manage remote operations. “It allows having eyes and ears in remote places, constantly feeding applications and data stores with information. The low-cost of ‘things’ allows observing and managing activities that were previously out of reach. With the Internet of Things, it is also possible to collect information about events that were once invisible, such as correlating weather patterns with industrial production” (“IoT in action – Towards Data Science” 2020). The advancement in wireless sensor networks is used in monitoring and controlling of various aspect in an agricultural field. In the same light, weather aspects for a station field. A wireless sensor network is composed of hardware and software. These are low-cost and low-power smart sensor nodes which monitor physical conditions. In our initial prototype test case, we monitored temperature, moisture, and pollution. These nodes can be spread across a large geographic area (Fig. 3).

Fig. 3
figure 3

Node based IoT system with offsite processing

A node: The main components of a sensor node are a microcontroller, transceiver, external memory, power source, and one or more sensors. The controller performs tasks, processes data, and controls the functionality of other components in the sensor node. The sensor node or mote can be deployed infield to form wireless sensor network for crop management and environment monitoring system (Fig. 4).

Fig. 4
figure 4

Block diagram of a node

This study uses ZigBee, an IEEE 802.15.4 for the wireless sensor network of nodes. It is common in networking standard for personal area networks. The physical layer of ZigBee operates in the unlicensed industrial, scientific, and medical radio bands of 868 MHz, 915 MHz, and 2.4 GHz depending on the region. In this study, we adopt 2.4 GHz band because it is unlicensed in Kenya. The ZigBee protocol mainly focuses on low-cost and low-power consumption. The low-power consumption characteristic is necessary since sensors are usually placed at a remote location where battery power supply is virtually the only option. In order to attain a low-power consumption characteristic, the ZigBee protocol operates at low data rates (250 kbps at 2.4 GHz); this imposes its limitation where high data transmission applications are required. From node to the servers, it is thus more realistic to use other applications, for instance, Wi-Fi (802.11) which offer high data rates. This is only done from the coordinator node. Depending on the situation and environment, the networks can take three forms of topologies: star, cluster tree, and mesh. Our study uses the mesh topology. A mesh network is accomplished by allowing devices in the cluster tree to topology communicate with each other using multiple routes. Consequently, the devices are able to send and receive messages reliably even when their preferred path is down or congested. This is the major advantage of a mesh network over star and cluster-tree networks. However, a mesh network has no guarantee of bandwidth since no synchronization is used which requires disabling of beacon mode (Fig. 5).

Fig. 5
figure 5

Mesh-based network system

Mesh topology, also referred to as a peer-to-peer network, consists of one coordinator, several routers, and end devices. The following are the characteristics of a mesh topology: A mesh topology is a multi-hop network; packets pass through multiple hops to reach their destination. The range of a network can be increased by adding more devices to the network. It can eliminate dead zones. A mesh topology is self-healing, meaning during transmission, if a path fails, the node will find an alternate path to the destination. Devices can be close to each other so that they use less power. Adding or removing a device is easy. Any source device can communicate with any destination device in the network. Compared with star topology, mesh topology requires greater overhead. Mesh routing uses a more complex routing protocol than a star topology” (“2.3 ZigBee Topologies | Introduction to the ZigBee Wireless Sensor and Control Network | InformIT” n.d.).

System Design

This study proposes the combination of solving challenges in environment and in agriculture with a single system at the same time contributing to data enhancement for policy issues in both precision agriculture and pollution primary data.

The building of pollution stations within the country present a problem of security and management. Having these stations placed at small farms and distributed keeps them safe. On the other hand, implementation of monitoring stations for local farmers is expensive and the communities lack the knowhow of management of the information collected. The cloud-based data management platform will provide this, while interested stakeholders (policy makers) will support the management of data. Kitui County is vast and most small farms lack connectivity to the main power grid. For the system to be self-sustaining in terms of power, the study uses solar photovoltaic and rechargeable batteries to power all electrical devices. The system incorporates a remote monitoring mechanism through a General Packet Radio Service modem to report soil temperature, soil moisture, WSN link performance, and photovoltaic power levels.

Having a system that encompasses data collection and data dissemination provides end to end solution for both small-scale farmers and policy makers.

The general workflow of the monitoring system consists of the following:

  1. 1.

    Taking temperature, humidity, and pollution data (PM 2.5 and PM 10) samples at predefined time intervals (Sensors)

  2. 2.

    Reading this data at a local level (Arduino Uno)

  3. 3.

    Sending data via a coordinator node (Raspberry Pi)

  4. 4.

    Visualizing data online

  5. 5.

    Going to sleep

  6. 6.

    Waking up and repeating the previous steps (Fig. 6)

Fig. 6
figure 6

Detailed block diagram of our system

Hardware needed for the end point of the system:

For the sensor node:

  1. 1.

    Raspberry pi 3B – this is a low-cost, credit-card sized computer that plugs into a computer monitor or TV and uses a standard keyboard and mouse. It is a capable little device that enables people of all ages to explore computing and to learn how to program in languages like Scratch and Python ( n.d.)

  2. 2.

    Arduino UNO – Arduino is an open-source electronics platform based on easy-to-use hardware and software ( n.d.)

  3. 3.

    Humidity and temperature sensor – DHT22 Sensor

  4. 4.

    Pollution sensor SDS011

  5. 5.

    Connectors – female-female, male-female, and male-male

  6. 6.


Software used in this project:

  1. 1.

    XTCU – This was used in this system to setup the XBee radios so that they can transmit data between each other.

  2. 2.

    NOOBS – This is the operating system needed to setup a RPi.

  3. 3.


  4. 4.


  5. 5.

    Arduino IDE.

  6. 6.

    ThingSpeak is a free online platform that was used for data visualization

System Implementation and Experiments

To set up and test this system, the XBee devices were first activated and set up using XCTU (a tool available online for free). They were all coded under the same network for ease of communication. The RPi was loaded with the necessary operating system (NOOBS) which comes with python – a coding language. In the project we also set up the Internet access for the raspberry pi as it acts as the gateway in this system.

On a laptop, we installed Arduino IDE (which is a development platform for Arduino boards) and also the sketches to run the two sensors for our prototype. JSON here is used as the shell to transfer data in a compact mode from the Arduino to the RPi.

On the RPi we run a program to call the data from the Arduino to the RPi and tested the same locally. Finally on ThingSpeak, we added the required APIs and run the visual data from our system.

The diagrams below further define our various steps (Figs. 7 and 8):

Fig. 7
figure 7

Figure 15 – clips of Initial codes for SDS sensor

Fig. 8
figure 8

Clips of Initial codes for DHT sensor

Once the codes were tested and found to be producing steady outputs, we put the sensors in a monitored environment – domestic fridge with proper calibration to test the humidity and temperature parameters and the results were displayed on the local Arduino software as 169% humidity and 12° Celsius continuously and repeatedly (Fig. 9).

Fig. 9
figure 9

Testing the DHT11 for both humidity and temperature in a controlled environment

We then transferred the tests to the natural environment and connected the router XBee connected to the raspberry pi. We were able to read the results from the temperature and humidity sensor as well.

We also run similar tests on the SDS011 – pollution sensor and obtained a consistent flow of results as below.

Once this was done, we then connected the end nodes to the router node for data aggregation. This was done using the python on the raspberry pi and wrapping the file using Json. We could then see our data collected using the IDs EN1, EN2, and EN3 from the three Arduino/XBee connected end nodes (Figs. 10, 11, 12, and 13).

Fig. 10
figure 10

Data accessed locally on RPi from three Arduino stations with DHT sensor only

Fig. 11
figure 11

Display on ThingSpeak of test data – screen shot taken during the testing of the prototype

Fig. 12
figure 12

XBee connection to RPi (drawn using Fritzing software)

Fig. 13
figure 13

Sensor node using Arduino, XBee, DHT22, SDS011


The phase of the entire project included:

  1. 1.

    Coming up with a design to collect data from sensors via a sensor node.

  2. 2.

    Sending the data to an online visualization platform via a control node and this step has been successful.

Continuing work in this project involves adding a local database for localized data storage and adding a GSM module that allows ease of access of the online data remotely. The online platform and visualization will also be improved to be more robust with a private platform that can be more scalable in the future.