NFC Tag UID (Rapid NFC blog):
"Every NFC chip comes with a unique hexadecimal identifier; a UID for short. This UID is encoded on to every NFC tag at the point of manufacturing and cannot be altered in any way. As the name would suggest no two are the same. By linking data encoded on the tag, i.e. a URL or app link, with the chips unique hexadecimal number you can create a basic authentication system. The encoded data can be duplicated, however if the UID is incorrect a system can be created to state that the product is not authentic.
Using the UID of the tag provides a basic level of authentication, however for companies and retailers who are serious about using NFC to authenticate products there are more sophisticated options such as encryption tags and specialist chips."
What it does
Artik module read periodically from the server database the user status: Water ON(1-HIGH) or Water OFF(1-LOW) an assigned this value to the corresponding water source
How I built it
- I created with the Arduino soft, the code for the Artik module to react to a specific char array received in the response from the server
- I created a database in server: the tables will save the values received from the android app: MAD Supervisor and MAD Users
- I created an Android app: MAD Supervisor - a Supervisor will connect to the database (name && pass) and can add, edit, delete the water sources, users, and acces rules for them.
- I created an Android app: MAD Users - a User will connect to the database with the name and pass received from the Supervisor of the water sources. After that he can start or stop the water consumption.
- I created php files: this will receive the JSON from the Android APP, compare it to database and echo the corresponding values
- I created php file that will echo to Artik module the corresponding values from the database
- I did some electronics connection between Artik -> transistors -> relays -> electric pumps to test the all concept
Challenges I ran into
- The same MAD Supervisor app to be used by multiple Supervisors
- To correctly insert values in the database, so that the same table can distinguish between all Superviors, Users, Rules
- Artik module to be on the safe side when ask for server response
Accomplishments that I'm proud of
To create and combine all this files with different code languages: android, php, arduino, sql, artik. So i think i passed the hobby level :) .
What I learned
- Basics concepts off the different code languages.
- Basics concepts for the IOT world
What's next for Artik MAD Challenge - Supervisor&Users
- SQL database - improve security for inputs
- MAD Supervisor & MAD User - improve UI, add new futures and bug free
- Artik - create an compact electronic circuit module, with simple connection (IN - OUT)
- Arduino code - create a web page to generate code based on database inputs and ARTIK GPIO
- Add new features to Artik response: read time passed for water usage, read water flow consumption, backup data on SD