I'm having the hardest time to get the solution of the following problem.
Main issue:
Several smartphones(up to 30) must communicate with a MCU at the same time.
System overview:
There are many rooms(each room is a cabinet that 30 people can go into), and every cabinet will have one MCU for the smartphone users.
MCU will control some device of the cabinet.
The scenario of this system is as follows:
1. The users go into the cabinet.
2. Smartphone app will recognize the MCU(or MCU will recognize the smartphone) and the MCU will send some data to the smartphone and this data will be noticed to the user.
3. User inputs some data at the smartphone app and this data will be sent to the MCU to control the cabinet device.
4. Up to 30 people can go into the cabinet at the same time and the system should handle all the users simultaneously.
I'm going to develop smartphone application and MCU firmware for this system.
My thought:
I'm thinking to use Arduino/RFduino/Raspberry Pi as MCU and I'm thinking to use Bluetooth LE/Wifi/3G as communication material.
I've tried the following solutions
1. Using bluetooth low energy on Arduino/RFduino/Raspberry Pi.
MCU will be BLE peripheral and my smartphone app will be BLE central.
But I found that a BLE peripheral can only be connected to a BLE central at the same time so I can't use this method.
2. Using wifi on Raspberry Pi
I think that Raspberry Pi can run web service and my smartphone app can communicate with the server through http.
But every time the smartphone user go into the Raspberry Pi based wifi-zone, the user should select the wifi-hotspot at the network setting if he registered this wifi already, and the user should register the wifi-hotspot if this is the first time at the wifi-zone(cabinet).
This is very inconvenient for the users so can't be used for me.
3. Using 3G network on Raspberry Pi
Unfortunately, there's no 3G signal in the cabinet so I can't use this method.
I'm looking forward your kind answer.
Any hints or comments will be welcome.
Thanks for your attention.
Thanks for your answer in advance.
Toltori Kim
Well... I'd go with wifi. And QR codes.
I'd make either a single wifi network for all the cabinets (so only one set of credentials, or even an open one - without security) and then the app can connect to the raspberries using a sort of authentication (where the credentials are written in a QR code inside the cabinet) or a wifi network for each cabinet and its credentials are written in a QR code.
I'd use the first one, maybe without security. So the user has just to go in the cabinet, connect to the common wifi, make a photo at the qr code and then can use the RPi
Related
I want to develop a mobile app that listens for broadcasts by a BLE device. My idea generally is patterned on the game "I spy".
In a room full of objects, there should be a numerous Bluetooth beacons. The beacons will have a button and when the button is pressed, it would send a broadcast. One person goes in the room to solve the puzzle so there won't be the need to consider if the broadcast reaches multiple phones.
When the button is pressed, the app should check the clue given and read the corresponding beacon's ID and then alert the user whether they're correct or not.
I would like this to happen without having the user's phone pair with all BLE beacons.
For the beacon, i'm thinking to use something along the lines of an Adafruit LE Friend or flora wearable. This would be soldered to a CR 2025 or similar battery. Do I also need an Arduino or can this be standalone?
I'm thinking that it could be standalone but I have no experience here
For your use case, the flora wearable is the more suitable choice because you can just solder a battery to it and get it to work (the Adafruit LE Friend requires a PC as it is a USB dongle). You will need to do some reading on basic Bluetooth Low Energy (BLE) concepts, and I recommend that you focus on the following:-
Advertising/Broadcasting: This is what your BLE peripherals such as the flora will be doing. These devices will be sending adverts when a button is pressed or a command is sent.
Scanning/Observing: This is what the app developed on mobile phones will do. Your apps will be continuously scanning for those LE adverts and display relevant information to users when those adverts are read.
Luckily these are relatively easy BLE concepts and there are already many examples for both advertising and scanning.
For more resources, I recommend having a look at the following:-
Bluetooth Low Energy: A Primer
Getting Started with Bluetooth Low Energy
Introduction to BLE
I hope this helps.
i am working on a device for my project that needs two HC-06 bluetooth modules to be connected to the pc. both of the modules are ok to be connected separately and are working fine. but when both of them are powered at the same time, the pc detect only on of them. are they getting the same address?
No. PC should be able to detect both the devices, if two HC-06 modules are in discoverable state. Each Bluetooth device has a unique ID, so every bluetooth unit has a unique address.
Based on your question, I think the app is trying to connect to first device it finds.
I have been trying to set the limit of pairing the Bluetooth device HC-05(interface by Arduino controller) with my smartphone.
I have tried making this solution work with AT command
AT+INQM=<Param>,<Param2>,<Param3>
Example: AT+INQM=1,9,48\r\n
But instead of converting AT commands using serial.h with embedded C, I am looking for any dedicated library which helps to work this kind solution in using Arduino.
Basically, with the help of Bluetooth device connect to Arduino Nano, I want to send the altimeter sensor data to my smartphone.
During the connection, HC-05 should be responding any one device at a time, if another smartphone tries to pair then the error will be shown.
Please share your advice on this.
Yes there are some libraries in arduino but these are only meant for connection and pairing and low energy connections. We don't have any dedicated library from where we can control the mode of operation of HC05 or any bluetooth module. like bypassing or accessing GAP and GATT services of bluetooth. However there is a way to flash HC-05. But we can only use it for updating the firmware of this device. This github repo is dedicated for this purpose . Hope it helps you
Firstly, I'll just give you a brief introduction about our project... its "Speech controlled Home Automation System" where we are controlling the Home appliances by the voice or speech commands. We're successfully done with the voice recognition module. But our problem is with achieving the communication between the transmitter {where the user gives the voice command} and receiver {where the home appliances are present} through WiFi i.e. we have got 2 ESP8266 12E modules interfaced with Arduino both at the transmitter and receiver side and these two WiFi modules need to be communicated(To interchange some data sent by Arduinos).So please let us know which Arduino code need to be used at transmitter side wifi module and at Receiver side wifi module and also about the header files or additional softwares(if any)to be used.
you can achieve this by starting one of wifi modules in Access Point Mode and the other one has to be set to Station Mode in order to connect to the first one.
In case you want to add a router, just set both ESP8266 modules to Station Mode and connect them to the router.
And then transfer any data you want through AT commands of ESP8266.
Here is the refrence to them.
https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/
If you are newbie to Esp8266 and Arduino , this will help you.
http://www.teomaragakis.com/hardware/electronics/how-to-connect-an-esp8266-to-an-arduino-uno/
Good Luck !
I worked on a similar system a year ago. I was developing a remote controlled toy. My main difference was I used the ESP8266 without an Arduino attached.
One ESP worked as a a WiFi hotspot and the other connected to it, sending messages through UDP.
For some reason, I could not get the two ESP modules to connect (I think it was a problem with the board I had), but I sent messages from my computer, and it worked out fine. I will not burden you with all of the code, but here is the GitHub link.
All that needs to happen is they will be on the same WiFi network, and then you can use the ESP8266 WiFi library to send messages between the two. Like I said above, I used UDP, which is good for high speed, with no error checking. But there is also TCP (higher up, has error checking code), or you can use the server/client part of the library to set up a full web server and read/write data to it. Without knowing what type of data, I cannot comment on what would be the best method.
As for headers, you will need WiFi.h, and if you are using UDP you will need WiFiUdp.h
You should not need any external software besides the Arduino IDE.
I taught myself from scratch for this product, using two main resources: the Arduino library reference, and the docs on the ESP8266 Arduino GitHub page
I am working in a factory. There is a HMI (Human Machine Interface) tablet which control all the switches and logics of a manucfacturing machine.
For example, I can limit the speed of manufacturing or change the number of production plan easily, through the HMI.
Here is the images of the back panel of the tablet (KINSTON tablet, not KINGSTON tablet). Consist of usb port, com port, rs-232 port, rs-485 port.
What I am trying to do is to obtain the data of the manufacturing machine, and show the real-time production details to the back office of the factory. (At the mean time, I have totally no idea what the operating system the tablet is using). Or maybe using a website to control it. Or even using mobile app to monitor the condition of the machine.
Is there any easy way to obtain data from these port to a raspberry pi and make a real time reflection of the data. To be more specific, which port should I use to obtain the data?
How should I kickstart this project? I am total newbie of COM port, I have googled around but can't find a concrete example of connection to a computer.