Pour exploiter pleinement la puissance des cartes à base d’ESP8266 ou ESP32, L’IDE arduino devient vite limité. La complétion de code, l’exploration du code en suivant un symbole, le refactoring, ... deviennent rapidement indispensables pour développer un projet un tant soit peu ambitieux. Personnellement, j’utilise l’IDE NetBeans. Il est très simple à configurer si on dispose d’un projet avec un makeFile.
Il existe plusieurs makeFile pour les ESP. Je vous propose d’utiliser celui ci :
https://github.com/thunderace/Esp82...
- Tout d’abord installez ce projet comme indiqué dans le README.md et vérifier le fonctionnement en compilant en chargeant l’exemple AdvancedWebServer.
- Dans le répertoire /Esp8266-Arduino-Makefile/example/AdvancedWebServer/ , Modifiez le fichier makeFile pour l’adapter au modèle de votre carte, au port série utilisé et aux paramètres de votre point d’accès (SSID/PASSWORD).
(Pour les cartes ESP12E, le paramètre ARDUINO_VARIANT est nodemcuv2) - générer le programme par le commande $ make
- charger le programme sur la carte $ make upload
- Vérifiez le fonctionnement.
Maintenant, nous allons créer un projet NetBeans à partir de ce projet.
- Installer NetBeans : https://netbeans.org/downloads/ Prendre le bundle C/C++
- Il faut enregistrer une nouvelle "tool chain" (chaîne d’outils : compliateur/linker/assembleur/...) dans NetBeans : Menu Tools->Option Onglet C/C++
Créez une tool chain ESP8266mk (de type GNU) et renseignez les chemins des différents outils.
(Normalement la seule différence avec l’image ci-dessous devrait être le nom de votre home directory) :


- Ensuite, et c’est le plus fastidieux, il faut renseigner les répertoires "code assistance" pour permettre la reconnaissance des includes et la complétion de code. Il faut le faire pour le compilateur c et pour compilateur c++.
On peut à minima démarrer comme ci dessous et rajouter des répertoires au fur et à mesure des besoins.

- Maintenant vous pouvez créer le projet par File->New Project en choisissant
"C/C++ Project with existing sources".
Utiliser la chaîne de compilation (Tool Collection) que vous venez de créer et pointer ("Browse") vers le répertoire contenant les sources du projet (et le makeFile).
- Votre projet est maintenant utilisable. Vérifiez qu’il se compile correctement.
- Si vous avez des objets non reconnus, il faut rajouter des répertoires dans la "code assistance".
- Pour téléverser le projet avec la commande Run, il suffit de modifier les propriétés du projet pour indiquer la commande "make upload" :

Pour créer un nouveau projet dans un répertoire quelconque :
- Créer un répertoire et y placer avec vos sources
- Y recopier le fichier MakeFile et modifier la dernière ligne pour indiquer le chemin de espXArduino.mk (en fait la majeure partie du MakeFile).
include /Esp8266-Arduino-Makefile/espXArduino.mk - Si vous utilisez des librairies supplémentaires vous pouvez placer les sources dans le répertoire Esp8266-Arduino-Makefile/esp8266/libraries/ ou dans un sous répertoire libraries. Il faut alors mettre à jour la liste des librairies utilisées dans les variables ARDUINO_LIBS et USER_LIBS. Exemple :
ARDUINO_LIBS = ESP8266WiFi ESP8266WebServer EEPROM ESP8266mDNS arduinoWebSockets Hash\
Ticker ESP8266Ping NtpClientLib espTime ESP8266Ping
USER_LIBS = PingESP
USER_LIBS += arduinoWebSockets - Vérifiez le fonctionnement par les commandes make et make upload.
- Créez le projet NetBeans comme précédemment.
Pour accéder au port série depuis un terminal vous pouvez utiliser le programme screen (sudo apt-get install screen). La commande est : $ screen port vitesse
Par exemple : screen /dev/ttyUSB0 115200
(On quitte screen par Ctrl-A puis K et répondre y )
Certaines cartes acceptent des vitesses de téléchargement supérieure à la vitesse fixée dans la définition initiale. Ainsi les ESP12E (nodemcuv2) acceptent le téléchargement à 921600 bits/s.
Pour pouvoir facilement modifier la vitesse de téléchargement, vous pouvez modifier le fichier espXArduino.mk en remplaçant = par ?= dans la ligne :
UPLOAD_SPEED ?= $(shell $(PARSE_BOARD_CMD) $(ARDUINO_VARIANT) upload.speed)
Cela fait vous pouvez définir la vitesse de téléchargement dans votre MakeFile par :
UPLOAD_SPEED = 921600
et téléverser votre programme 8 fois plus rapidement qu’à 115200 bits/s.