Skocz do zawartości
Mrpatryk

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

Pomocna odpowiedź

Witam, mam pytanie odnośnie pobierania danych z mysql oraz zapis ich na karcie SD (czyli aktualizacji). Jest coś takiego możliwe? 

Udostępnij ten post


Link to post
Share on other sites

Oczywiście tak, Jak idzie kurs Arduino? No i po dzisiejszym pytaniu dopisz sobie jeszcze PHP, linki już dostałeś parę dni temu. 

Udostępnij ten post


Link to post
Share on other sites
Gość es2
(edytowany)
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

Udostępnij ten post


Link to post
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.)

Udostępnij ten post


Link to post
Share on other sites
Gość es2
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.

 

Udostępnij ten post


Link to post
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?

Udostępnij ten post


Link to post
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ć 😉

Udostępnij ten post


Link to post
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?

Udostępnij ten post


Link to post
Share on other sites
Gość es2
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.

 

Udostępnij ten post


Link to post
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ć.

Udostępnij ten post


Link to post
Share on other sites
Gość es2

Fajna dyskusja się rozwinęła, szkoda, ze autor nie bierze w niej udziału :-(

Udostępnij ten post


Link to post
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?

Udostępnij ten post


Link to post
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ć.

Udostępnij ten post


Link to post
Share on other sites
Gość es2
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.

Udostępnij ten post


Link to post
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. 

Udostępnij ten post


Link to post
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!

Gość
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...