Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [skrypt]Sterowanie diodą LED w PHP
xxdrago
post
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Witam, dzisiaj chciałem pokazać , że php nie służy tylko do tworzenia stron.
Lubie się bawić więc z małą pomocą znajomego stworzyłem sobie skrypt w php którym steruję diodą LED.
Całość jest oparta o CDC-IO (LINK).

Funkcje:
  • Zapal/Zgaś
  • Miganie diody LED (Wolne)
  • Miganie diody LED (Szybkie)
  • Miganie diody LED (Bardzo Szybkie)


Chciałem też dodać , że ta jedna dioda to jest przykład można podpiąć pod to 10 diod i nimi sterować, można też np. gasić światło w pokoju będąc 500km od domu.
Czego tylko człowiek zapragnie smile.gif

Udostępniam skrypt nie jest on napisany jakoś optymalnie, jest tylko przykładem jak to wygląda.
(Mogłem w sumie napisać ładnie funkcje biggrin.gif)

KOD:
  1. <?php
  2. ?>
  3. <form name="post" action="index.php" method="POST">
  4. <?php
  5. include("php_serial.class.php");
  6. $serial = new phpSerial();
  7. $serial->deviceSet("COM8:");
  8. $serial->confBaudRate(115200);
  9. $serial->confParity("none");
  10. $serial->confCharacterLength(8);
  11. $serial->confStopBits(1);
  12. $serial->confFlowControl("none");
  13.  
  14. if ($_SESSION['dane'] == 'zapalona') {
  15. echo '
  16. <input type="submit" name="opcja_1" value="Zgas"><br>';
  17. }
  18. if ($_SESSION['dane'] == '') {
  19. echo '
  20. <input type="submit" name="opcja_2" value="Zapal"><br>
  21. <form name="post" action="index.php" method="POST">';
  22. }
  23.  
  24. if ($_POST['opcja_1']) {
  25. $serial->deviceOpen();
  26. $serial->sendMessage("ff ddrb =\r");
  27. usleep(2000);
  28. $serial->sendMessage("00 portb =\r");
  29. $_SESSION['dane'] = '';
  30. header('Location: index.php');
  31. }
  32. if ($_POST['opcja_2']) {
  33. $serial->deviceOpen();
  34. $serial->sendMessage("ff ddrb =\r");
  35. usleep(2000);
  36. $serial->sendMessage("01 portb =\r");
  37. $_SESSION['dane'] = 'zapalona';
  38. header('Location: index.php');
  39. }
  40. if ($_POST['opcja_3']) {
  41. $serial->deviceOpen();
  42. $serial->sendMessage("ff ddrb =\r");
  43. usleep(2000);
  44. for ($i = 1; $i <= 5; $i++) {
  45. $serial->sendMessage("01 portb =\r");
  46. usleep(1000000);
  47. $serial->sendMessage("00 portb =\r");
  48. usleep(1000000);
  49. }
  50. header('Location: index.php');
  51. $serial->deviceClose();
  52. }
  53. if ($_POST['opcja_4']) {
  54. for ($i = 1; $i <= 5; $i++) {
  55. $serial->deviceOpen();
  56. $serial->sendMessage("ff ddrb =\r");
  57. usleep(2000);
  58. $serial->sendMessage("01 portb =\r");
  59. usleep(500000);
  60. $serial->sendMessage("00 portb =\r");
  61. usleep(500000);
  62. }
  63. header('Location: index.php');
  64. $serial->deviceClose();
  65. }
  66. if ($_POST['opcja_5']) {
  67. $serial->deviceOpen();
  68. $serial->sendMessage("ff ddrb =\r");
  69. usleep(2000);
  70. for ($i = 1; $i <= 30; $i++) {
  71. $serial->sendMessage("01 portb =\r");
  72. usleep(100000);
  73. $serial->sendMessage("00 portb =\r");
  74. usleep(100000);
  75. }
  76. header('Location: index.php');
  77. $serial->deviceClose();
  78. }
  79.  
  80. ?>
  81. <input type="submit" name="opcja_3" value="Miganie diody LED (Wolne)"><br>
  82. <input type="submit" name="opcja_4" value="Miganie diody LED (Szybkie)"><br>
  83. <input type="submit" name="opcja_5" value="Miganie diody LED (Bardzo Szybkie)"><br>
  84. </form>


