We are a team of three students in Engineering School (Polytech Sorbonne) in Paris. We decided, for our IOT project, to solve a problem that concern everybody. Nowadays, everybody has a wallet with money and many cards. The loss of the wallet or one of these cards can cost money and waste time. That's why we have the idea of a connected wallet linked to an application.
What is our project about ?The wallet has many features :
- Prevent the loss of the wallet. If you move away from your wallet, you will be notified on your smartphone.
- Prevent the obliteration of an important card. If you leave your house or your workplace without one of your card, you will receive a notification on your smartphone.
- Support to the recovery. You will have access to the history of the use of your cards. you will know the time and the location where you used your card.
How it works ?The entire technology is composed of a wallet which can detect the presence of each card and communicate this information to a database in a cloud. Then, the application on the smartphone (a web application) interfaces with the database.
- Wallet -> Sigfox
The first part is to detect the presence of a card with the RFID module. The Arduino will process the information to send the message to the Sigfox module. The message is in hexadecimal format :
We had the choice to use a GPS to send the location but we choose to use the location given by the Sigfox' backend.
Software- Sigfox -> Node-RED
The sent message goes to the backend of Sigfox. This is where we redirected the data to the database on the Cloud. Thanks to callback functions available on Sigfox, we formated a Json message in order to send the two variables of the wallet : the time and location.
We used two IBM services to manage our cloud. Firstly, the ressource "Node-RED" allows us to link the backend of Sigfox and the Web App to the database of the other ressource "Cloudant NoSQL".
- Node-RED -> Cloudant -> Node-RED
The tool node-RED allowed us to access the NoSQL database cloudant by writing and reading json format data. Therefore we created 2 functions in javascript on node-RED to update the documents by giving them new values or just read the documents to print them on the webapp.
Basically, with the application the user will be able register his wallet, add new cards, modify or deleted existing cards in the different slots. The interface shows in real time the presence of a card through a simple icon (validate).
- Cloudant
Our database contains two tables. The first one called "Cards" has 4 documents which represent the 4 slots. Within those documents we can find 4 variables in Json format :
- "isOn" : is false when he slot is not configured with a card.
- "name" : the name of the card that the user wrote.
- "isPresent" : goes true when the card is in the slot.
- "isImportant" : goes true or false according to the user input on the Web App.
The second table called "History" has the same 4 documents. There we have :
- "time" : in seconds from where we can the deduce the date and the time.
- "action" : which is the same as "isPresent" but for the history, to know what was the action at this time on the card (put in or put out).
- "lat" : for the latitude,
- "lng" : for the longitude then we can show on a map the last location where the user acted on his card.
- Node-RED -> Webapp
The communication with the cloud goes through php programs that access specifics documents via a http input node.
We chose to develop a web app which can be readable on any devices. We used HTML5, CSS3 and javascript functions to make the web app interactive. As mentionned before, php programs allow to access the database for either to print its content or send data to it.
Comments