Skocz do zawartości

Arduino, Wifi, MySQL, PHP - co wybrać?


japolak

Pomocna odpowiedź

Witam
Jestem laikem w kwestii elektroniki.. ale jakiś czas temu zrodził się pewien pomysł w głowie i chciałem sobie go w końcu zrealizować.


Co chciałbym uzyskać?:
Chce na jednej ze swoich stron opartej na PHP, MySQL zapisywać dane dotyczące np. ilości, godziny itp wciśnięcia jakiegoś przycisku. Chciałbym aby dane były wysyłane za pośrednictwem Wifi  na serwer z moją bazą MySQL, zaraz po wciśnięciu tego przycisku.

Moje pytanie brzmi: Jaki model arduino czy ESP kupić aby taki laik z elektroniki poradził sobie z tym problemem.

To co mam na tą chwilę w domu to paczkę różnych elektronicznych bajerów wchodzący w skład "Kursu podstaw elektroniki - Forbota" oraz drugą skrzynkę nazwaną "Botland - starter Kit", Arduino Uno R3

Zależy mi na tanim, prostym i stabilnym rozwiązaniu. Co kupić aby najprościej było z konfiguracją,.. wg Waszego doświadczenia.. A później będę już sobie radził 😛
 

Link do komentarza
Share on other sites

Witam na forum 🙂

13 godzin temu, japolak napisał:

Chce na jednej ze swoich stron opartej na PHP, MySQL zapisywać dane dotyczące np. ilości, godziny itp wciśnięcia jakiegoś przycisku. Chciałbym aby dane były wysyłane za pośrednictwem Wifi  na serwer z moją bazą MySQL, zaraz po wciśnięciu tego przycisku.

Możesz sprecyzować trochę o jaką sytuację chodzi? Chcesz: zliczać kliknięcia w przycisk umieszczony na stronie WWW czy chcesz zliczać kliknięcia w fizycznych przycisk podłączony do ESP i wyświetlać te informacje na stronie?

Link do komentarza
Share on other sites

6 godzin temu, Treker napisał:

Witam na forum 🙂

Możesz sprecyzować trochę o jaką sytuację chodzi? Chcesz: zliczać kliknięcia w przycisk umieszczony na stronie WWW czy chcesz zliczać kliknięcia w fizycznych przycisk podłączony do ESP i wyświetlać te informacje na stronie?

Nie no oczywiście, że fizycznego przycisku 🙂  
to co napisałem to jest bardzo uogólnione.  Teraz nieco bardziej szczegółowo: Tak naprawdę chce sobie zrobić jakąś skrzyneczkę z wyświetlaczem myślałem podłaczyć arduino i wyświetlacz 2 rzędowy (z mojego zestawu forbota),  skrzynka by miała możliwość wystartowania stopera za pomocą fizycznego przycisku, jak również, reset, pauze, okrążenie. .a wszystkie dane (wciśnięcia fizycznych przycisków) by się zapisywały w mojej bazie mysql.

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

3 godziny temu, deshipu napisał:

Kiedy piszesz "naciśnięcia by się zapisywały", jakie dokładnie dane masz na myśli i z jaką dokładnością?

dokładny czas wciśnięcia jakiegokolwiek z przycisku - oraz informacja który przycisk był wciśnięty. z dokładnością do 1 sek. 

Link do komentarza
Share on other sites

Oczywiście skrzyneczka stoi tam, gdzie masz zawsze zasięg WiFi i nie dopuszczasz sytuacji, w której Twój AP dostał zwisu, elektrownia wyłączyła prąd albo żelazko zrobiło zwarcie, a Ty właśnie wciskasz przycisk? Ani takiej, że gdzieś po drodze między Twoją skrzyneczką a Twoim serwerem któryś z routerów dostał padaczki i masz chwilową przerwę w połączeniu? Bo to właśnie oznacza "zaraz po wciśnięciu".

 

Link do komentarza
Share on other sites

3 godziny temu, ethanak napisał:

Oczywiście skrzyneczka stoi tam, gdzie masz zawsze zasięg WiFi i nie dopuszczasz sytuacji, w której Twój AP dostał zwisu, elektrownia wyłączyła prąd albo żelazko zrobiło zwarcie, a Ty właśnie wciskasz przycisk? Ani takiej, że gdzieś po drodze między Twoją skrzyneczką a Twoim serwerem któryś z routerów dostał padaczki i masz chwilową przerwę w połączeniu? Bo to właśnie oznacza "zaraz po wciśnięciu".

