Temp. regeling serre

Arduino specifieke Software
Berichten: 6
Geregistreerd: 17 Jul 2021, 11:01

Temp. regeling serre

Berichtdoor bajka » 02 Jun 2023, 10:55

Beste,

Het is alweer een hele tijd geleden dat ik nog eens een progje
geschreven en heb en daar de hardware nog in mijn hoofd zit zou
ik graag weten of het progje fouten bevat.

Er zijn 3 motoren die bestuurd worden met een H-brug, enkel
motor-C is nog niet duidelijk maar zou wel een zelfde taak
hebben, openen / sluiten. Alleen is het mij even ontgaan wat.....
Van muizennesten gesproken.

De taak is dat er bij bepaalde temperaturen gerichte acties genomen
worden, dit om in een serre (bxdxh 1.95 x 2.57 x 1.97 m) in het
vroege voorjaar zomerbloemen te kunnen kweken (hebben warmte nodig)
en in de late lente er tomaat en paprika in te zetten.(kan heet
worden onder glas)

Motor 1 zou dienen voor het openen van een nokraam, motor 2 voor het
eventueel sluiten van een zonneweerscherm. J1 en J2 zou staan voor 2
ventilatoren van +/- 20 cm om de "hete" lucht UIT de serre te zuigen...
J3 is voor de verwarming, die zou kunnen bestaan uit een petroleumvuur,
al ben ik daar nog niet echt uit. Moet nog eens uitzoeken of die op een of
andere manier aan een Arduino gekoppeld kan worden.....

Dat een korte omschrijving met het doel van het progje, ach ja, deze
zou draaien op een Arduino Nano. (er zijn nog enkel projecten in de maak
met elk hun eigen Arduino Nano of pro mini. Moet nog bekijken.)

Het progje:

...
...
void CWA() { // Motor A
digitalWrite(OpenA, HIGH);
if (S1, HIGH) {
digitalWrite(OpenA, LOW);
}
}
void CCWA() { //Motor A
digitalWrite(ToeA, HIGH);
if (S2, HIGH) {
digitalWrite(ToeA, LOW);
}
}
void CWB() { //Motor B
digitalWrite(OpenB, HIGH);
if (S3, HIGH) {
digitalWrite(OpenB, LOW);
}
}
void CCWB() { //Motor B
digitalWrite(ToeB, HIGH);
if (S4, HIGH) {
digitalWrite(ToeB, LOW);
}
}
void CWC() { //Motor C
digitalWrite(OpenC, HIGH);
if (S5, HIGH) {
digitalWrite(OpenC, LOW);
}
}
void CCWC() { //Motor C
digitalWrite(ToeC, HIGH);
if (S6, HIGH) {
digitalWrite(ToeC, LOW);
}
}

void loop() {
digitalRead(Regen);
if (Regen, HIGH) {
CCWC(); delay(10000);
CCWB(); delay(10000);
CCWA(); delay(10000);
}
else {
digitalRead(DHT1);//temp buiten
if (DHT1 < 20) {
CCWC(); delay(10000);
CCWB(); delay(10000);
CCWA(); delay(10000);
}
else {
digitalRead(DHT2);
}
if (DHT2 < 25) {
CCWC(); delay(10000);
CCWB(); delay(10000);
CCWA(); delay(10000);
digitalWrite(J1 && J2, LOW);
}
else if (DHT2 > 25 && DHT2 < 30) {
CWA();
}
else if (DHT2 > 30 && DHT2 < 35) {
digitalWrite(J1, HIGH);
}
else if (DHT2 > 35) {
CCWA();
CWB();
digitalWrite(J1 && J2, HIGH);
}
}
delay(30000); // 5 min, ruim voldoende...
}

Alvast bedank om het even te bekijken en me op fouten te wijzen.

Wees allen gegroet,
Bajka.

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Temp. regeling serre

Berichtdoor shooter » 03 Jun 2023, 17:25

al die delays eruit halen want al de eerste motor loopt dan moet hij dus stoppen als de schakelaar high is dus die loop moet snel lopen dus commando geven en als er iets verandert dan actie
en een DHT is analoog en dus anders lezen daar hoort een stukje software bij
paul deelen
shooter@home.nl

