Configure Arduino IDE for ESP8266

Configuration on Debian based distribution such as Debian, Mint, Ubuntu

Install Arduino IDE

You can install Arduino IDE from repo in terminal sudo apt install arduino but to make sure you have the most fresh version of IDE it’s better download install it from https://www.arduino.cc/en/Main/Software

Extract files

Open terminal, navigate to extracted files folder and type

sudo ./install.sh

If desktop icon will not open. Change owner of the file and type in terminal sudo chown $USER.$USER arduino-arduinoide.desktop and Arduino logo appear in the shortcut icon.

Start Arduino

Open Preferences and add address http://arduino.esp8266.com/stable/package_esp8266com_index.json to Additional Boards Manager URLs: field

Then click OK, go Tools menu and under Boards, Boards Manager

Then in Boards Manager install esp8266 by ESP8266 Community

After installation has been completed just close Boards Manager, go to Tool menu and there you see now installed boards.

Select your Board and go back in Tools menu and you see now your present setup for the board.

You have now also ESP8266 Examples installed and you’re ready to edit and upload!

We can test connection to board using board NodeMCU ESP8266 version 12 so called ESP-12.
Under Tools menu select:
Board: NodeMCU 0.9(ESP-12E Module)
Port: (Arduino IDE will autoselect this, but try to change it in case you have many of these)

Open example WifiWebServer and edit rows
const char* ssid = "your-ssid";
const char* password = "your-password";

Click to compile and upload your code.

If you get error: cannot access /dev/YourUSBDevice espcomm_open failed.

You need then to modify your access for USB device as type in terminal sudo usermod -a -G dialout $USER and log off/on user on the Linux.

When sketch is uploaded to your board go to your web browser and try to change your on-board LED state http://server_ip/gpio/0 or http://server_ip/gpio/1

Congratulations!
You have just programmed wireless switch connected to your home network. ESP could be now called by web browser or in your Linux terminal using command curl http://server_ip/gpio/0