nasiona marihuany

ARDUINO - Sterownik CO2, temperatury, wilgotności.

Wyszukiwarka Forumowa:

spavnonix

Member
Rejestracja
Cze 18, 2017
Postów
13
Buchów
0
Witam. Zakupiłem [h=1]CO2 SENSOR MH-Z14A[/h] [FONT=&quot]DHT11 [/FONT]
Arduino
Włącznik 230v
25.jpg

26.jpg
Moje pytanie czy ma ktoś skrypt jak i opis podłaczenia żeby strować zaworem na 230v do podawania co2 z butli i wentylatorem do temperatury. Może być do samego Co2 bo na tym mi zależy najbardziej.
27.jpg
28.jpg


---------- Post Zaktualizowany 12:56 ---------- Data pierwszego postu 12:53 ----------

To jest działający do odczytu PPM co2. Jakaś przeróbka by się przydała żeby sterował włącznikiem 230v po spadku do np. 800ppm i załączał aż będzie 1300ppm. Jest ktoś mądry co by to zrobił:D I jakiś schemacik mały podłączenia.




#include <SoftwareSerial.h>
SoftwareSerial SerialCom (A1,A0);
int myDelay = 2000;

byte addArray[] = { 0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79 };

char dataValue[9];
String dataString = "";

void setup(){
Serial.begin(9600);
SerialCom.begin(9600);
Serial.println("MH-Z14 C02 Sensor Test Code");
Serial.println("------------------------------------");
}

void loop() {
SerialCom.write(addArray, 9);
SerialCom.readBytes(dataValue, 9);
int resHigh = (int) dataValue[2];
int resLow = (int) dataValue[3];
int pulse = (256*resHigh)+resLow;
dataString = String(pulse);
Serial.print("PPM: ");
Serial.println(pulse);
delay(myDelay);
}
 

DeepX

A fu!
Rejestracja
Gru 19, 2019
Postów
330
Buchów
38
Dla potomnych, z powyższego skryptu interesuje nas zmienna typu integer pulse, ona określa ppm. Do wykonania automatycznego otwarcia elektrozaworu aby dopompować CO2 potrzebujemy (jeśli elektrozawór nie jest wyposażony w linię PWM, a zapewne nie jest) modułu z przekaźnikiem. Do przekaźnika doprowadzamy zero z sieci energetycznej, do elektrozaworu fazę. Zero dostarczamy z wyjścia zwiernego przekaźnika. Następnie musimy stworzyć instrukcję warunkową, która w przypadku danych odczytów spowoduje uruchomienie przekaźnika, operując na powyższym przykładzie:

Przed pętlą setup:
int pin_co2 = 2; // definiujemy pin dla wyzwolenia przekaźnika sprzężonego z elektrozaworem

Do pętli setup:
pinMode(pin_co2, OUTPUT); // określamy rodzaj pracy dla pinu nr 2, zdefiniowanego już jako pin_co2

Do pętli void:
int response_treshold_min = 800; // minimalna wartość progu zadziałania otwarcia elektrozaworu
int response_treshold_max = 1300; // maksymalna wartość zadziałania, powyżej elektrozawór zamknie się

if(pulse <= response_treshold_min && pulse <= response_treshold_max) {
digitalWrite(pin_co2, HIGH); // ustawiamy stan wysoki dla pinu przekaźnika co powoduje jego zwarcie
} else {
digitalWrite(pin_co2, LOW); // ustawiamy stan niski dla pinu przekaźnika co powoduje jego rozwarcie
}

To najprostsza możliwa metoda, w przypadku elektrozaworów z PWM korzystamy z pinów PWM w Arduino i do otwarcia zaworu przekazujemy na pin wartość 255, dla zamknięcia 0.

Pozdrawiam, mam nadzieje, że komuś się ten przykład przyda.

---------- Post Zaktualizowany 01:31 ---------- Data pierwszego postu 01:29 ----------

Dla pętli void -> dla pętli loop. Literówka.
 



Z kodem HASZYSZ dostajesz 20% zniżki w sklepie Growbox.pl na wszystko!

nasiona marihuany
Góra Dół