Your questions seems to be "I have an application (I'm assuming it's on a server or running in the web) how do I identify what is talking to my application?"
If you want a micro controller to report an ID or firmware version you need to code it to do that.
If you are thinking others will take your code, port and run on another micro then maybe they will. But only if your application is successful enough will people want to do this. Then you can't enforce any changes to the firmware version reporting or anything else.
An alternative is to write for all the versions of micro so no one else has to. Not practical IMHO as it's a lot of work.
Another is to use some serial number, encryption and individual pass code you only give to legitimate users. Not recommended as it's a pain in the a***. I have had this with software licenses.
Another way would be to release the source code and it contains comments to the coder to include the micro controller type. Here I would insert a table of codes telling them the codes to use. Or you could just tell them to fill in a string description and accept what ever they want. Limit it to 16 characters maybe.