In rural communities, access to Internet is limited. If there were Internet in rural communites, children could be educated, people could get help for their community, and more. However, how can we provide access to the Internet when there's no Wi-Fi or Ethernet? I will use a combination of Bluetooth, Wi-Fi, and radio to give more parts of the world access to the Internet.
How will I do this? I will use Bluetooth to connect a series of computers to a main microcontroller (Arduino or LightBlue Bean, which had Bluetooth) using Bluetooth. These computers are connected to the Internet. Requests are sent to these computers from an RF transciever connected to computers in the rural community. The website data and HTTP requests is sent from the 100-200 mile away RF transciever to the Bluetooth-enabled microcontroller, which sends the requests to the computers using Bluetooth. The computers process the request (probably using Python) and send back to the microcontroller, which sends to the RF transciever, where the computer has a browser that renders the web data.
So, why is this called a mesh network? A mesh network is when a node relays data to another node which relays the data to another node, and so on, until it reaches a controller or master node which processes the data. I have decided to use a mesh-network implementation for when the controller is far away, the nodes can relay the information to other nodes. I will use the MySensors library for this since it has built-in mesh-network support.
Here are the details for the controller-node network:
For now, the RF transciever will be a nRF24L01+ for 2.4 Ghz RF. I will use the same MySensor library. The data will be sent as serial data. I will use Node-RED to minimize the programming required. I will use the serial node for the Bean. It will save the data into a data file, which will be read by Python. For python, I will use the httplib module. The data, which is the HTML mainly, will be saved into a file that is constantly updated. A node for Node-RED will upload this onto the LightBlue Bean which will send it using the nRF24L01 to the computer requiring computer access.
Here is a diagram showing how the controller-node network will work:
There are computers that want to access the Internet, send their HTTP requests to a Bluetooth controller 1, which sends them to another Bluetooth controller 2. The long arrow represents what happens in between, which is the mesh network. The Bluetooth controller 1 actually will be eliminated to keep costs down and to use the MySensors library for the nRF24L01+. The module does not work for Bluetooth. When it reaches the Bluetooth controller 2, which actually has an nRF24L01+ to receive the message, it gives the HTTP requests to the other computers with Internet access and the computers return the web data back tothe Bluetooth controller 2, which sends it to the individual RF nodes using nRF24L01+
This is an old project but as I am lurking here...
There are many similar projects, some of them deployed at wide scale, The most impressive is probably https://villagetelco.org/ which at a time was supported by Ubuntu foundation.
But there are fundamental flaws in this idea of mesh networks for rural communities, the most important is that mesh networks are interesting only in dense areas...
In Mali or CAR you would never have even *one* active user, at 30m/yards around you at anytime. And indeed when people live with $100 per month, they cannot easily buy even a $25 device.
IMO a useful idea in rural environments would be an $5 adapter for Wi-Fi that would make them work at a much lower frequency but still in a free ISM band like those at 27 or 40 MHz.
The main problem then would not be the power budget (as it is at 2.4 GHz), but the fact that the horizon is only at 6 miles/10 km as Earth is a sphere!
But you would still be able to find tens of active users around you, enough for a Mesh network.
Distributing this hack where it would be needed would be tremendously difficult.