Modificare lo sketch di esempio (Pellet Stove SIMPLE control) per poter includere il proprio telecomando. *STEP 1 In Arduino IDE bisogna installare le librerie richieste come specificato nella pagina da cui avete scaricato questo manuale. Questo si fa dal Menù Sketch -> #Include Libreria -> Gestione librerie. Scrivere il nome della libreria, selezionare quella corretta dalla lista e premere "Install". Le librerie da installare sono le seguenti: - OneWire (by Paul Stoffregen) => https://www.pjrc.com/teensy/td_libs_OneWire.html - DallasTemperature (by Miles Burton) => https://github.com/milesburton/Arduino-Temperature-Control-Library - IRremoteESP8266 (by Mark Szabo) => https://github.com/markszabo/IRremoteESP8266 * STEP 2 Montare un ricevitore IR a 38KHz dotato di demodulatore (fare riferimento alla lista componenti). Caricare lo sketch per copiare i codici dei telecomandi, scaricabile dalla pagina da dove avete scaricato questo manuale. Dopo aver caricato lo sketch sul modulo Lolin NodeMCU, avviare il monitor seriale. Puntare il telecomando verso il sensore e premere ogni tasto più volte. Viene riportato un output simile a questi: unsigned int rawData[21]={998, 798, 1856, 800, 968, 826, 942, 1710, 1828, 1710, 1826, 826, 942, 826, 942, 826, 950, 820, 954, 1698, 954}; // RC5 141 unsigned int rawData[19]={6680, 2412, 3374, 1560, 920, 732, 918, 1594, 1720, 758, 894, 1584, 896, 732, 920, 1558, 1748, 758, 1722, 1584, 1720}; // UNKNOWN 9EB58962 Focalizzate l'attenzione sulla parte dopo la parentesi graffa chiusa, messa dopo i due slash (RC5 141 e UNKNOWN 9EB58962 nell'esempio sopra). Quando vedete che, dopo aver premuto piu volte lo stesso tasto, per due/tre volte consecutive la parte finale è sempre la stessa (anche se i numeri tra parentesi graffe variano di poco), allora potete prendere quella sequenza come *valida*. Copiate quindi quella sequenza in un file di testo dandogli un nome caratteristico (cambiate il nome rawData) che vi permetta di ricordarvi a quale tasto è relativo. Esempio: ho cambiato unsigned int rawData[19]=blablablabla in: unsigned int T_DN[19]=blablabla (al posto di unsigned int potrebbe esserci scritto uint16_t : è la stessa cosa!) Questo è il codice per abbassare la temperatura, ho chiamato l'array T_DN. Questo array è costituito da 19 valori. Focalizzate l'attenzione sul 19 messo tra parentesi quadre, che identifica il numero di valori tra parentesi graffe. Questo numero potrebbe essere diverso per ogni tasto. Ripetiamo questa operazione per tutti i tasti sul telecomando. Alla fine avremo un file di testo in cui ci sono scritti tanti array quanti sono i tasti. * STEP 3 Passiamo a modificare il codice sorgente di esempio. Trovare la parte: // SSID and Password of your Wi-Fi Network const char* ssid = "[YOUR SSID]"; const char* password = "[YOUR PASSPHRASE]"; Al posto di [YOUR SSID] mettere il nome della vostra rete Wi-Fi, rispettando maiuscole e minuscole. Al posto di [YOUR PASSPHRASE] mettere la password della vostra rete Wi-Fi. Trovare la parte: String pinPs="1234"; // your *numeric* pin/password for accessing the page al posto di 1234 mettete il pin che volete assegnare alla pagina per poter inviare i comandi. Trovare la parte: IPAddress ip(192,168,1,31); IPAddress gateway(192,168,1,1); // router address Il primo indirizzo IP è quello che volete assegnare alla vostra scheda (deve essere uguale all'indirizzo del router a meno dell'ultima cifra). Il secondo indirizzo IP è quello del vostro router. Trovare la parte: // IR remote commands obtained with IRrecvDumpV2.ino for Ungaro Maia 34 Blend pellet stove (Micronova controller board) // those codes may work on other Micronova controllers that have the 4 buttons remote // ON/OFF (toggle): uint16_t TOGGLE[21] = {6680, 2412, 3374, 1560, 920, 732, 918, 1594, 1720, 758, 894, 1584, 896, 732, 920, 1558, 1748, 758, 1722, 1584, 1720}; // UNKNOWN 9EB58962 ecc ecc ecc Qui sono riportati i codici del telecomando di esempio. Dovete cancellare questi codici e incollare quelli che avete trovato allo step 2 Trovare la parte: // Return HTML page // every button is a "Submit"-type button String Index_Html(void) All'interno di questa funzione vengono disegnati i pulsanti. L'esempio ha un pulsante di ON/OFF e 4 pulsanti. I pulsanti sono disegnati in questa zona (ogni riga è un pulsante): "

" "" "

" "" "
" Se il vostro telecomando ha meno pulsanti dovete toglierne qualcuno. L'importante è ciò che è scritto nella parte "value=" perchè è questo valore che verrà trasmesso al modulo quando si premerà il pulsante (ed è anche lo stesso valore visualizzato sul pulsante). E' bene non utilizzare entità html ma solo simboli facilmente digitabili da tastiera. Per fare queste operazioni di modifica del layout è bene avere delle conoscenze di HTML e CSS che esulano dallo scopo di questo manuale. Su questo non posso aiutarvi. Trovare la funzione void handleSubmit() Ci sono una serie di IF che servono ad identificare il pulsante premuto, ovvero rilevare la scritta presente all'interno del pulsante e che abbiamo visto è scritta nel parametro "value=" Qui identifico la pressione del pulsante "ON/OFF": if (toExec=="ON/OFF") { digitalWrite(BUZZER,HIGH); irsend.sendRaw(TOGGLE, 21, 38); digitalWrite(BUZZER,LOW); server.send(200, "text/html", Index_Html()); Serial.println("Requested ON/OFF"); } Vedete che in sequenza: - viene attivato (fatto suonare) il buzzer (ecco perchè è necessario un buzzer di tipo attivo) - viene inviato il comando al led infrarossi - viene spento il buzzer - viene reinviata la pagina HTML - viene scritto un messaggio sulla porta seriale focalizziamoci sulla riga: irsend.sendRaw(TOGGLE, 21, 38); TOGGLE è il nome dell'array che contiene il codice per il pulsante ON/OFF (è il nome che gli abbiamo dato, a meno del valore tra parentesi quadre) 21 è la lunghezza dell'array, ovvero il numero che c'è tra le parentesi quadre affianco al nome dell'array (ovvero il numero di valori separati da virgola nelle parentesi graffe) 38 è la frequenza in KHz utilizzata dalla modulazione. 38 è il valore standard. Potrebbero esserci modelli che utilizzano la modulazione a 36KHz ma sono più rari. In questo caso per copiare i codici è anche necessario un demodulatore a 36KHz. Dobbiamo quindi modificare i nomi degli array e il numero di valori. Queste sono le uniche modifiche essenziali da fare.