Skocz do zawartości

Aktywny System Monitorujący


Pomocna odpowiedź

W sumie ciekawe zagadnienie. Elektronika wewnątrz w samochodzie, moduły, BSI - zero lakierowania, wszystko hula, po 20 latach wygląda jak nowe. W komorze silnika - polakierowane, hermetyczna puszka, czasem i to, i to. Ja zwykły cywilny router w puszce miałem, może ze dwa lata, z czego rok wyłączony. Zero szkód. Drukarka zimuje w nieogrzewanym garażo-pokoju, też jej dobrze.

7 godzin temu, Szern napisał:

Jedną czujkę chyba potraktował dziobem dzięcioł, innej opcji nie widzę.

Trochę wygląda obudowa jak domek dla ptaków - bez uszczypliwości. Dużo roboty, sklejka nie wydaję się najlepszym materiałem. Są gotowe obudowy. Tylko otwór wywiercić na kopułkę. Może jakby pomalować na wzór maskujący, to będzie mniej kontrastowe dla ptaków i nie będzie zwracać uwagi - jeśli nie pogorszy to pracy czujnika. Do uszczelnienia ja bym dał poliuretan (klej do szyb, masa uszczelniająca - szczególnie na to, co nie będzie rozłączane, czyli kopułka-obudowa), czy np. Dirko. Mała tubka w motoryzacyjnym.

Edytowano przez matsobdev
Link do komentarza
Share on other sites

4 minuty temu, matsobdev napisał:

Trochę wygląda obudowa jak domek dla ptaków - bez uszczypliwości. Dużo roboty, sklejka nie wydaję się najlepszym materiałem. Są gotowe obudowy. Tylko otwór wywiercić na kopułkę. Może jakby pomalować na wzór maskujący, to będzie mniej kontrastowe dla ptaków i nie będzie zwracać uwagi - jeśli nie pogorszy to pracy czujnika. Do uszczelnienia ja bym dał poliuretan (klej do szyb, masa uszczelniająca - szczególnie na co nie będzie rozłączane, czyli kopułka obudowa), czy np. Dirko. Mała tubka w motoryzacyjnym.

Wygląda jak domek dla ptaków, ale jest znacznie mniejszy - taka czujka jest nieco mniejsza od wróbla. Sklejka dlatego, bo tylko z tego mogłem wyciąć doraźnie w miarę precyzyjne obudowy.

