Wpis z mikrobloga

WPIS 3 - Długi czas oczekiwania

#terruino - tag do blokowania/obserwowania

#elektronika #arduino #terrarium #terrarystyka #diy #esp8266 #agamabrodata

Hej, ostatni wpis był 10 dni temu, związane to było z postępującymi pracami nad terruino i brakiem czasu na pisanie dziennika pokładowego.

Zacznę od podziękowań dla mirka @Kokix który chciał pomóc i w sumie to zrobił bo wpadłem dzięki niemu na rozwiązanie problemu z HTTP i klientem NTP - czasowym.

Przez ostatnie 10 dni mocno modyfikowałem terruino, zaczynając od ostatniego wpisu - udało mi się wysłać wiadomość testową po HTTP, jednak na testowej się skończyło ze względu na nikłą znajomość składni języka PHP. Postanowiłem poszukać innego rozwiązania tego problemu, ktoś gdzieś w komentarzu napisał że jest biblioteka do łączenia się od razu z bazą danych. Zadziałało, jednak z czasem się dowiedziałem że to niezbyt rozsądne wrzucać od razu wszystko do bazy bez żadnej furtki, serwer też musiał mieć otwartą bazę danych na ip z mojego zakresu.
Zacząłem działać i pojednałem się na nowo z HTTPclientem, parę godzin szukania(i kopiowania hehe) kodu i poszło, udało się napisać coś takiego po stronie arduino, oraz coś takiego po stronie serwera.
Mamy zwycięstwo, po połączeniu tych dwóch kodów razem monitor portu szeregowego zwracał kod HTTP 200, czyli super. W bazie danych także się pojawiały informacje na temat czujników.
Wysyłanie danych o temperaturze i wilgotności mamy, te o statusie załączenia światła, wentylacji czy ogrzewania również będą proste do wykonania.

Jak coś wysyłasz, wypadałoby też coś odbierać - GET HTTP.
Znalazłem kolejny poradnik jak to uczynić i zacząłem działać, z tym poszło szybciej bo już się coraz bardziej komfortowo zacząłem czuć w PHP i te znaczki zaczęły coś sensownego znaczyć. Kod jest dosyć prosty, odpytuje po nazwie urządzenia o nastawy ze strony i zwraca info do seriala - tak tylko żeby cel odhaczyć. Na te chwilę więcej nie potrzebuję, zwłaszcza że stanąłem w rozwoju po raz kolejny.

Znalazłem także rozwiązanie z pobieraniem daty, musiałem ściągnąć nową bibliotekę i usunąć z niej parę znaków, ale w końcu zaczęło działać, mam aktualną datę i czas z serwera GUS.

Mam teraz 4 bazy danych, po dwie na nastawy temperatury i przełączników, oraz analogicznie po dwie na ich status. Arduino łączy się z nimi co 30 sekund, chyba idealny interwał. aktualnie w bazie mam 16 tys rekordów które zajmują 1.2MB więc na parę lat starczy ( ͡° ͜ʖ ͡°)
Tylko po co same bazy danych skoro mamy na nich tylko zapisywać dane i z nich nie korzystać? Bez sensu. Potrzebna będzie strona, ogólny zarys jak chce żeby to wyglądało już mam, ale pomysłu na wykonanie brak. Muszę się nauczyć javascriptu, jquery, php i innych dziwnych skrótów żeby zaczęło to wszystko działać. Próbuję coś robić ale idzie to topornie i w najbliższym czasie nie zapowiada sie na poprawę.

Dodatkowo uporządkowałem kod, ogarnąłem że rzeczy niezmienne można sobie wrzucić do osobnego pliku i tak też zrobiłem z ustawieniami wyświetlacza, oraz ogólnymi ustawieniami programu. Kod upiększyłem, dodałem komentarze i teraz jest tak piękny że chętnie bym go przytulił.
Z nudów też zrobiłem sobie zegarek bo czemu nie ( ͡° ͜ʖ ͡°) Zdjęcie

W ramach odskoczni zapewne zacznę składać budę terrarium, ale to na przyszłe wpisy temat.

W filmie na dole macie jeszcze dodatkową małą funkcję - jak nie działa wifi lub któryś z odczytów przekracza normy, na wyświetlaczu zmienia się kolor ostrzeżenia.

Dzięki za czytanie, jeśli ktoś dotrwał bo pisarz ze mnie żaden. Zapraszam do komentowania, spokojnej niedzieli.

TODO

ButtHurtAlert - WPIS 3 - Długi czas oczekiwania

#terruino - tag do blokowania/obse...

źródło: comment_mN1iJA5l3rpzQUSSto8FJrnFZGnDpq2W.jpg

Pobierz
  • 17
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@ButtHurtAlert: Mirek nie wymiękaj. Zajebiście brzmi to co robisz, o rzeczy związane z PHP, jsem czy jQuery googluje się niesamowicie łatwo bo są to bardzo popularne rzeczy. A jak się nie uda znaleźć do wal na tag programowanie, przy takim fajnym projekcie na pewno znajdzie się ktoś, kto wesprze.

Trzymam kciuki ( ͡° ͜ʖ ͡°)
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@Sierpik21: zabezpieczeniami będę się przejmował jak ogarnę podstawy. Tam nie będzie nic ważnego na serwerze trzymane, jak ktoś chce to niech się włamuje zobaczy jaka mam temperaturę w lodówce xD
  • Odpowiedz
@ButtHurtAlert: czyli dane w bazie można skasować? chodzi o parametry przekazane bezpośrednio do zapytania sql, każdy tak mówi na początku, a potem są wycieki bo to samo jest robione na "produkcji", no nic powodzenia.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@Sierpik21 ustawiony jest ściśle IP z mojego zakresu + klucz API jako ten z prawem dostępu, wartości jakie mogą zostać wstrzyknięte to liczby z 2 cyframi po przecinku +11 znak char jako nazwa czujnika. Nie wiem jak jeszcze można to ulepszyć bo ja nie zajmuje się tym zawodowo tylko się uczę. Tylko admin ma opcje drop table, użytkownik który jest w arduino ma jedynie opcje select i insert.
  • Odpowiedz