Skocz do zawartości

Jak odebrac dane z mysql i aktualizować je na karcie SD?


Mrpatryk

Pomocna odpowiedź

19 godzin temu, kaczakat napisał:

No i po dzisiejszym pytaniu dopisz sobie jeszcze PHP

Po co PHP? Do samego odczytu bazy przez Arduino, nie potrzebna znajomość PHP. Co innego w Paspberry i podobnych na Linux, tam łatwiej robić to skryptami PHP, Bash czy Pythonem.  Nie trzeba pisać w C/C++. Osobiście, na Raspberry,  najczęściej  używam PHP, z którego wywołuję Bash (np operacje na GPIO czy I2C, SPI itp).

Chyba, że chodzi o wizualizację tej bazy na stronie WWW, wtedy bez PHP ani rusz. Jak PHP, to także HTML a jak HTML to pewnie i JavaScript się przyda.

Edytowano przez es2
Link do komentarza
Share on other sites

1 godzinę temu, es2 napisał:

Do samego odczytu bazy przez Arduino, nie potrzebna znajomość PHP.

A możesz napisać jak byś to zrobił bez żadnego programu po stronie serwera? (Oczywiście wiem, że nie musi być to PHP, program można napisać w dowolnym języku, jednak z jakiegoś powodu wydaje mi się, że nie o to tobie tutaj chodzi.)

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

5 minut temu, deshipu napisał:

A możesz napisać jak byś to zrobił bez żadnego programu po stronie serwera?

Nie brałem pod uwagę tego, że obsługę bazy na serwerze trzeba pisać. Uznałem, że baza istnieje i działa a chodzi tylko o pobranie informacji z niej tak jak np ze strony z kursami walut czy aktualnymi warunkami atmosferycznymi.

 

Link do komentarza
Share on other sites

2 godziny temu, es2 napisał:

Nie brałem pod uwagę tego, że obsługę bazy na serwerze trzeba pisać. Uznałem, że baza istnieje i działa a chodzi tylko o pobranie informacji z niej tak jak np ze strony z kursami walut czy aktualnymi warunkami atmosferycznymi.

Ja nie mówię, że masz pisać bazę danych. Załóżmy, że bierzesz tego nieszczęsnego MySQL-a i instalujesz gotowego na swoim serwerze. Zakładasz w nim swoją bazę, importujesz do niej dane. I co dalej?

Link do komentarza
Share on other sites

Hm... tu akurat kolega es2 ma rację - do komunikacji z bazą nie jest potrzebny żaden dodatkowy soft na serwerze.

Inna sprawa, że konektory baz danych są dość zasobożerne, a bazy danych na serwerach hostingowych nie są otwarte na świat... czyli ten nieszczęsny Produkt Horych Programistów może się przydać 😉

Link do komentarza
Share on other sites

6 godzin temu, ethanak napisał:

Hm... tu akurat kolega es2 ma rację - do komunikacji z bazą nie jest potrzebny żaden dodatkowy soft na serwerze.

Czyli co, chcesz otwierać porty bazy danych na świat i gadać do niej protokołem mysql-owym bezpośrednio z Arduino, wysyłając hasło plaintextem za każdym razem?

Link do komentarza
Share on other sites

12 minut temu, deshipu napisał:

Czyli co, chcesz otwierać porty bazy danych na świat i gadać do niej protokołem mysql-owym bezpośrednio z Arduino, wysyłając hasło plaintextem za każdym razem?

Niby dlaczego nie? Niby dlaczego "na świat"? baza może być w sieci lokalnej.

 

Link do komentarza
Share on other sites

@deshipu: po coś istnieją protokoły sieciowe w bazach danych (jak mniemam po to, aby z nich korzystać). Tak jak wspomniał @es2 - baza może być w sieci lokalnej (przy czym VPN zaliczam tu do sieci lokalnych); równie dobrze może być odfiltrowany host na firewallu, może być konkretny użytkownik przypisany do hosta... poza tym nie wiem jak MySQL (nie używam), ale konektor PostgreSQL obsługuje szyfrowane hasła.

Widzisz - z tym otwieraniem portów na świat jest tak samo jak z delay() w Arduino i goto w C. Nie są z gruntu złe (bo gdyby było toby ich nie było) - tylko trzeba umieć z nich korzystać.

Link do komentarza
Share on other sites

7 godzin temu, es2 napisał:

Niby dlaczego nie? Niby dlaczego "na świat"? baza może być w sieci lokalnej.

 

Choćby dlatego, że przetwarzanie długich stringów przy ilości pamięci jaką dysponuje Arduino jest wyzwaniem, a ten konkretny protokół nie jest zaprojektowany z myślą o małych urządzeniach. Także dlatego, że dajesz temu urządzeniu (i wszystkiemu innemu w twojej "sieci lokalnej", wliczając w to zhackowane "chytre" żarówki) pełny dostęp do zapisu/odczytu/kasowania wszystkich danych w bazie, a prawdopodobnie chciałbyś tylko dopisywać nowe dane. No i wreszcie dlatego, że napisanie obsługi takiego protokołu nie jest jednak takie proste, szczególnie w tym nieszczęsnym Arduinowym C++ — na pewno łatwiej napisać jakiś prosty adapter w dowolnym języku wysokiego poziomu, używając gotowych bibliotek. Dajesz rady które niby są "poprawne", ale w praktyce zupełnie bezużyteczne i to nie tylko w tym wątku, zupełnie jakbyś nie chciał pomóc.

@ethanak i naprawdę, na serio myślisz, że wytłumaczenie jak to wszystko poprawnie skonfigurować (firewalle, VPN-y, szyfrowanie) i sparsować po stronie Arduino będzie łatwiejsze, niż napisanie kilku linijek w PHP czy w Pythonie żeby zrobić do tej bazy jakieś rozsądniejsze API?

Link do komentarza
Share on other sites

@deshipu Nie, zresztą wspomniałem o tym w pierwszym moim poście w tym wątku. Tym niemniej warto wspomnieć o możliwości bezpośredniej komunikacji - o ile małe Arduino może sobie nie do końca dawać rady z czymś takim, to już Mega nie będzie miała większych problemów, a ESP łyknie to jak żaba muchę.

Poza tym te stringi wcale nie są takie długie. Kod konektora MySQL czytałem co prawda dość pobieżnie, ale dla PostgreSQL-a pisałem go od początku i wiem, że mały Uno może spokojnie się w to bawić.

Link do komentarza
Share on other sites

1 godzinę temu, deshipu napisał:

Choćby dlatego, że przetwarzanie długich stringów przy ilości pamięci jaką dysponuje Arduino jest wyzwaniem

Nie wiadomo o jakie Arduino chodzi? Wiedząc jaką wielość ma ramka ETH, bez 4KB RAM nie podchodzę. Nie to, że się nie da ale jak piszesz "jest wyzwaniem".

Autor wątku milczy i nie wiadomo co mu doradzić. Pisałem o Raspberry, może akurat w tym projekcie byłoby to najlepsze rozwiązanie? Może wystarczy Mega2560, ale jak urządzenie ma robić jeszcze jakieś dodatkowe zadania i potrzebuje dużych buforów w RAM,to albo Mega1284 albo ARM z min 20kB RAM. Porównując cenę Mega1284 a choćby STM32F103C8 wybór jest prosty.

Dopóki autor nie napisze co dokładnie ma robić urządzenie, to nasze dyskusje są bezcelowe.

Link do komentarza
Share on other sites

Posiadan mege2560 i uno. Chce postawic na ktorejs z tych plytek elektroniczny zamkiem z czujnikiem zblizeniowym rc522 . Za zadanie arduino mialo by odczytac i porownac wartosc "karty" magnetycznej tzn jej ID z takim ID jakie jest zapisane w bazie danych . Jesli by sie zgadzalo uruchamialo by zamek jesli nie to nie . Ewentualnie zeby wraz z ID odczytalo np: imie i nazwisko by pozniej po i2c wyswietlic je na lcd. 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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