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+