As always before starting with the project I did a bit of research on the internet. I found a few projects related to this topic. They were of two kinds. One which showed internet speed by measuring the 'strength' of the WiFi signal. I am not a networking expert guy but this did not sound right. The others measured the latency and categorized speed as slow, medium or fast. Latency is the time delay between sending the request and getting the response and so it cannot be the actual representation of the internet speed. We can call it a network response speed though! Then there were legit projects which measured the time required to download some data and calculated the internet speed based on that.
But it was in this project (by Alistair) that I learnt about Simple Network Management Protocol or SNMP. Using SNMP, we can communicate with the WiFi router and get the required data directly from it. Easy, right? Actually, no! Because different models of WiFi routers use have different settiings and need a lot of trial and error before you finally get the output. Don't be scared. I will explain in brief whatever I learnt about SNMP and the difficulties I faced in the upcoming steps.
So the plan is to use NodeMCU to connect to the WiFi Router. These are the steps to get to the final output:
- Send a request to the router 'requesting' the required data
- Get the response from the router
- Analyse the response and parse the required data from it
- Convert the 'raw' data into understandable information
- Generate voltage proportional to the internet speed for the meter
I will be using a DAC or Digital to Analog Converter for controlling the meter.