Πίνακας περιεχομένων:

Μονάδα κάρτας SD με ESP8266: 6 βήματα
Μονάδα κάρτας SD με ESP8266: 6 βήματα

Βίντεο: Μονάδα κάρτας SD με ESP8266: 6 βήματα

Βίντεο: Μονάδα κάρτας SD με ESP8266: 6 βήματα
Βίντεο: Making flash memory from SD Card 2024, Νοέμβριος
Anonim
Image
Image
Μονάδα κάρτας SD με ESP8266
Μονάδα κάρτας SD με ESP8266
Μονάδα κάρτας SD με ESP8266
Μονάδα κάρτας SD με ESP8266

Σε αυτήν τη συναρμολόγηση, έχουμε μια κάρτα SD συνδεδεμένη με το ESP8266. Βάζουμε ένα DHT22, το οποίο μετρά τη θερμοκρασία και την υγρασία και στέλνει αυτές τις πληροφορίες στην κάρτα SD.

Στο κύκλωμα, δείχνει υγρασία 43,40 και θερμοκρασία 26,80. Κάθε φορά που εμφανίζει το μήνυμα "άνοιγμα του αρχείου με επιτυχία", είναι επειδή εκτελέστηκε μία φορά στον βρόχο. Αυτό που συμβαίνει σε αυτό το σενάριο είναι το ακόλουθο: μόνο οι τιμές γράφονται στο αρχείο καταγραφής και επομένως, το μήνυμα "το άνοιγμα του αρχείου με επιτυχία" είναι μόνο συμβουλευτικό και δεν καταγράφεται.

Βήμα 1: WiFi ESP8266 NodeMcu ESP-12E

WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Εδώ περιγράφουμε λεπτομερώς το στοιχείο που χρησιμοποιούμε, σε αυτήν την περίπτωση το NodeMCU ESP12, μαζί με το φύλλο δεδομένων αυτής της συσκευής.

Βήμα 2: Αισθητήρας υγρασίας

Αισθητήρας υγρασίας
Αισθητήρας υγρασίας

Στη σειρά, εμφανίζω λεπτομέρειες σχετικά με αυτό το άλλο στοιχείο, το DHT22, με την αντίστοιχη καρφίτσα.

Βήμα 3: Ενότητα κάρτας SD

Ενότητα κάρτας SD
Ενότητα κάρτας SD

Αυτή είναι η μονάδα κάρτας SD μας. Όπως μπορείτε να δείτε από το pinout, είναι με σύνδεση SPI.

Βήμα 4: Συναρμολόγηση

Συνέλευση
Συνέλευση

Το διάγραμμα συναρμολόγησης βασίζεται στον αναγνώστη, το DHT22, το NodeMCU ESP12. Επέλεξα το τελευταίο γιατί χρειάζεται μια λογική ποσότητα IO. Έτσι, το ESP01 θα λειτουργούσε επίσης για αυτήν τη συναρμολόγηση.

Βήμα 5: Βιβλιοθήκες

Βιβλιοθήκες
Βιβλιοθήκες

Για αυτήν τη συναρμολόγηση, χρειάζεστε τη βιβλιοθήκη DHT του ίδιου του Arduino IDE. Απλώς μεταβείτε στο "Sketch> Include Library> Manage Libraries" καθώς κατεβάζετε το DHT. Πρέπει να κάνετε το ίδιο πράγμα για τη Βιβλιοθήκη SD.

Βήμα 6: Πηγαίος κώδικας

Ο πηγαίος κώδικας που χρησιμοποιείται στη διάταξη είναι απλός και είναι απλώς για να δείξει ότι η κάρτα SD τρέχει. Πρέπει να εισαγάγετε όλη την πολυπλοκότητα αργότερα, αλλά μπορείτε να χρησιμοποιήσετε άλλες αναρίθμητες δυνατότητες. Ωστόσο, αυτό δεν ισχύει για αυτό το παράδειγμα.

// biblioteca responsável pela comunicação com o Cartão SD #include // biblioteca responsável pela comunicação com o sensor DHT22 #include // pino de dados do DHT será ligado no D6 do esp #define DHTPIN D2 // tipo do sensor #define DHTTYPE DHT22 // construtor do objeto para comunicar com o sensor DHT dht (DHTPIN, DHTTYPE); // pino ligado ao CS do módulo SD Card #define CS_PIN D8;

Ρύθμιση

Στη συνάρτηση Setup, θα ξεκινήσουμε την επικοινωνία του αντικειμένου μας με τον αισθητήρα και θα προετοιμάσουμε επίσης την κάρτα SD.

void setup () {Serial.begin (9600); Serial.print ("Inicializando o cartão SD …"); // inicializa o objeto para comunicarmos com o sensor DHT dht.begin (); // verifica se o cartão SD está presente e se pode ser inicializado if (! SD.begin (CS_PIN)) {Serial.println ("Falha, verifique se o cartão está presente."); // programa encerrrado return? } // se chegou aqui é porque o cartão foi inicializado corretamente Serial.println ("Cartão inicializado."); }

Βρόχος

Στο βρόχο, διαβάζουμε υγρασία, υγρασία και θερμοκρασία. Αυτό μοιάζει πολύ με την τυπική γλώσσα C.

// faz a leitura da umidade float umidade = dht.readHumidity (); Serial.print ("Umidade:"); Serial.println (umidade); // faz a leitura da temperatura float temperatura = dht.readTemperature (); Serial.print ("Temperatura:"); Serial.println (temperatura); Αρχείο dataFile = SD.open ("LOG.txt", FILE_WRITE); // se o arquivo foi aberto corretamente, escreve os dados nele if (dataFile) {Serial.println ("O arquivo foi aberto com sucesso."); // formatação no arquivo: linha a linha >> UMIDADE | TEMPERATURA dataFile.print (umidade); dataFile.print ("|"); dataFile.println (temperatura); // fecha o arquivo após usá-lo dataFile.close (); } // se o arquivo não pôde ser aberto os dados não serão gravados. else {Serial.println ("Falha ao abrir o arquivo LOG.txt"); } // intervalo de espera para uma nova leitura dos dados. καθυστέρηση (2000). }

Συνιστάται: