I have made a controller module which is able to connect to its application and internet via WiFi. The name that i have chosen for this module is "WiCard". WiCard has two cores. one is AVR core and another one is a core for controlling WiFi connections. This module is programmable (Like a micro controller) but WiCard doesn't need to a programmer, because its firmware downloads the program from the server automatically and every module has an account on the WiCard.Net server.