Բովանդակություն:

SD քարտի մոդուլ ESP8266- ով `6 քայլ
SD քարտի մոդուլ ESP8266- ով `6 քայլ

Video: SD քարտի մոդուլ ESP8266- ով `6 քայլ

Video: SD քարտի մոդուլ ESP8266- ով `6 քայլ
Video: ESP8266 Wireless Nextion HMI || Outseal Arduino PLC 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: Գրադարաններ

Գրադարաններ
Գրադարաններ

Այս հավաքի համար ձեզ հարկավոր է Arduino IDE- ի DHT գրադարանը: Պարզապես գնացեք «Էսքիզ> Ներառել գրադարանը> Գրադարանների կառավարում» ՝ 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 // հաղորդիչ, որն անհրաժեշտ է կոմունիկացիոն համար DHT dht տվիչ (DHTPIN, DHTTYPE); // pino ligado ao CS do módulo SD Card #սահմանել CS_PIN D8;

Կարգավորում

Setup գործառույթում մենք կսկսենք մեր օբյեկտի հաղորդակցությունը սենսորի հետ, ինչպես նաև նախաստորագրենք SD քարտը:

void setup () {Serial.begin (9600); Serial.print ("Տեղեկատվություն կամ քարտ 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."); // ծրագիր 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); }

Խորհուրդ ենք տալիս: