[Internet delle Cose] Un webserver embedded open source in appena 8 cm

Internet delle cose con FTPmicro

FTPmicro è un web server open source con protocollo TCP/IP incorporato, in grado di collegarsi ad internet, anche automaticamente tramite DHCP, e di svolgere molteplici funzioni nell'ambito dell'Internet of Things. Potrete realizzare una pagina web tramite la quale fare attivazioni e controlli remoti. Oppure avere un FTP storage dove salvare dati sulla memoria SD di FTPmicro. Infatti grazie alla presenza della memoria SD, si possono immagazzinare un gran numero di file che saranno disponibili al server HTTP. Così si può creare un completo sito web, composto sia da parti statiche (HTML, CSS, JavaScript, ecc.) che da parti dinamiche (CGI). Ma non solo, è possibile inviare dati, come ad esempio la temperatura, tramite il sensore a bordo scheda, a Google Drive. Ma anche tantissime altre applicazioni, potete dar spazio alla fantasia e permettere ad Internet delle Cose di semplificarvi la vita lanciando un tweet oppure uno stato Facebook se si verifica un evento nella vostra abitazione! In allegato trovate la documentazione hardware open source ed alcuni esempi applicativi firmware, sempre open source! Lasciate che internet lavori per voi!!

FTPmicro può essere inserito in un package DIP40, grande come un microcontrollore tradizionale a 40 piedini, quindi molto piccolo e, nonostante le sue dimensioni ridotte, la scheda ha delle caratteristiche notevoli:

* microcontrollore PIC18F67J60 con controller ethernet 10BaseT integrato.

* slot per scheda di memoria microSD

* sensore di temperatura TC1047

* 26 I/O digitali che possono essere configurati anche come:

- 8 Ingressi analogici connessi all'A/D Converter interno (a 10 bit);

- 4 Interrupt esterni per comandare interruzioni software direttamente dall'hardware;

- 2 Interrupt ottimizzati per la gestione dei tasti;

- 9 PWM per collegare motori o regolare luminosità di led o altro;

- 3 Capture Compare per acquisire e confrontare segnali tipo radiocomandi;

La scheda deve essere alimentata a +5V anche se il microcontrollore lavora a 3V3. Inoltre è presente un comodo connettore per il debug del firmware e la programmazione con MPLAB ICD2 o qualsiasi altro tool compatibile. In allegato a questa pagina trovate varie versioni di firmware derivate dallo stack TCP/IP fornito da Microchip. Tramite MPLAB, l'IDE gratuita che trovate su www.microchip.com è possibile modificare a piacere il firmware personalizzandone le caratteristiche.

Schema elettrico

Chi segue questo blog probabilmente conosce già questa mia piccola creatura, ma credo sia utile comunque una spiegazione tecnica dello schema elettrico.

Memoria EEprom
Partiamo subito dalla parte meno utile: la memoria eeprom U4. Questa eeprom spi è stata prevista perché in applicazioni a basso costo, si potrebbe considerare di inserire la pagina web per i controlli remoti (letture e attivazioni a distanza) nella memorietta stessa, invece che nella microSD. Ovviamente la capacità è molto, ma molto inferiore (64Kb con la 25LC640 o al massimo 1Mb con la 25LC1024) ma non è questo il motivo per il quale ho deciso, seppur prevedendola, di non utilizzarla. La sua gestione è piuttosto complessa, infatti bisogna trasformare la pagina web in formato esadecimale e poi caricarla nella eeprom tramite un loader da programmare precedentemente nel PIC, che poi dovrà essere programmato di nuovo con i firmware della nostra applicazione. Troppo complicato, è valsa quindi la pena inserire la memoria SD con relativa libreria FAT16 per riconoscere subito i file del sito web che andremo a caricare.
L'utilizzo come web server in grado di gestire controlli a distanza, è solo una delle possibili applicazioni. Ne presenteremo altre, sia più avanti che nei prossimi giorni entrando proprio nel trend del momento #internetdellecose.

Connetore Ethernet
Sotto U4 potete notare J1 che è il connettore ethernet, attenzione a non fare l'errore fatto dai progettisti del Raspberry PI che hanno prodotto le prime versioni con un connettore RJ45 semplice. E' necessaria la versione "full magnetics" quindi con le parti magnetiche all'interno.

Microcontrollore
A destra dei due blocchi precedenti è visibile il microcontrollore U3. Il PIC18F67J60 con 128K di memoria programma FLASH, 3808 byte di SRAM, 8192 byte di buffer per la comunicazione ethernet, 2 timer a 8bits e 3 timer a 16bits. Oltre ovviamente alle periferiche indicate precedentemente.

Sensore di temperatura
Il sensore di temperatura montato sulla scheda, U1, è un TC1047 in contenitore SOT23, quindi miniaturizzato (meno di 3mm)

Alimentazione
In basso allo schema, partendo da sinistra, trovate prima U2, un LM2937. Regolatore di tensione che fornisce i 3V3 di alimentazione al microcontrollore. Il LED rosso DL3 segnala appunto la presenza di tensione ai capi del micro.

ICSP e Debug
Poi trovate J3, il connettore di programmazione e debug collegato direttamente al microcontrollore.

Memoria microSD
Ed infine ecco J2, lo slot per l'inserimento della memoria microSD. Grazie alla libreria FAT16 (fornita negli esempi allegati) è possibile gestire una grande quantità di file, sia per realizzare un web server che un ftp storage. Ma anche semplicemente per immagazzinare i dati del sensore di temperatura, o di altri controlli, per poi inviarli, volendo, tutti insieme tramite connessione ethernet oppure mantenerli fisicamente sulla SD.