żeby całość chodziło wymagana jest klasa: PHP SERIAL

A tutaj przykładowy filmik jak to wygląda:
http://youtu.be/X8CEi_AFMlo

Wiem, że jakość filmu jest do "dupy" w najbliższym czasie pojawi się ładny filmik w HD smile.gif

Ten post edytował xxdrago 9.02.2012, 19:00:35


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
3 Stron V   1 2 3 >  
Start new topic
Odpowiedzi (1 - 19)
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


No no gratuluje pomysłu, fajnie to wygląda smile.gif

To teraz możesz sobie zrobić miganie, gdy nowy post na forum ktoś napisze biggrin.gif

Co do filmiku fajnie jakbyś zrobił dwa ujęcia, jedno gdy klikasz drugie, które jest efektem tego co zrobiłeś czyli widok samej diody.


--------------------
Go to the top of the page
+Quote Post
xxdrago
post
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


hehe, miało być tak jak ty mówisz ale miałem małe problemy, a chciałem się pochwalić znajomym.

Co do tego mrugania jak nowy post ciekawy pomysł tylko nie mam dostępu do bazy/plików biggrin.gif



--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
TheSnake
post
Post #4





Grupa: Zarejestrowani
Postów: 115
Pomógł: 10
Dołączył: 5.06.2009

Ostrzeżenie: (0%)
-----


Przecież to inny program tym steruje, a Ty z PHP tylko go odpalasz...

P.S. Nikt nie mówił, że PHP jest tylko do tworzenia stron, ale po co skoro są lepsze narzędzia do takich rzeczy.
Go to the top of the page
+Quote Post
xxdrago
post
Post #5





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Ja z poziomu php wysyłam komendy do Atmegi wink.gif , wiem że są lepsze ale po co jak umiem PHP? na sam początek w sam raz smile.gif


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
#luq
post
Post #6





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Fajny pomysł, tylko dużo łatwiej byłoby sterować z wiersza poleceń.
Chwila roboty to będzie.

Co do samego kodu no nie poraża, ale tak jak piszę - pomysł fajny.


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
Damonsson
post
Post #7





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Noo muszę przyznać, że świetny pomysł, może jakiś patent na to ;D
Go to the top of the page
+Quote Post
toaspzoo
post
Post #8





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Co do nowych postów to można przecież porównywać ze starą wczytaną stronką itp.

Przecież posty są oznaczone Post #7 itp.


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
mls
post
Post #9





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Od siebie dodam, że do obsługi komunikacji z portami znacznie wygodniejsza w użyciu jest biblioteka DIO. Mam napisany niejeden już projekt w którym PHP komunikuje się z jakimś urządzeniem (najczęściej Arduino lub modem) i ta biblioteka działa najszybciej i najstabilniej.
Niestety, przyjęło się, że PHP to język pomagający tworzyć serwisy internetowe. A tak wcale nie jest - jest to jak najbardziej normalny język programowania, w którym spokojnie można pisać np. wielowątkowe serwery komunikujące się z określonym sprzętem lub nawet całkiem łatwo stworzyć serwer SMS. Pomysłów jest ogrom, trzeba tylko przestać myśleć o PHP jako o "Personal Home Page"... wink.gif


--------------------
Go to the top of the page
+Quote Post
!*!
post
Post #10





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(mls @ 11.02.2012, 14:20:17 ) *
nawet całkiem łatwo stworzyć serwer SMS.


Ciekawe, napisz coś więcej.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
cepa
post
Post #11





Grupa: Zarejestrowani
Postów: 125
Pomógł: 7
Dołączył: 27.01.2010

Ostrzeżenie: (0%)
-----


Cytat(mls @ 11.02.2012, 15:20:17 ) *
Niestety, przyjęło się, że PHP to język pomagający tworzyć serwisy internetowe. A tak wcale nie jest - jest to jak najbardziej normalny język programowania, w którym spokojnie można pisać np. wielowątkowe serwery komunikujące się z określonym sprzętem lub nawet całkiem łatwo stworzyć serwer SMS. Pomysłów jest ogrom, trzeba tylko przestać myśleć o PHP jako o "Personal Home Page"... wink.gif


