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

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.