LED general purpose
DL1 e DL2 sono due led gestiti direttamente dal microcontrollore. Grazie a dei registri appositi è possibile attivarli a piacere, oppure farli lampeggiare o connetterli al modulo ethernet interno. In quasi tutti i firmware allegati sono utilizzati per segnalare la connessione e la trasmissione/ricezione dati relativamente appunto al modulo ethernet.

Connettori maschi per DIP40
FTPmicro si interfaccia con l'hardware esterno, una potenziale scheda madre, tramite un connettore maschio adatto ad uno zoccolo DIP40. Potete realizzare voi la vostra scheda madre, con le parti che vi servono per la vostra applicazione, come ad esempio relè di uscita oppure altri tipi di sensori. Segnalo anche la presenza di una UART per comunicare con altri dispositivi compatibili, oppure per connetterlo al PC tramite driver RS232. Date spazio alla vostra fantasia!

Lista parti (BOM)

Item	Qty	Reference			Part		Description
______________________________________________________________________________________
1	10	C1,C2,C4,C5,C6,C7,C11,	        100nF		Capacitor 16V/X7R
		C13,C14,C15
2	1	C3				10uF		Capacitor 10V/X5R
3	2	C8,C9				33pF		Capacitor 16V/NP0
4	1	C10				33uF/TANT_B	Tantalium 10V	    
5	1	C12				10uF/TANT_A	Tantalium 6V3	    
6	1	DL1				LED yellow 	smd LED Y	
7	1	DL2				LED green	smd LED G	
8	1	DL3				LED red	smd LED R	
9	1	D1				SMA		Diode		
10	4	JP1,JP2,JP3,JP4		        HEADER 8	Strip Line Male	2.54
11	1	J1				Ethernet	Full Magnetics	RJ45
12	1	J2				PUSH Conne	microSD TransFlash
13	1	J3				ICSP		JACK smt R/A 6/6	
14	1	L1				Ferrite	Bead    300Z	
15	4	R1,R2,R5,R6			51R		Resistor 5%	
16	3	R3,R4,R13			470R		Resistor 5%	
17	1	R7				2K26		Resistor 1%	
18	4	R8,R9,R10,R14		        10K		Resistor 5%	
19	2	R11,R12			        100R		Resistor 5%	
20	1	U1				TC1047VNBTR	Temperature sensor
21	1	U2				LM2937IMP-3.3   Regulator	
22	1	U3				PIC18F67J60	Microcontroller	
23	1	U4				25LC256	        Eeprom SPI		
24	1	Y1				25MHz		Crystal 	7.5x5mm

I componenti sono tutti facilmente reperibili, se avete dubbi oppure problemi di approvvigionamento, non esitate a scrivere nei commenti. Alla lista parti va aggiunta la scheda PCB. Per la realizzazione potete inviare i file gerber allegati ad una azienda di stampaggio circuiti e poi montarvela da soli.

Layout

Sopra è rappresentato il piano di montaggio dove potete vedere tutti i componenti tranne il socket della memoria SD e gli strip-line maschi che vengono montati sul lato saldature. Il pinout delle connessioni strip-line per il socket DIP40 è visibile in rosso, con il pin 1 in basso a sinistra. Sotto la relativa legenda.

Di seguito una vista da sopra (lato componenti) di FTPmicro montato:

Ed una da sotto (lato saldature):

Allegati

 

FTPmicro-1.zip
Schema elettrico, lista parti, piano di montaggio

 

 

FTPmicro Rev0 Gerber.zip
File Gerber per la realizzazione del circuito stampato (4 strati)

 

 

FTPMicro_1v01_0.rar

Esempio di pagina web tramite la quale controllare la temperatura, accendere e spegnere i due led e controllarne lo stato.
FTPmicro tutorial

 

 

FTPMicro_ANSA.rar

Esempio di lettura Feed-RSS su display LCD.
Notizie ANSA su LCD

 

 

FTPMicro_SMTP_0.rar

Esempio per inviare email in relazione ad eventi locali, ad esempio allarmi o cambiamenti di stato.
Inviare email con il PICmicro


Monitorare la temperatura a distanza per controllare, ad esempio delle celle frigorifere tramite web.
Controllare una temperatura remota tramite internet


In questo articolo trovate le implementazioni da effettuare per inviare i dati della temperatura a Google Drive. Ovviamente potete modificare il firmware e monitorare qualsiasi altro sensore voi colleghiate.
Inviare dati a Google Doc Spreadsheets con Picmicro: FTPmicro temperature monitor

Internet delle cose

Questo primo articolo su FTPmicro ha lo scopo di preparare le basi hardware alla realizzazione di progetti firmware su Internet delle Cose. Rimanete quindi sintonizzati su Elettronica Open Source perché già tra un paio di giorni pubblicheremo
un interessante articolo su come sia semplice far sì che internet lavori per noi!

Come sempre sono disponibile nei commenti per ogni eventuale domanda

La lista di tutti gli articoli relativi a FTPmicro con le relative applicazioni, la trovate qui:
http://it.emcelettronica.com/tag/ftpmicro/

ALLEGATI

FTPMicro_SMTP_0

FTPMicro_ANSA

FTPMicro_1v01_0_0

FTPmicro Rev0 Gerber

FTPmicro-1

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

5 Comments

  1. Giorgio B. Giorgio B. 4 dicembre 2013
  2. Piero Boccadoro Piero Boccadoro 4 dicembre 2013
  3. Emanuele Emanuele 5 dicembre 2013
  4. GiuseppeBusi 15 giugno 2014
  5. larosa.cristian 17 luglio 2014

Leave a Reply