Sommario:
- Passaggio 1: cosa ti servirà:
- Passaggio 2: come funziona
- Passaggio 3: programmazione dell'ESP8266
- Passaggio 4: collega ESP8266 ad Arduino
- Passaggio 5: caricamento del codice Arduino e risoluzione dei problemi
- Passaggio 6: personalizzazione del codice Arduino
- Passaggio 7: l'illuminazione
- Passaggio 8: stampa delle parti
- Passaggio 9: assemblaggio
- Passaggio 10: cose da tenere d'occhio all'inizio:
Video: L'ultima mangiatoia per pesci automatica fai-da-te: Livello 2: 10 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
L'alimentatore di livello 2 è un grande passo avanti rispetto al livello 1. Questa versione utilizza un modulo wifi ESP8266 per sincronizzare l'orologio dell'arduino per controllare il programma di alimentazione e l'illuminazione del serbatoio.
Passaggio 1: cosa ti servirà:
Tutto nel livello 1 tranne il timer della luce
- ESP8266-01
- Programmatore FTDI (per programmare ESP8266)
- Saldatore
- Striscia LED 5V RGBW (SK6812 IP 65, bianco luce diurna, ho usato questa)
- La striscia luminosa deve essere impermeabile, poiché l'acqua evaporerà dal serbatoio e si condenserà sul coperchio del serbatoio e si accenderà da solo.
- Alimentazione 5V (ho usato questo, l'arduino NON PU alimentare tutte le luci da solo.).
- Sentiti libero di utilizzare qualsiasi alimentatore da 5 V che desideri, assicurati solo che fornisca energia sufficiente per fornire tutte le luci.
- Regolatore di tensione 3.3V
- L'ESP8266 funziona a 3,3 V, ecco perché tutto il resto è 5 V, è più facile passare da 5 a 3,3 piuttosto che da 12 a 3,3
- Resistori (1kOhm x2, 2kOhm x2 (o 1kOhm x4), 10kOhm x1)
- super colla
- Colla calda
- Parti stampate in 3D x8 (file STL forniti)
- Spelafili (consiglio queste cose utili)
- Tagliere (per creare prototipi)
- Scheda prototipi/scheda progetto (per l'assemblaggio finale)
- Cavo di alimentazione per computer standard a 3 poli.
- (opzionale) Motore di vibrazione del cellulare (per agitare la tramoggia) (io ho usato uno di questi)
- Installa queste librerie arduino:
- ESP8266WiFi.h
- WiFiUdp.h
- TimeLib.h
- Dusk2Dawn.h
- Adafruit_NeoPixel.h
- Pazienza.
Passaggio 2: come funziona
L'ESP8266 ottiene l'ora Unix da un server NIST e la passa all'arduino. L'arduino utilizza quindi quell'ora per determinare l'alba e il tramonto locali e sincronizzare il suo orologio interno per determinare quanti minuti sono trascorsi dalla mezzanotte. Utilizzando questo tempo trascorso dalla mezzanotte, l'arduino imposta il colore delle luci e sa quando attivare l'alimentatore, che è lo stesso meccanismo del freeder di livello 1. Le impostazioni predefinite nel codice Arduino che ho scritto hanno le luci impostate su un ciclo giorno/notte che può essere controllato fino al secondo per dissolvenze uniformi e sono sincronizzate con l'alba e il tramonto della tua posizione. L'arduino si ripristina anche una volta al giorno per risincronizzarsi con il server NIST e assicurarsi che non ci siano overflow del timer
Passaggio 3: programmazione dell'ESP8266
Ok, quindi ESP8266 è un bastardo da programmare.
Non è compatibile con la breadboard e se si dispone di cavi jumper femmina, consiglio di utilizzarli. Se il tuo ESP8266 è arrivato senza alcun firmware installato come il mio, dovrai eseguire il flashing del firmware. Usa il programmatore FTDI per farlo, ci sono molte istruzioni su come farlo altrove, ma ho fornito uno schema elettrico per comodità. ASSICURARSI che il programmatore FTDI fornisca 3,3 V! 5V friggerà il tuo ESP8266. Nel mio diagramma, l'arancione collegato tra GPI01 e GND dovrebbe essere realizzato solo quando si esegue il flashing del firmware di ESP8266. GPI01 dovrebbe rimanere scollegato durante il caricamento del codice Arduino effettivo sul modulo.
Successivamente, dovrai caricare il codice effettivo di ESP8266. Usa il programmatore FTDI questa volta insieme all'IDE di Arduino. Dovrai anche scaricare e installare tutte le librerie utilizzate. Le impostazioni utilizzate per caricare il codice con arduino 1.8 sono nella parte commentata all'inizio. ASSICURATI di aggiornare il codice con la tua rete wifi e la password.
Passaggio 4: collega ESP8266 ad Arduino
Una volta caricato il codice, è possibile scollegare il programmatore FTDI e collegare ESP8266 come mostrato nello schema. I resistori vengono utilizzati come divisori di tensione per assicurarsi che l'arduino non pompi 5V nella comunicazione di ESP8266 e reimposti i pin. Fai questo passaggio su una breadboard per il debug, lo metteremo sulla proto-board in seguito.
Una volta che ESP8266 è tutto collegato, dovresti vedere una luce blu lampeggiare quando è collegato all'alimentazione, dopo pochi secondi dovrebbe ottenere l'ora Unix da Internet e inviarla all'arduino, quindi ha un loop vuoto vuoto () in cui si trova fino al ripristino, proprio come l'alimentatore di livello 1.
Per assicurarti che ESP8266 funzioni, dovrai caricare il codice dal passaggio successivo su arduino e aprire il monitor seriale.
Passaggio 5: caricamento del codice Arduino e risoluzione dei problemi
Ora carica il codice su arduino nano, apri il monitor seriale, dovresti vedere qualcosa come l'esempio sopra. L'arduino si ripristina quando apri il monitor seriale, quindi ESP8266 verrà ripristinato allo stesso tempo. il monitor seriale inizierà a contare i secondi dalla mezzanotte del 1 gennaio 1970, fino a quando ESP8266 non gli invierà l'ora Unix corrente. Quando ciò accade dovresti vedere questo:
Possono essere necessari dai 3 ai 15 secondi affinché funzioni, quindi sii paziente. Raramente l'ho visto impiegare più di 10 secondi, ma dargli 15 prima di iniziare la risoluzione dei problemi.
Se il tuo ESP8266 non invia l'ora all'arduino, prova questi passaggi:
· Assicurati che tutto sia cablato ESATTAMENTE come dovrebbe
· Controlla di aver inserito l'SSID e la password del wifi corretti nell'ESP8266, in caso contrario dovrai ricollegarlo al programmatore FTDI per caricare le informazioni corrette, quindi ricollegarlo all'arduino. (un SSID o una password molto lunghi possono causare alcuni problemi, ma la mia rete wifi ha più di 20 caratteri in entrambi i campi, quindi la maggior parte delle reti domestiche dovrebbe andare bene)
· Controlla la pagina di amministrazione del tuo router (se puoi) per un dispositivo connesso che appare solo quando ESP8266 è acceso. Per assicurarti che rimanga acceso mentre controlli questo (l'arduino lo disabilita) ricollega il filo che porta al pin di ripristino di ESP8266 direttamente a 3,3 V, mantenendolo ALTO manterrà l'ESP8266 acceso. Assicurati di annullare questa operazione dopo aver controllato.
Passaggio 6: personalizzazione del codice Arduino
Una volta che il tuo ESP8266 è connesso e invia l'ora all'arduino, l'arduino programmato conterà semplicemente il tempo e visualizzerà alcuni altri bit di informazioni di debug, come l'alba e il tramonto. Possiamo personalizzare alcuni di questi valori nel codice di arduino, il resto è semplicemente lì, quindi potrei eseguire il debug dell'intero sistema.
Per capire meglio come l'arduino calcola l'alba e il tramonto, leggi la documentazione sulla libreria Dusk2Dawn. Dovrai inserire la tua latitudine e longitudine (se cambi il nome della tua posizione, assicurati che sia cambiato ovunque nel codice!) Dusk2Dawn usa le tue coordinate gps (che puoi trovare su google maps) e l'ora locale, per determinare quando il sole sorge e tramonta in pochi minuti dalla mezzanotte. La variabile minfromMid è il minuto corrente dalla mezzanotte e viene confrontata con l'alba, il tramonto, i tempi di alimentazione e il crepuscolo per dire all'arduino quando fare cosa. Assicurati di aggiornare anche il tuo fuso orario, l'impostazione predefinita è EST.
Una volta impostata la posizione, imposta l'ora del crepuscolo per dire all'arduino quanto tempo vuoi che sia il crepuscolo. Questo controlla la durata del periodo tra il giorno e la notte ed è espresso in minuti. L'impostazione predefinita è 90 minuti, quindi le luci RGBW svaniranno dal giorno alla notte o viceversa in quel lasso di tempo.
Quindi, imposta i tempi di alimentazione che desideri. I tempi di alimentazione effettivi sono impostati nel metodo getTime() per mantenere sincronizzati i pasti con giorno/notte. Se invece vuoi che i tuoi pesci vengano nutriti alla stessa ora ogni giorno, commenta le impostazioni relative e usa le impostazioni iniziali all'inizio del codice. Ricorda che questi tempi sono espressi in minuti dalla mezzanotte. L'uso di orari di alimentazione iniziali e codificati potrebbe interferire con l'illuminazione se il tempo di alimentazione si ferma durante la dissolvenza tra il crepuscolo e la luce del giorno (all'alba e al tramonto). L'impostazione predefinita per il codice è rispettivamente di 15 minuti prima e dopo il tramonto e l'alba. Se lo si desidera, è possibile aggiungere ulteriori tempi di alimentazione.
Quindi, imposta l'ora in cui desideri ripristinare l'arduino. Ciò garantisce che nessuno dei tempi vada in overflow e risincronizza l'orologio. Consiglio di farlo accadere a metà giornata, quando sei via, poiché il processo di ripristino fa sì che le luci diventino a piena luminosità. Di giorno questo non sarà un problema per il pesce, ma di notte o al mattino/sera, il lampo di luce potrebbe disturbare il tuo pesce o rovinare l'aspetto dell'acquario per qualche secondo mentre ti stai divertendo.
Infine, controlla il numero di LED nella striscia che hai, la mia striscia ne ha 60, ma dovresti aggiornare questo valore nel codice di configurazione per quanti LED stai utilizzando.
Passaggio 7: l'illuminazione
Collega la tua striscia LED se non l'hai già fatto.
Alimentazione (rosso) a 5V, terra (bianco) a terra, segnale (verde) al pin 6 (o qualunque cosa tu lo abbia impostato). Una volta ripristinato l'arduino, le luci saranno alla massima luminosità fino a quando ESP8266 invierà l'ora all'arduino e determinerà dove si trova nel ciclo di illuminazione. È meglio impostarlo la sera o la notte, poiché il cambiamento di luce sarà più drastico. Se le luci non cambiano entro 30 secondi, resetta l'arduino. Il mio codice di ripristino dovrebbe funzionare, ma non sono un programmatore di professione, quindi potrebbero esserci ancora un paio di bug qua e là. Puoi verificare che il ripristino funzioni impostando il tempo di ripristino su un minuto dopo aver ricaricato il codice e aver atteso (il secondo di ripristino è casuale, quindi potrebbero essere necessari 1-2 minuti per ripristinarlo effettivamente) Puoi fare lo stesso trucco in seguito per assicurarsi che il servo funzioni modificando il tempo di alimentazione. Assicurati solo di cambiare questi orari prima di lasciarlo in esecuzione.
Il programma di illuminazione predefinito è piuttosto semplice:
Di notte, tutte le luci sono spente tranne il blu, che è al livello più basso (2/255). Quando l'ora si avvicina all'alba, il blu aumenta fino alla sua piena intensità (255), che raggiunge all'inizio del crepuscolo. Durante il crepuscolo, il rosso e il verde aumentano da spento fino a 255. All'alba, il rosso, il blu e il verde sono tutti a 255, ma la luce del giorno è bianca, quindi nei successivi 2 minuti il rosso, il blu e il verde svaniscono e il bianco svanisce a. Per tutto il resto della giornata il bianco è a piena intensità, fino a 2 minuti prima del tramonto, quando svanisce e viene sostituito di nuovo da rosso, blu e verde. Al tramonto, l'illuminazione rientra nel crepuscolo, tranne che questa volta il rosso e il verde iniziano a piena intensità e svaniscono, lasciando il blu a piena intensità quando arriva la notte. Da qui, il blu torna lentamente al suo valore più basso, che raggiunge a mezzanotte.
Esiste un altro codice alla fine dello schizzo arduino per altre modalità di illuminazione, quindi sentiti libero di giocare con la matematica per far sbiadire l'illuminazione in modo diverso o per cambiare i colori durante i diversi periodi della giornata. Ricorda che la matematica viene eseguita in formato float, ma i valori del colore devono essere interi, quindi è necessaria la conversione tra i due con qualsiasi nuova matematica di illuminazione che implementi.
Passaggio 8: stampa delle parti
Se non hai ancora stampato le parti per questo livello, fallo. L'alloggiamento ha all'incirca le stesse dimensioni di un'unità filtro di medie dimensioni e mi ci è voluta tutta la notte per stampare. Ripulire le parti, inserire il divisorio della paratia, con la scanalatura rivolta verso l'alto e il bordo arrotondato rivolto verso l'esterno. Il servo è installato allo stesso modo del Tier 1 e se stai sostituendo un sistema Tier 1 la tramoggia, il coperchio e la ruota di alimentazione sono identici, quindi non dovrai ristamparli se funzionano.
La cartella.zip contiene due set di file STL, uno per il servomotore SM22 originale che ho usato e un altro per il servo molto più comune SG90. Entrambi contengono i file Fusion 360 se si desidera/è necessario modificare una delle parti. Gli STL SM22 si adattano sicuramente insieme, dato che sono quelli che ho usato. Non ho stampato o testato le parti SG90.
Per i materiali, consiglio di utilizzare una plastica per alimenti. Ho usato il PLA Raptor di makergeeks, che è disponibile in una tonnellata di colori ed è super forte dopo averlo ricotto per 10 minuti. Questo può essere fatto facendo bollire le parti, cosa che ti consiglio di fare solo per la ruota se non si adatta perfettamente poiché la ricottura ridurrà le parti di circa lo 0,3%.
Ho stampato l'alloggiamento su un lato (con la parte superiore rivolta verso il lato e il lato aperto rivolto verso l'alto) Questo utilizza molto meno materiale di supporto rispetto ad altri orientamenti. La tramoggia può essere stampata capovolta per evitare tutto il materiale di supporto su di essa. Anche il coperchio della tramoggia dovrebbe essere stampato capovolto, tuttavia il coperchio grande dovrebbe essere stampato con il lato destro rivolto verso l'alto.
C'è anche un pezzo 'endstop' per fornire supporto alla parte inferiore dell'alloggiamento. Dopo aver lasciato l'alimentatore in posizione per un paio di settimane, ho notato che aveva iniziato a cedere e piegarsi a causa del peso dell'alimentatore, e questo stava influenzando la capacità della tramoggia di alimentare il cibo nella ruota. Basta incollare a caldo 1-2 finecorsa sul fondo dell'alloggiamento per mantenere tutto in piano.
Passaggio 9: assemblaggio
Usa una scheda prototipi per connettere tutto. Ho usato i cavi dei ponticelli quindi non ho dovuto saldare così tanto, ma è qui che si saldano di più. Finché le connessioni sono tutte uguali, il sistema funzionerà come sulla breadboard. Ho saldato insieme i pin dell'intestazione per creare "binari" di alimentazione per terra, 5 V, 3,3 V, nonché porte di segnale per i segnali servo e non di alimentazione da 3,3 V all'ESP8266 (RX, CH_PD e RST). Ho orientato tutti i pin verso il lato inferiore della scheda prototipi, con i componenti in alto.
Una volta completata la scheda prototipi, inserirla nella cavità superiore dell'alloggiamento e collegare il servomotore. I cavi di illuminazione escono dalla tacca nel coperchio della custodia e l'alimentatore si inserisce nella cavità inferiore. La cavità inferiore è arrotondata e presenta una leggera pendenza per drenare l'acqua che in qualche modo riesce a entrare nell'involucro lontano dall'elettronica. Collegare i terminali positivo e negativo dell'alimentatore al sistema e aggiungere il coperchio laterale.
Se non l'hai già fatto per l'alimentatore, taglia l'estremità del cavo di alimentazione che non si collega al muro e spella i fili abbastanza da poterli inserire nei terminali corretti dell'alimentatore. Se hai estremità crimpate che puoi mettere alle estremità, ti suggerisco di usarle, altrimenti il rame nudo andrà bene, assicurati solo che nulla sia in cortocircuito! RICORDA che questo sarà collegato alla presa di corrente della tua casa, SIATE AL SICURO E NON LAVORATE MAI CON IL SISTEMA COLLEGATO.
Successivamente, la striscia luminosa deve essere aggiunta al serbatoio. Rimuovere il coperchio del serbatoio e asciugarlo completamente. Assicurati che la superficie del coperchio sia pulita e asciutta prima di aggiungere le luci. La striscia che ho ottenuto ha un supporto adesivo, questo non funzionerà per fissare la striscia luminosa ma funzionerà per posizionarle lungo il bordo del coperchio (o ovunque tu le posizioni) Il coperchio del mio serbatoio era della misura giusta per la mia striscia, quindi non ho dovuto prolungare alcun cavo. Assicurati solo che tutti i cavi esposti siano coperti con materiali impermeabili prima di rimettere il coperchio sul serbatoio. Ho usato la colla a caldo per coprire le estremità, ma potrebbe non funzionare a lungo termine. Una volta che le luci sono disposte come ti piacciono, incollale al loro posto. Ho dovuto usare colla extra negli angoli poiché la striscia LED si è sollevata lì. Lascia asciugare la colla per alcuni minuti prima di rimettere il coperchio sul serbatoio, solo per essere sicuro che non goccioli dentro. Una volta rimesso il coperchio, collega semplicemente i fili all'arduino.
Il gruppo alimentatore è esattamente lo stesso dell'alimentatore Tier 1. Il servo si inserisce nella sua cavità con la ruota di alimentazione incollata ad esso. La tasca della ruota di alimentazione dovrebbe puntare verso la tramoggia quando il servo è nella sua posizione 0 (e ruotare verso il serbatoio nella posizione 180). Se si utilizza il motore a vibrazione opzionale, saldare alcuni fili conduttori e inserirlo nella tramoggia, c'è una cavità nella cavità del servo per esso. Invia i cavi del motore attraverso lo stesso percorso dei cavi del servo e collegali a terra e al pin del motore sull'arduino. Incolla a caldo la tramoggia alla base.
Una volta che tutto è collegato, puoi collegare l'alimentatore al muro. L'arduino dovrebbe seguire la sua sequenza di avvio e le luci cambieranno quando sarà il momento. In caso contrario, ripristinare la scheda fino a quando non riceve l'ora. Ho incollato a caldo il coperchio della custodia in posizione, ma ho lasciato il coperchio laterale scollato in modo da poter accedere all'arduino per ripristinarlo o riprogrammarlo.
Congratulazioni! La tua mangiatoia per pesci di livello 2 è pronta! Lasciati stupire dalla bella illuminazione e dalla sua capacità di nutrire i tuoi pesci quando non ci sei! Assicurati di monitorare il sistema nei prossimi giorni per assicurarti che tutto funzioni correttamente e che i tuoi pesci vengano effettivamente nutriti.
Passaggio 10: cose da tenere d'occhio all'inizio:
Quando ho impostato il mio per la prima volta, ho accidentalmente collegato il servo al pin del segnale sbagliato, quindi i pesci non sono stati alimentati per diversi giorni fino a quando non mi sono reso conto dell'errore (li stavo alimentando manualmente di notte in risposta all'errore successivo). Prova a impostare i tempi di alimentazione su quando è più probabile che tu sia in giro per confermare che i tuoi pesci sono stati nutriti.
Un altro errore da tenere d'occhio è il reset. Se, ad esempio, arrivi a casa dopo il tramonto e il tuo serbatoio è ancora acceso, è probabile che la funzione di ripristino non sia riuscita e che l'arduino non abbia mai ricevuto l'ora dall'ESP8266. Ciò significa anche che i tuoi pesci non sono stati nutriti dal momento del ripristino, quindi dovresti probabilmente dar loro da mangiare mentre premi il pulsante di ripristino sull'arduino. Sono sicuro al 99% di averlo eliminato, ma la codifica non è la mia professione, quindi assicurati di fare attenzione.
Assicurati anche di controllare il cibo nella tramoggia ogni settimana o due, riempilo se necessario e assicurati che nulla vada male.
Se stai andando in vacanza, assicurati di fare un cambio d'acqua e altre operazioni di manutenzione di base del serbatoio prima di partire. L'alimentatore assicura solo che il cibo e l'illuminazione non saranno la fine del tuo pesce se sei fuori per troppo tempo. Non dovresti mai più usare gli alimentatori per le vacanze!
Consigliato:
Mangiatoia per pesci Arduino Uno in 6 passaggi economici e facili!: 6 passaggi
Arduino Uno Fish Feeder in 6 passaggi economici e facili!: Quindi potrebbe essere necessario un po' di retroscena per questo progetto. Le persone con i pesci da compagnia hanno probabilmente avuto il mio stesso problema: vacanze e dimenticanze. Dimenticavo costantemente di dare da mangiare ai miei pesci e mi affrettavo sempre a farlo prima che andasse a s
Principiante: impara l'IOT con una fantastica mangiatoia per pesci: 9 passaggi (con immagini)
Principiante: impara l'IOT con un fantastico alimentatore per pesci: questo progetto riguarda più una guida per iniziare con un piccolo dispositivo IOT a basso budget e cosa puoi fare con esso. Cos'è l'IOT? Detto da Google: IoT è l'abbreviazione di Internet of Things. L'Internet of Things si riferisce alla rete in continua crescita di
Mangiatoia per pesci in acrilico: 11 passaggi (con immagini)
Mangiatoia per pesci in acrilico: in questo tutorial, ti insegnerò come ho realizzato una mangiatoia per pesci automatica per la mia koi~
Mangiatoia per pesci 2: 13 passaggi (con immagini)
Fish Feeder 2: Introduzione / Perché questo progettoNel 2016 ho costruito la mia prima mangiatoia per pesci, vedi Fish Feeder 1. La mangiatoia ha funzionato bene per più di sei mesi. Dopo tale periodo i servi si sono esauriti, causando l'arresto del programma, senza inviare una mail di errore. Ops. IO
Mangiatoia programmabile per pesci d'acquario - Mangime granulato progettato: 7 passaggi (con immagini)
Mangiatoia per pesci d'acquario programmabile - Mangime granulato progettato: Mangiatoia per pesci - Mangime granulato progettato per pesci d'acquario. Il suo design molto semplice di mangiatoia per pesci completamente automatico. Funziona con il piccolo micro servo SG90 9g e Arduino Nano. Alimenti l'intero alimentatore con il cavo USB (dal caricatore USB o dalla porta USB del tuo