Jeśli projekt jest czysto hobbystyczny/edukacyjny, a tak wynika z tego tematu, to chyba możemy śmiało przyjąć odpowiednio luźną definicję "zaraz po wciśnięciu". Wiadomo, że inżynier powinien określać wymagania projektu bardzo precyzyjnie, ale czasami z kontekstu możemy wywnioskować, że to bardziej potoczny opis założeń projektu. Jak dane trafią na serwer sekundę później to raczej nic wielkiego się nie stanie (grunt, aby zapisany pomiar był precyzyjny) 😉

17 godzin temu, japolak napisał:

to co napisałem to jest bardzo uogólnione.  Teraz nieco bardziej szczegółowo: Tak naprawdę chce sobie zrobić jakąś skrzyneczkę z wyświetlaczem myślałem podłaczyć arduino i wyświetlacz 2 rzędowy (z mojego zestawu forbota),  skrzynka by miała możliwość wystartowania stopera za pomocą fizycznego przycisku, jak również, reset, pauze, okrążenie. .a wszystkie dane (wciśnięcia fizycznych przycisków) by się zapisywały w mojej bazie mysql.

@japolak w takim razie najłatwiej (moim zdaniem) byłoby rozbić problem na 2 mniejsze. Po pierwsze musisz mieć skrypt na serwerze, który będzie zapisywał dane do bazy. Możesz mieć przykładowo skrypt w PHP, który będzie zapisywał dane przekazane przez GET. Będziesz wtedy np. wywoływał skrypt "stoper.php?okrazenie=XXXXXX", a informacje przekazane do skryptu będą zapisywane do bazy (po wcześniejszej filtracji danych wejściowych). Druga część to program na ESP, który będzie pełni rolę stopera i w odpowiednich momentach będzie wywoływał  url skryptu wraz z danymi, które mają być zapisane (samo wywołanie skryptu będzie stosunkowo proste).

Nawiązując jednak do wiadomości @ethanak - zastanów się tylko jakiej precyzji faktycznie oczekujesz i jakie informacje chcesz dokładnie zapisywać, bo od tego wiele będzie zależało 🙂

Link do komentarza
Share on other sites

tu jest jeszcze jeden haczyk.

Transmisja z ESP na serwer może się nie udać, czy też naciśnięcie klawisza trafi akurat w moment, kiedy ESP zajęty jest swoimi ważnymi wifisiastymi sprawami i albo zgubi wciśnięcie, albo pokiełbasi czas.

Bazując na elementach z zestawu - dodałbym tam jeden moduł ESP8266 (nawet 01). Niech Arduino zajmuje się klawiszami i pomiarami czasów (w przerwaniu oczywiście), a ESP pyta o dane Arduino i bez pośpiechu wysyła je na serwer. Nie traci się precyzji pomiaru, nie ma problemu ze zdychającą siecią, a przy okazji program na Arduino będzie dużo prostszy.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Wiesz, esp8266 też ma przerwania i wbrew pozorom, wykonują się nawet jak akurat coś wysyła albo odbiera przez WiFi, więc to Arduino tam trochę niepotrzebne, szczególnie jak dokładność ma być do 1 sekundy. Przy takich założeniach, to w zasadzie nawet przejdzie na ESP tylko wywoływanie URL-a (i sprawdzenie odpowiedzi czy doszło, z ewentualnymi powtórzeniami), a czas można tak naprawdę brać z serwera, bo aż takich opóźnień mieć nie będziesz.

Link do komentarza
Share on other sites

wiesz, esp8266 ma przerwania, i czasem są blokowane (szczególnie przy operacjach na wifi). A zablokować się mogą na więcej niż sekundę (efekt: połamane nogi w robocie).

Branie czasu z serwera www to najgorszy z możliwych pomysłów - skąd wiesz jak zegar na serwerze jest ustawiony? Od tego są serwery czasu, a implementacja protokołu ntp jest nawet w którymś przykładzie.

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

(edytowany)

oki czyli podsumowując z tym co mam najlepiej narazie wystartować z 
esp 8266 -01 https://kamami.pl/moduly-wifi/235041-esp-01-modul-wifi-z-esp8266-i-antena.html

oraz 
do tego jakis konwerter poziomów logicznych:  z 5v na 3v https://botland.com.pl/pl/konwertery-napiec/14271-konwerter-poziomow-logicznych-33v5v-uart-iduino-st1167.html?search_query=konwerter+poziomow&results=38


dziękuje za pomoc.. 
jak tylko płytka mi przyjdzie to zacznę kombinować z połączeniem wiec pewnie się jeszcze odezwę.. 

 

Edytowano przez japolak
brak esp 8266-01 na bootlandzie (zmiana linku)
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.