top of page
Challenges Faced and Resolved!!! 

​

  1. Establishing a Mesh Network: 

    We used XBEE S2C modules to establish communication in the network. Initially, we were using Zigbee as a communication protocol and were running the system in AT-AT   mode. This led to two issues. Firstly, the system was malfunctioning while routing the data received from one node to the central receiver. Secondly, since multiple nodes were transmitting data simultaneously, the central receiver was getting confused in segregating the data from different nodes.

    The solution to the first problem was to use Digimesh protocol instead of Zigbee which is more efficient and robust for establishing mesh networks where data routing is critical. The second issue was resolved by using an API mode which sends data in packets and each packet is associated with its address. This fixed the problem of data getting mixed up.


     

  2. Reducing Power Consumption and Deciding a suitable Power Source : 

    Reduction of power consumption was important as the system was supposed to be deployed on trees and longevity was dependent on low power consumption.
    The current consumption was calculated to be around 60-65 mA during data transmission and 30-35 mA while recording. To reduce this, we attached a low-power digital microphone sensor which gets triggered in the presence of a noticeable sound and wakes up the Arduino which we had otherwise put to sleep mode. This reduced the power consumption to 12-15 mA when not transmitting and increased lifetime considerably.

    Initially, we planned to use button/coin cells but the power supply was insufficient so we finally used Intex PowerBank (4000 mAh) which gave a lifetime of around 12 days.


     

  3. Removing Microcontroller from the edge

    The XBEE S2C module has an ADC and is capable of receiving analog data from a mic. Hence we intended to remove the Arduino from the edge to make the system more compact. However, this could not be finally implemented because : 
    a. The ADC sampling frequency of XBEE is too slow (~50 Hz)
    b. The maximum input voltage of XBEE is 1.2 V which is not even half of the average output voltage of the mic.
    Hence we kept the Arduino at the edge but increased the ADC sampling frequency of the microcontroller.

     

  4. Implementation issues at the fog and cloud levels : 

    We used the python_speech_features library in python to implement MFCC feature extraction at the Raspberry Pi coordinator. It performs the algorithm on a .wav file. So we interpreted a .wav file as containing an array of samples, along with the sampling frequency and converted the data being received by the Pi to a Numpy array to perform the algorithm on. Python pickling was used to serialize a dictionary containing the MFCC matrix and metadata like time-stamp and ID of the audio source. This dictionary was to be sent to the cloud using a TCP/IP socket. However, the data was too large to be sent all at once and unpickling incomplete data at the cloud raised exceptions. Finally, it was sent byte-by-byte till the receiving object at the cloud had all the required bits to be unpickled successfully.

​

​

​

bottom of page