This thesis deals with the porting of a code from Arduino to the STM32 platform. The work was done in collaboration with AGEvoluzione, an innovative small-medium company. The ported code, called EasyScada, is the basis for all projects concerning the embedded world of this company. The code is written in C ++ with the Arduino IDE, its original version works on the AGEduino board, a native product of AGEvoluzione, supported by an ATWINC 1500 WiFi board. After several corrections and modifications, the code was moved on the STM32 L152RE Nucleo board, with Inventek ISM43362-M3G-L44 WiFi board. This project consists of putting in communication several IoT objects that support the EasyScada firmware, communicating through the so-called LivingStones protocol, which is based on the transmission and reception of messages via UDP protocol, to which MQTT was subsequently added to move the communication to the internet using an MQTT broker and no longer only between objects of the same level. These messages were tested using the Node-RED tool. Finally, it was possible to collect information regarding the progress of changes in the repository in which this project was uploaded, being able to verify the change in the files and total lines of code, as well as see the number of commits made. Several metrics were also collected through the Metrix ++ tool.
Porting di un firmware da Arduino ad architettura STM32. Questa tesi tratta del porting di un codice da Arduino a piattaforma STM32. Il lavoro è stato fatto in collaborazione con AGEvoluzione, piccola-media impresa innovativa. Il codice oggetto del porting, chiamato EasyScada, è la base per tutti i progetti riguardanti il mondo embedded di questa azienda. Il codice è scritto in C++ con l'IDE di Arduino, la sua versione originale funziona sulla scheda AGEduino, prodotto nativo di AGEvoluzione, supportata da una scheda WiFi ATWINC 1500. Dopo diverse correzioni e modifiche, si è arrivati a far girare il codice su scheda STM32 L152RE Nucleo, con scheda WiFi Inventek ISM43362-M3G-L44. Questo progetto consiste nel mettere in comunicazione diversi oggetti IoT che supportano il firmware EasyScada, comunicanti attraverso il cosiddetto protocollo LivingStones, che si basa sulla trasmissione e ricezione di messaggi tramite protocollo UDP, a cui successivamente è stato aggiunto MQTT per spostare la comunicazione a internet tramite un broker e non più solo tra oggetti dello stesso livello. Questi messaggi sono stati testati utilizzando il tool Node-RED. Infine, è stato possibile raccogliere informazioni riguardanti l'andamento delle modifiche del repository in cui questo progetto è stato caricato, potendo verificare il cambiamento nei file e nelle linee di codice totali, oltre che vedere il numero di commit effettuati. Sono state raccolte anche diverse metriche attraverso il tool Metrix++.
Porting of a firmware from Arduino to STM32 architecture
CARELLA, FRANCESCO
2020/2021
Abstract
This thesis deals with the porting of a code from Arduino to the STM32 platform. The work was done in collaboration with AGEvoluzione, an innovative small-medium company. The ported code, called EasyScada, is the basis for all projects concerning the embedded world of this company. The code is written in C ++ with the Arduino IDE, its original version works on the AGEduino board, a native product of AGEvoluzione, supported by an ATWINC 1500 WiFi board. After several corrections and modifications, the code was moved on the STM32 L152RE Nucleo board, with Inventek ISM43362-M3G-L44 WiFi board. This project consists of putting in communication several IoT objects that support the EasyScada firmware, communicating through the so-called LivingStones protocol, which is based on the transmission and reception of messages via UDP protocol, to which MQTT was subsequently added to move the communication to the internet using an MQTT broker and no longer only between objects of the same level. These messages were tested using the Node-RED tool. Finally, it was possible to collect information regarding the progress of changes in the repository in which this project was uploaded, being able to verify the change in the files and total lines of code, as well as see the number of commits made. Several metrics were also collected through the Metrix ++ tool.È consentito all'utente scaricare e condividere i documenti disponibili a testo pieno in UNITESI UNIPV nel rispetto della licenza Creative Commons del tipo CC BY NC ND.
Per maggiori informazioni e per verifiche sull'eventuale disponibilità del file scrivere a: unitesi@unipv.it.
https://hdl.handle.net/20.500.14239/13029