Centralina Web per inverter ABB Aurora: carica lo sketch ed il front end – 9

Spread the love

Vado ad aggiungere questa sezione perché mi sono reso conto che lo sketch è piuttosto complesso e ci sono molte librerie da importare, una piccola guida può aiutare nell’operazione di compilazione.

ABB PowerOne Aurora Web Inverter Centraline Upload sketch and front end
ABB PowerOne Aurora Web Inverter Centraline Upload sketch and front end

Installa strumenti opzionali

L’utilizzo di questi strumenti è facoltativo in quanto utili, ma non obbligatori.

Git

Git 2.0 o superiore è richiesto solo se si desidera clonare il codice sorgente in locale. Dalla riga di comando, puoi verificare se git è già installato eseguendo il comando:

git --version

Se non è installato correttamente o non è una versione successiva alla 2.0, visita  https://git-scm.com/downloads  per scaricare e installare una versione aggiornata per la tua piattaforma.

Ottieni il codice sorgente tramite Git

Se hai git installato sulla tua workstation, puoi usare le seguenti istruzioni per estrarre il codice sorgente nella tua directory di lavoro.

  1. Dalla riga di comando, accedi alla directory di lavoro sul desktop: arduino-projects
  2. Esegui il comando seguente per estrarre il codice sorgente in una directory di lavoro:
git clone https://github.com/xreef/Aurora_Web_Invert_Monitor.git

Fai il Download del codice sorgente

Se non si dispone di git installato, scarica e decomprimi il contenuto zip del master da  https://github.com/xreef/Aurora_Web_Invert_Monitor/archive/master.zip  nella vostra directory di lavoro:  Aurora_Web_Invert_Monitor.

Librerie

Ora devi installare un lungo elenco di librerie

Ora dopo aver caricato il codice devi caricare la cartella dei dati, per farlo puoi seguire questa guida “WeMos D1 mini (esp8266), file system SPIFFS integrato“.

Per caricare i dati puoi anche rimuovere il commento dalla define del server ftp

// Uncomment to enable server ftp.
#define SERVER_FTP

se lo fai puoi caricare i dati della parte web, l’utente è aurora e la password aurora, fai attenzione alla configurazione del tuo client, segui questo tutorial “Server FTP su esp8266 e esp32“.

Filezilla configuration for access esp8266, select plain FTP on Manage Site

Per la gestione NTP utilizzo il server europeo, ed è sincronizzato una volta all’ora, se vuoi cambiare questa impostazione la linea da modificare è questa

NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 0*60*60, 60*60*1000);

Per funzionare è necessario collegare l’adattatore SD, con la relativa SD.

Problema memoria in invio email

Se riscontrate problemi nell’invio email è necessario installare il tutto con la versione 2.4.2 dell’ambiente core dell’esp8266.

La lista librerie cambia leggermente a causa della gestione rinnovata delle schede SD.

  • ABB_Aurora_Solar_Inverter_Library: commenta //#define ADD_SOFTWARE_SERIAL
  • Wire
  • SD
  • SPI
  • ArduinoThread
  • ESP8266WiFi
  • TimeLib
  • NTPClient
  • ESP8266mDNS
  • ESP8266WebServer
  • ArduinoJson
  • WiFiManager
  • DNSServer
  • EMailSender: è necessario impostare #define DEFAULT_EMAIL_NETWORK_TYPE_ESP8266 NETWORK_ESP8266_242
  • Timezone
  • WebSockets
  • Hash




Caricamento firmware precompilato (consigliato)

Per semplificare il processo aggiungo il firmware precompilato, puoi trovare 4 file:

Firmware

Filesystem

Caricamento dal prompt dei comandi

upload.py o esptool.py

Per prima cosa osserviamo che il componente principale del core esp8266 necessita di python installato e durante l’installazione ricorda di aggiungere al percorso (per Windows)

ESP Tools Install Python and add It to path
ESP Tools Install Python and add It to path

Nella tua installazione di Arduino IDE puoi trovare upload.py file che è lo stesso esptool.py.

Puoi installare solo esptool.py per python con un semplice comando

pip install esptool

oppure puoi scaricare da qui la versione compilata, ricordati di aggiungere l’eseguibile al percorso.

Quindi se avvii esptool sul tuo cmd hai queste informazioni

D:\Projects\Arduino\sloeber-workspace-OTA\keys>esptool
esptool.py v3.1
usage: esptool [-h]
               [--chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3beta3,esp32c3,esp32c6beta}]
               [--port PORT] [--baud BAUD]
               [--before {default_reset,usb_reset,no_reset,no_reset_no_sync}]
               [--after {hard_reset,soft_reset,no_reset,no_reset_stub}]
               [--no-stub] [--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]]
               [--connect-attempts CONNECT_ATTEMPTS]
               {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,version,get_security_info}
               ...

esptool.py v3.1 - ESP8266 ROM Bootloader Utility

positional arguments:
  {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,version,get_security_info}
                        Run esptool {command} -h for additional help
    load_ram            Download an image to RAM and execute
    dump_mem            Dump arbitrary memory to disk
    read_mem            Read arbitrary memory location
    write_mem           Read-modify-write to arbitrary memory location
    write_flash         Write a binary blob to flash
    run                 Run application code in flash
    image_info          Dump headers from an application image
    make_image          Create an application image from binary files
    elf2image           Create an application image from ELF file
    read_mac            Read MAC address from OTP ROM
    chip_id             Read Chip ID from OTP ROM
    flash_id            Read SPI flash manufacturer and device ID
    read_flash_status   Read SPI flash status register
    write_flash_status  Write SPI flash status register
    read_flash          Read SPI flash content
    verify_flash        Verify a binary blob against flash
    erase_flash         Perform Chip Erase on SPI flash
    erase_region        Erase a region of the flash
    merge_bin           Merge multiple raw binary files into a single file for
                        later flashing
    version             Print esptool version
    get_security_info   Get some security-related data