To jest prototyp. Ma przetrwać do wiosny i służy do zebrania doświadczeń. Jak na razie mam ich aż zbyt dużo... Sklejka klejona silikonem jak na razie bardzo dobrze się sprawdza (pod warunkiem, że nie popełnię błędów przy sklejaniu). Jest to szczelne, dosyć dobrze znosi deszcz, a w razie poprawek po prostu wycinam nożem silikon i odrywam go od sklejki. Później mogę uformować obudowę od nowa z niewielkimi poprawkami, a braki uzupełnić silikonem. Gotowe obudowy to kostki, a ja zaprojektowałem wielościany. Czujki były wklejane do jednej ze ścianek "na płasko", a ściankaa była pod kątem do ściany budynku (w pionie, bo czujki są na wysokości czterech metrów i w poziomie, bo odchylone są od ściany pod różnymi kątami (mierzyłem i liczyłem)- śledzą drzwi, dojście do drzwi, okna, garaż itp. Jak na razie to podejście się sprawdza.

czujka3.thumb.png.5f96bf1efc431c1c1be9efc839635607.pngczujka2.thumb.png.bf1e12ef7232d449fc0c5ef098bd92bb.png

Na wiosnę mam w planach kupno drukarki 3D. Wtedy wydrukowałbym obudowy na podstawie doświadczeń wyniesionych ze sklejki i silikonu i wtedy pewnie użyłbym polecanego kleju. Tak powstałby system nieco trwalszy niż prototyp.

Tak na marginesie, po dopracowaniu programu i poprawieniu połączeń system działa dość obiecująco. Dzięki analizie uszkodzonych czujek wiem już gdzie popełniłem błędy i co się dobrze sprawdza. Mam nadzieję, że już niedługo będę mógł go zaprezentować w całej sklejkowo-silikonowej okazałości, już w akcji.

  • Lubię! 1
Link do komentarza
Share on other sites

Pomocy!

Raspberry Pico W

Język C przez ArduinoIDE.

Po ustawieniu czasu (a właściwie nawet bez ustawienia)

#include "pico/stdlib.h"
struct timeval now;
now.tv_sec = abuf;
settimeofday(&now, NULL);

Korzystam z time(NULL), ale przybiera ono dziwne wartości, nagle, skokowo cofając czas, np.

1699832780

1699831496

1699832033

i potem znów jakiś czas zwiększa się normalnie o 1.

Czy to oznacza, że jeśli Pico nie ma zegara RTC, to nie mogę z niego normalnie korzystać w taki sposób? Czy ja coś robię źle, czy coś jest nie tak z Pico?

Chciałem uniknąć pobierania czasu z internetu kilka razy na sekundę, ale nie rozumiem tego co się dzieje.

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

Struktura timeval posiada dwa elementy - pierwszy (tv_sec) został przez Ciebie zainicjowany, a drugi (tv_usek) już nie.

Trzeba dodać linijkę:

now.tv_usec = 0;

i dopiero potem ustawić wartość czasu. Bez tego zapisujemy śmieci.

  • Lubię! 1
Link do komentarza
Share on other sites

5 godzin temu, jand napisał:

Struktura timeval posiada dwa elementy - pierwszy (tv_sec) został przez Ciebie zainicjowany, a drugi (tv_usek) już nie.

Trzeba dodać linijkę:

now.tv_usec = 0;

i dopiero potem ustawić wartość czasu. Bez tego zapisujemy śmieci.

Dziękuję, myślałem, że w moim przypadku ta część jest zbędna. Faktycznie teraz działa dobrze.

Próbowałem jeszcze użyć struct timezone, ale chyba coś robię źle, bo ustawienie strefy przez:

  struct timeval now;
  now.tv_sec = abuf;
  now.tv_usec = 0;
  struct timezone nowt;
  nowt.tz_minuteswest = 120;
  nowt.tz_dsttime = 0;
  settimeofday(&now, &nowt);

nie daje absolutnie żadnych efektów.

Link do komentarza
Share on other sites

5 godzin temu, H1M4W4R1 napisał:

Dzięki za linka, nie wiedziałem. Korzystam głównie z Unix time, a do wyciągnięcia daty w konkretnym formacie napisałem kod. Ale w następnej wersji spróbuję zastąpić to RTC.

Link do komentarza
Share on other sites

39 minut temu, ethanak napisał:

To wywal w puhw te całe Arduino IDE - Pico ma swoje SDK w którym się świetnie programuje.

Docelowo tak. Najlepiej pisze mi się w VSC. Niestety mam jeszcze tylko tydzień na finalne uruchomienie alarmu i w tej chwili korzystam z tego, co jako tako znam.

Link do komentarza
Share on other sites

15 minut temu, Szern napisał:

nie daje absolutnie żadnych efektów

Nie wiem jak sprawdzasz te efekty, ale trzeba pamiętać, że funkcja time() zawsze zwraca czas Epoch. Aby uzyskać czas lokalny trzeba zastosować np.  funkcję localtime() która zwróci czas skorygowany o ustawioną wcześniej strefę czasową.

  • Lubię! 1
Link do komentarza
Share on other sites

15 minut temu, jand napisał:

Nie wiem jak sprawdzasz te efekty, ale trzeba pamiętać, że funkcja time() zawsze zwraca czas Epoch. Aby uzyskać czas lokalny trzeba zastosować np.  funkcję localtime() która zwróci czas skorygowany o ustawioną wcześniej strefę czasową.

Dziękuję Ci bardzo! Własnie tu tkwił problem. Nie wiedziałem, że time to zawsze Epoch. Jeszcze niedouczony jestem. 

Link do komentarza
Share on other sites

3 minuty temu, ethanak napisał:

Tak, wiem. Próbowałem i miałem z tym problemy. Być może miałem zbyt dużo różnych pierdół w systemie, ale nie miałem cierpliwości, aby to łatać.

Teraz definitywnie kończę zabawę z alarmem (do wiosny) i biorę się za solidne uzupełnienie i uporządkowanie podstaw C (źle mi się improwizuje), a także opanowanie normalnego środowiska. 

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...