I am working on a project where I will send data from one country to another which will be, according to the data sent, processed for commanding devices connected to the computer. The problem is: I can't send the data to IP address of the PC because the PC will turn on and off while I am not with it, so I won't be able to know the IP address each time it changes since it is dynamic, but I need to send the data to the MAC address itself of the device which will be static. How can I do that??
You can't. MAC adresses are local so you can only connect to the MAC adress of a device that is on the same LAN (broadcast domain) as you are.
Use a dyndns service that updates a DNS name with the curent IP adress and connect to the DNS name to accomplish your goal. Or let the dynamic system send a heartbeat to you, so that you know when it's there and how to reach it.
If you should have a layer-2 VPN connection to the other machine you can get the IP adress for a given MAC adress via the arp protocol. I can elaborate on that if you are sure you can go that route.