Berichten: 6
Geregistreerd: 17 Jul 2021, 11:01

Re: Temp. regeling serre

Berichtdoor bajka » 04 Jun 2023, 10:26

Beste Shooter,

Volgens de datasheet (hieronder) verklaren ze dat de output digitaal is en
daarom leek het mij logisch om hem aan een digitale poort te hangen...

De DHT22 is een veel gebruikte temperatuur en luchtvochtigheid sensor, met
een sample rate van maximaal 0,5 hz, waarbij de output digitaal wordt verzonden.

Specificaties:

Luchtvochtigheid range: 0%-100% RH
Luchtvochtigheid error: ± 3-5% RH
Temperatuur range: -40-125°C
Temperatuur error: ± 0,5°C
Voltage: 3-5V


De delay's, naar ik vermoed die van 10000 mils, die zijn eruit gehaald. Binnenkort
word alles in een proefopstelling opgebouwd waarbij de uitgangen "LED's" worden.
Heb al veel €'s verloren aan printen die niet "werken"..... leergeld dus.
Zal intussen ook een kijken of ik er een Frizing schema erbij kan doen om een
beter beeld te krijgen van de opbouw.

Hou je op de hoogte.

Gegroet,
Bajka.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Temp. regeling serre

Berichtdoor shooter » 05 Jun 2023, 10:32

NOOIT printen maken maar altijd proberen met een breadboardje en dan alles testen en als het commercieel interessant is dan pas nadenken over een opzetje en dan dat opzetje op een gaatjesprint zetten en weer testen en daarna pas misschien een printje in china laten maken.
ja je hebt gelijk een DHT is digitaal maar dat werkt met een serieel protocol en dus een stukje software heb je nodig om de sensor te lezen, en ja er bestaan digitale thermostaten die gewoon aan en uit gaan maar dat is een DHT niet.
paul deelen
shooter@home.nl

Berichten: 6
Geregistreerd: 17 Jul 2021, 11:01

Re: Temp. regeling serre

Berichtdoor bajka » 24 Jun 2023, 16:10

Hoi Shooter,

Zal de afbeeldingen naar uw e-mail moeten sturen, ze zijn "te groot" voor forum...
alle delay's zijn eruit , ben nu aan het uitzoeken of die door mili's vervangen kunnen
worden. Wanneer klaar zet ik ze op forum....

met vriendelijke groet

Bajka.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Temp. regeling serre

Berichtdoor shooter » 24 Jun 2023, 20:20

heb een berichtje van jou ontvangen en daar staan een schema in echter niet als bestand zoals jpg of als pdf dus nog een keer aub want dit kan ik wel zien maar niet behandelen dus graag de fritzing als een attach wellicht kan ik het dan op het forum zetten. en je zult moeten kijken naar hoe een dht werkt en de library ophalen.
groetjes paul,
paul deelen
shooter@home.nl

Berichten: 80
Geregistreerd: 02 Nov 2022, 13:03

Re: Temp. regeling serre

Berichtdoor ThHe » 25 Jun 2023, 12:10

Alleen even opmerkingen over de programma structuur:
- Alleen als het niet regent wordt de temperatuur gemeten. (???)
- Alleen als de temperatuur (DHT1) >= 20 wordt DHT2 gemeten.
- De if loop van DHT2 wordt uitgevoerd ongeacht of DHT2 is gemeten. (???)
- Hoop dat DHT2 een float is anders worden de waarden 25 30 && 35 niet uitgevoerd.
- if Loop kan beter als volgt werken
Code: Alles selecteren
if (DHT2 < 25) {
         .....
      }
      else if (DHT2 < 30) {
         .....
      }
      else if (DHT2 < 35) {
         .....
      }
      else {
         ......
      }


- Moet de digitalRead niet zoiets zijn als DHT2 = digitalRead(<pin>)
of DHT2 = dht.readTemperature() via de include <DHT.h>

Succes met je project.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten