I'd like to write an iOS or Android app to talk to the Edison over Bluetooth in order to find out what WiFi networks the Edison is seeing. Then I want the app to remotely make the Edison join a WiFi network which the user selects on the phone. Is this possible and what software architecture can someone recommend? It's sort of a way to remote control the Edison.
What exactly do you mean? Do you want to create an app or do you want one that already has those capabilities? In case you want to create the apps, then you will have to check either (or both) http://developer.android.com/index.html Android Developers or https://developer.apple.com/ios/ Developing for iOS 9 - Apple Developer.
You will have to design the app according to the way you want to communicate with the Edison. You mentioned that you want to use Bluetooth to communicate with Edison, so, how would you like to communicate? Which profile do you want to use? If you don't know yet, I suggest you to check the http://www.intel.com/support/edison/sb/CS-035381.htm Intel® Edison Bluetooth® User Guide. There you will find several profiles and their characteristics, it may help you choose which one suits your needs better.
Once you have created the app, you will have to make a script on the Edison's side which retrieves the data you are interested to know and then send it to your app.
This project is very interesting and probably quite challenging, it'll require major research and several hours of work, I look forward to see updates on it.
I want to create an app. I know there are some apps out there are can control the Edison, but they don't do what I want. I want the primary means of communications to be Bluetooth. The idea is that when the Edison is turned on, it will make itself discoverable, at which point it can be paired with a phone. Then the phone can make the Edison join a WiFi network. Since my project has no display attached to the Edison, I'm trying to figure out a way to make the Edison join a WiFi network.
I'll check the Edison Bluetooth User guide as you mentioned.
Having the Edison join a Wi-Fi connection is easy from the Linux console. You can just run configure_edison --wifi.
Once setup Edison will join that Wi-Fi connection every time it starts up, and you do not need to connect to the terminal again.
Or are you trying to have Edison automatically join different Wi-Fi connections? And you need a portable way of doing that without having to use the Linux terminal?
I'm trying to have it join different WiFi networks. I'm trying to make a product that will be given to users who have their own WiFi routers. When they first turn it on, they will want it to join their WiFi. There's no user interface or terminal access. The only thing the users have is a smartphone or PC.
I'm using alljoyn from the https://allseenalliance.org/ AllSeen Alliance to communicate between iOS, Android and the Edison. Although I'm using it over With it also works over Bluetooth and it can do what you need. I built it from source for all of the platforms and it has bindings for C, C++, java and Objective-C.
It has a rather steep learning curve but I can recommend it. Windows 10 has it built-in as well so it makes it rather easy to do stuff on a PC as well.
Check out their forums if you need help with it.
Thanks Mario. AllSeen looks promising and the Onboarding Service mentioned here: https://allseenalliance.org/framework/documentation/learn/base-services/onboarding Onboarding Service | AllSeen Alliance is exactly what I'm looking for. I'm not familiar with AllSeen, so it's another framework/language/tool that I'll need to learn to make this work.
I'm also trying to develop a similar app as you stated above. I'm really curious and clueless about this, can you update the progress of your project. It would be a great help. Thanks