optional arguments:
  -h, --help            show this help message and exit
  --chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3beta3,esp32c3,esp32c6beta}, -c {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3beta3,esp32c3,esp32c6beta}
                        Target chip type
  --port PORT, -p PORT  Serial port device
  --baud BAUD, -b BAUD  Serial port baud rate used when flashing/reading
  --before {default_reset,usb_reset,no_reset,no_reset_no_sync}
                        What to do before connecting to the chip
  --after {hard_reset,soft_reset,no_reset,no_reset_stub}, -a {hard_reset,soft_reset,no_reset,no_reset_stub}
                        What to do after esptool.py is finished
  --no-stub             Disable launching the flasher stub, only talk to ROM
                        bootloader. Some features will not be available.
  --trace, -t           Enable trace-level output of esptool.py interactions.
  --override-vddsdio [{1.8V,1.9V,OFF}]
                        Override ESP32 VDDSDIO internal voltage regulator (use
                        with care)
  --connect-attempts CONNECT_ATTEMPTS
                        Number of attempts to connect, negative or 0 for
                        infinite. Default: 7.
Parametri della riga di comando

Ora possiamo capire meglio i parametri dei comandi:

  • --chip esp8266: qui andremo a selezionare il chip corretto;
  • --port COM17: impostiamo la porta;
  • --baud 921600: qui abbiamo la velocità di trasferimento;
  • erase_flash: esegue la cancellazione del chip su flash SPI (cancella tutte le informazioni);
  • --before default_reset: operazione di pre-caricamento;
  • --after hard_reset: operazione di post-caricamento;
  • write_flash: scrive un blob binario su flash;
  • 0x0 <binary file>: scrivere un file in un indirizzo.

Per caricare puoi provare a usare esptool con questi comandi:

Firmware

esptool --port /dev/COM24 write_flash -fm dio 0x00000 Aurora_Web_Inverter_Monitor.d1_mini.bin

Filesystem

esptool --port /dev/COM24 write_flash -fm dio 0x10000 Aurora_Web_Inverter_Monitor.spiffs.bin

Caricamento con lo strumento grafico

È possibile utilizzare uno strumento grafico di espressif per semplificare il processo, Espressif Download Tool può essere scaricato da qui .

Con la gui dobbiamo semplicemente impostare i files e indirizzi corretti.

esp8266 espressif download tool flash filesystem littlefs spiffs binary
esp8266 espressif download tool flash filesystem littlefs spiffs binary

È necessario selezionare una versione del firmware e impostare l’ indirizzo 0x0 e il filesystem con l’ indirizzo 0x200000 , selezionare la porta corretta e fare clic per iniziare.

Primo avvio

Ricordati innanzitutto di configurare la connessione WiFi, leggi il relativo articolo “Centralina Web per inverter ABB (Power One) Aurora: configurazione WIFI e server REST“.

WiFiManager select AP

Quando hai configurato il WiFi è meglio (ma non necessario) se colleghi una l’USB to TTL sulla Serial1, controlla come farlo su “Centralina Web per inverter ABB Aurora (WIM): notifiche e debug“, ricordati di decommentare la define del debug

// Uncomment to enable printing out nice debug messages.
#define AURORA_SERVER_DEBUG

Dall’uscita Serial1 puoi prendere l’indirizzo IP per connetterti la prima volta via browser.

Dopo il collegamento vai alla sezione di configurazione e imposta un IP statico

ABB Aurora Inverter Network Configuration
ABB Aurora Inverter Network Configuration

Quindi imposta l’ora legale corretta (o, se non definito, imposta il GTM) e l’e-mail d’amministrazione.

ABB Aurora Timezone configuration

Passaggio successivo (molto importante) configurare la notifica degli errori dell’inverter, questa funzionalità può farti risparmiare perdite di denaro se qualcosa va storto.

ABB Aurora inverter notification configuration

Ora tutto è configurato, attendi un giorno che il WIC memorizzi alcuni dati, quindi torna sull’interfaccia web e controlla i grafici.

Grazie

Ricorda per tutte le informazioni, problemi utilizza il forum.

  1. Centralina Web per inverter ABB (ex Power One) Aurora (WIM): intro al progetto
  2. Centralina Web per inverter ABB Aurora (WIM): connessione Arduino all’RS-485
  3. Centralina Web per inverter ABB Aurora (WIM): dispositivi di archiviazione
  4. Centralina Web per inverter ABB Aurora (WIM): debug e notifica
  5. Centralina Web per inverter ABB Aurora (WIM): impostare l’ora e UPS
  6. Centralina Web per inverter ABB Aurora (WIM): configurazione WIFI e server REST
  7. Centralina Web per inverter ABB Aurora (WIM): WebSocket e Web Server
  8. Centralina Web per inverter ABB Aurora (WIM): cablaggio e PCB
  9. Centralina Web per inverter ABB Aurora (WIM): caricare il programma ed il front end
  10. Centralina Web per inverter ABB Aurora (WIM): scatola stampata in 3D e completamento
  11. Centralina Web per inverter ABB Aurora (WIM): riparare l’errore E013

GitHub repository con tutto il codice FE (transpilato) e BE


Spread the love

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *