Skocz do zawartości

Sterownik pieca CO


Mialek

Pomocna odpowiedź

Gość es2
Jak mniemam słowo "port" albo (jak zwykle w Twoim przypadku) zostało "niedoczytane" albo z premedytacją pominięte...

Nie bardzo chce mi się walczyć z C dla ESP, skoro prawdopodobnie nie spałnia moich oczekiwań. Tak też skończyły się działania w kierunku modułów GSM i programach na nich uruchamianych. Przy produkcji 100..1000 urządzeń rocznie, nie ma to sensu. Po kilku latach zmiany na rynku są takie, że tani moduł jest drogi. Jak nie uwiążę się do konkretnego producenta, po kilku latach wybieram moduł nie za 400zł a za 40zł. Zmiana nie jest kosztowna, bo tylko zmiana "driverów". Dodatkowy koszt, to koszt uC. Uwiążę się do ESP, będzie rewolucja na rynku i muszę na nowo uczyć się nowego środowiska itp, itd. Modyfikacja "drivera" jest dużo tańsza i prostsza (przy niedużej-średniej skali produkcji).

Link do komentarza
Share on other sites

Gość es2
Czyli nic nowego. Nie znasz się, ale musisz się wypowiedzieć.

Temat dotyczy ESP?

Jak zwykle zresztą...

Czyli te moje 100 projektów dla AVT wykonały za mnie inne osoby?

To jestem lepszy jak oszust Nowak od cudownej wody, bo AVT przez 20 lat nie zorientowało się, że na niczym się, jak zwykle, nie znam.

Może kolega pochwali się swoimi osiągnięciami?

Ja mam skromne i ich nie ukrywam (są w stopce).

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ostatnio forum opanowała taka moda, że każdy stara się udowodnić swoją rację podając ile ma doświadczenia. To że ktoś napisał lepsze, czy gorsze artykuły nie znaczy że ma rację. Nawet nie znaczy, że wie o czym pisze. Przykładowo czytając artykuły np. na interii, czy onecie mam wrażenie że piszą je gimnazjaliści, którzy nawet języka polskiego nie opanowali.

Więc es2, poszukaj jakiejś innej metody niż "dowód przez autorytet", szczególnie tak marny jak pisanie arytkułów do gazetki dla hobbystów.

Link do komentarza
Share on other sites

Dzięki za zainteresowanie 😉

kolega es2 napisał że :

"Jedyne co mogłoby blokować program "

 while ((temperatura_pieca) =temperatura_ustawiona);

ale jak widac w programie przed while jest // komentarz więc ta linijka nie działa,

hmm, sterownika pieca nie ruszam, posiadam piec miałowy/drewno, w którym jest dmuchawa, pompa, (sterowane sterownikiem pieca) lecz zauważyliśmy z ojcem że na dmuchawie o wiele szybciej wypala drewno niż gdy wyłączymy dmuchawę(wyjęta wtyczka) i się lekko uchyli drzwiczki, lecz gdy się rozpala drzwiczki muszą być otwarte na max a gdy osiągnie ok 50 stopni to je się przymyka, gdy się dorzuci drewna i piec zaczyna bujać to jeszcze bardziej trzeba przymknąć, lecz jak to ludzie mają, zapominają, i juz kilkanascie razy wywaliło wodę z zbiornika wyrównawczego, dlatego chciałbym postawić program na arduino mini podłączyć czujnik temp. wody pieca, i servo od klapki pieca, gdy nacisnę przycisk(rozpalanie) to ma otworzyć na 100% drzwiczki, gdy złapie już 50-55 stopi przymknąć na 50%, a gdy osiągnie temperaturę ustawioną(przyciskami) czyli ok 60 stopni, przymkną na np. 20% jak dalej rośnie to -5%, jak spada to +5%, myślę że taki program nie jest jakoś mocno skomplikowany, oczywiście gdy zrobię program to będzie pierwsze testowany, i przy piecu będzie się co chwilę zobaczyć co się dzieje.

dodatkowa opcja jaką chcę dodać gdy bedzie działać to dołożyć esp8266 który będzie wysyłać do domoticza(mam raspberry jako centrala) temperaturę na piecu, i boliera z wodą, na domoticzu ustawię alarm żeby przychodziły wiadomości o za dużej temperaturze, jak i mogę sprawdzić będąc na polu lub gdzieś indziej jaka jest temp. ale to już później 😉

Co do tematu, czy dobrze to piszę co chcę osiągnąć ?

Jak mam napisany program od przycisków to mogę go przywołać #include "przyciski"

i odbierać jedynie to co jest ustawione czyli temperaturę ustawioną, ??

jak możecie to wytłumaczcie swoje argumenty, tylko tak na chłopski rozum bo jeszcze za bardzo nie czaję tych fachowych zagadnień.

prowadzę gospodarstwo i chcę w wielu miejscach użyć arduino żeby zrobił to program, przez co zyskam czas na zrobienie czegoś innego.

Link do komentarza
Share on other sites

"Wystarczy np w setup wysłać do czujników komendę CONVERT."

Moglibyście rozwinąć temat? O co chodzi z tym CONVERT? Co to robi i jak tego używać? Dziękuję 😃

Link do komentarza
Share on other sites

SOYER, wszystko jest w dokumentacji czujnika DS18S20: https://datasheets.maximintegrated.com/en/ds/DS18S20.pdf

Czujnik jest bardzo fajny, ale pomiar zajmuje dużo czasu - więc jeśli czekasz na wynik to marnujesz np. 750ms. Lepiej najpierw "zlecić" rozpoczęcie pomiaru, a później (czyli po 0,75s) tylko odczytać wartość. To nic trudnego, ani skomplikowanego. Niektóre biblioteki pozwalają na dwa rodzaje odczytów - z czekaniem i bez. Więc użycie pomiaru z czekaniem ma prawo blokować program, nic w tym dziwnego.

Link do komentarza
Share on other sites

Przypominam, że istnieje kilka różnych bibliotek obsługujących ten czujnik. Ja osobiście korzystam z biblioteki DS18B20, i mam tam taką miłą metodę available(). Mogę więc odczyt temperatury zrealizować np. w taki sposób:


void setup()
{
  ...
  sensor.request(adres);
}

float readTemp(uint8_t *adres)
{
   static float temperature = 85.0;
   if (sensor.available()) {
       temperature = sensor.readTemperature(adres);
       sensor.request(adres);
   }
   return temperature;
}

Nie jest to oczywiście pełny kod - nie obejmuje sytuacji awaryjnych (a bezwzględnie musisz taką przewidzieć), ale od tego można zacząć.

Funkcja readTemp może być wywoływana dowolnie często, fizyczny odczyt będzie wykonany dopiero wtedy, kiedy będzie to możliwe, lub funkcja zwróci wartość z poprzedniego odczytu.

Ogólnie polecam tę bibliotekę.

Przy okazji jako ćwiczenie ze spostrzegawczości - dlaczego wartościa początkową jest 85 stopni? 🙂

Link do komentarza
Share on other sites

Dzięki, tylko troszkę ciężko było mi ten kod zrozumieć, ale znalazłem na internecie fajnie wytłumaczone

Źródło:

http://akademia.nettigo.pl

kod:

// Program odczytuje temperaturę z czujnika

#include <OneWire.h>
#include <DS18B20.h>

// Numer pinu do którego podłaczasz czujnik
#define ONEWIRE_PIN 2

// Adres czujnika
byte address[8] = {0x28, 0xB1, 0x6D, 0xA1, 0x3, 0x0, 0x0, 0x11};

OneWire onewire(ONEWIRE_PIN);
DS18B20 sensors(&onewire);

void setup() {
 while(!Serial);
 Serial.begin(9600);

 sensors.begin();
 sensors.request(address);
}

void loop() {
 if (sensors.available())
 {
   float temperature = sensors.readTemperature(address);

   Serial.print(temperature);
   Serial.println(F(" 'C"));

   sensors.request(address);
 }

 // tu umieść resztę twojego programu
 // Będzie działał bez blokowania
}

Wrzucam dla potomnych gdyby mieli ten sam problem 😉

teraz postaram się to układać, jak zadziała to się podzielę kodem, jak nie, to dalej będę prosił o pomoc, jeszcze raz dzięki ethanak za pokazanie kierunku, z kazdą godziną coś się uczę

#####EDIT#####

No i mam problem 😖

program działa fajnie, lecz problem z ustawieniem warunków,

if (abs(sensors.readTemperature(address) - temperatura_ustawiona)>2) {
myservo.write(srodek);
}

dany kod ustawia serwo na srodek jak temperatura pieca jest +-2 stopnie od temperatury ustawionej

ale nie mogę zrobić że jak mamy np. ustawione 50* a temp jest ponizej 48* to serwo.write(otworz); a jak powyzej 52* to serwo.write(zamknij);

pokierujcie :->

Link do komentarza
Share on other sites

Przecież sam napisałeś:

jak mamy np. ustawione 50* a temp jest ponizej 48* to serwo.write(otworz); a jak powyzej 52* to serwo.write(zamknij);

Teraz tylko przepisz to z polskiego na C i masz gotowe 🙂

Podpowiem Ci: na tej zasadzie działają wszystkie (no, prawie) regulatory temperatury, znajdź sobie jakiś na forum i podejrzyj kod.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.