a widziales w php jakiekolwiek wsparcie dla watkow, mutexow itp nie wspominajac o braku zarzadzania zasobami?
php to jezyk do tworzenia aplikacji internetowych, nawet nie do wszystkich i czas najwyzszy sie z tym pogodzic, do pewnych zastosowan sie nadaje do innych nie

co do pomyslu sterowania ledem... jako ciekawostka spoko,
ale nie traktowal bym tego w kategorii "o jaki zajebisty jest php bo mozna diode zapalic na comie" bo to mozna bylo zrobic jednym poleceniem w C 20 lat temu tongue.gif


Cytat(!*! @ 11.02.2012, 21:52:04 ) *
Ciekawe, napisz coś więcej.


chociazby http://gnokii.org/

problemem nie jest to czy sie da / jak wyslac sms, tylko jak wyslac/odebrac DUZO sms'ow (skala) tongue.gif


--------------------
Go to the top of the page
+Quote Post
mls
post
Post #12





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(!*! @ 11.02.2012, 20:52:04 ) *
Ciekawe, napisz coś więcej.


Daemon w PHP komunikujący się bezpośrednio z modemem (np. na porcie szeregowym) zajmujący się po pierwsze pobieraniem danych z kolejki (baza danych), konwersją na PDU i wysłaniem tego do modemu a po drugie - odczytujący (co określony interwał czasowy lub asynchronicznie, w zależności od modemu) nowe odebrane wiadomości i wrzucający je do bazy.
Do tego klient WWW do zarządzania kolejką i do odczytu wiadomości.


--------------------
Go to the top of the page
+Quote Post
xxdrago
post
Post #13





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Ja dałem, przykład z diodą znajomy zrobił sobie coś takiego:
http://www.youtube.com/watch?v=4JQKcl2n9-w...eature=youtu.be

PS: za te posty sie biorę.

Ten post edytował xxdrago 15.02.2012, 20:12:33


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
Speedy
post
Post #14





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Wielkiej filozofii nie ma. Wysyłasz komendę na port szeregowy, do którego jest podpięty jakiś mikrokontroler z diodą i tyle.
Jeśli jest to jakiśtam projekt na początek, to ok, ale nie zachwycałbym się szczególnie czymś takim.


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
pisii35
post
Post #15





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 16.01.2012

Ostrzeżenie: (0%)
-----


Na mnie też jakoś to wielkiego wrażenia nie zrobiło...


--------------------
Pisanie prac,Prace magisterskie oraz Korepetycje
Go to the top of the page
+Quote Post
corran_horn
post
Post #16





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.12.2006

Ostrzeżenie: (0%)
-----


bardzo ciekawy pomysłsmile.gif
Go to the top of the page
+Quote Post
Spawnm
post
Post #17





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat(cepa @ 14.02.2012, 23:46:02 ) *
a widziales w php jakiekolwiek wsparcie dla watkow, mutexow itp

Z tych itp. można by dać phpowy pcntl, da się na nim stworzyć klasy działające podobnie do wielowątkowości.

A pomysł z tematu fajny, bardziej ciekawostka, jednak fajne biggrin.gif
Go to the top of the page
+Quote Post
Fifi209
post
Post #18





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(xxdrago @ 15.02.2012, 20:04:10 ) *
Ja dałem, przykład z diodą znajomy zrobił sobie coś takiego:
http://www.youtube.com/watch?v=4JQKcl2n9-w...eature=youtu.be

Podziwiam! Bardzo fajne, oryginalny pomysł smile.gif


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
piotrooo89
post
Post #19


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




u nas w firmie sterujemy wiatrakiem za pomocą php i mamy zawsze świeże powietrze biggrin.gif


--------------------
Go to the top of the page
+Quote Post
xxdrago
post
Post #20





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Cytat(piotrooo89 @ 21.02.2012, 15:09:52 ) *
u nas w firmie sterujemy wiatrakiem za pomocą php i mamy zawsze świeże powietrze biggrin.gif

I potem wam wiedzę wywiewa, wielu pisze , że wybrałem zły język ja się z tym nie zgadzam, można też to zrobić w c++? Ale po co? Skoro umiem php.Nie wiem ale kocham ten język i się nim fascynuje zakochany.gif zakochany.gif

Pozdrawiam


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:05