I am using ESP12E Wifi module, using library based on Arduino. Is there any way I can upload hex file of the project to esp8266 using Arduino or any tool? I need to send hex file instead of code to my client. Is there any way?
I see the main question you are asking is: "I need to send a hex file instead of code to my client. I want to keep my source code with me."
The mechanics of the final hardware solution aren't supplied but I will guess that your client is also using an Arduino or at least the same Atmel chip that you have in your Arduino, and will be using that chip to control the ESP8266.
When you build your sketch, there is a .hex file created that you can send to your client.
There are a few ways to keep the hex file around, and IDE 1.6.5 and up has a way to easily find this file:
Sketch > Export Compiled Binary The sketch will compile.
Sketch > Show Sketch Folder The .hex file will be in the sketch folder.
You can send this hex file to your customer.
If he is using an Arduino or ATMega-based solution to connect to the ESP8266, then the hex file can be loaded into his Arduino or to his Atmel chip. However, the Arduino IDE doesn't support import of hex files at this time.
Your client would have to load that hex file onto the Arduino with an ISP programmer of some sort. There are many ways to do this, and the best one for you will depend upon your circumstances and your client's skill set.
If the client is using an Arduino or has just embedded the same ATmel chip that is in your Arduino into his solution, you could also just program your Arduino, and then send him that chip.
Show verbose output during compilation in your Arduino IDE and press
Verify. After compile you can examine the parameters sent to
esptool.exe in the last line before
Sketch uses.... You will see some
.text files. These are the files you want to send.