Trimiterea de date cu Arduino pe un web-server get-cerere

Buna ziua dragi utilizatori ai site-ului „lipit“, astăzi aș dori să împărtășească experiența sa în proiectarea și dezvoltarea de dispozitive care rulează Arduino, a cărui sarcină principală este de a colecta date de la senzori și le trimite la un server web cu drepturi depline cu PHP / MySQL.

Calculând creierul a dispozitivului este platforma Arduino UNO, comunicarea cu rețeaua folosind Ethernet Shield, în plus, am instalat LCD Taste numerice Shield pentru a afișa informații despre starea de diverse dispozitive și comenzi, și toți senzorii instalați și relee disponibile.

O listă completă a componentelor utilizate:

  • Arduino UNO - creierul sistemului;
  • Ethernet Shield - conectarea la rețea;
  • LCD Taste numerice Shield - un ecran pentru afișarea informațiilor;
  • DHT11 - temperatură și senzor de umiditate;
  • Senzor de mișcare;
  • Modulul releului;
  • Telecomanda.

Nu aveți neapărat o listă completă de accesorii, codul este scris în așa fel încât să poată fi ușor rescrise pentru a se potrivi nevoilor dumneavoastră.

Trimiterea de date cu Arduino pe un web-server get-cerere

Înțelegerea modului în care imuabil adevăr, că minunile nu se întâmplă în lumea tehnologiei informației, iar în cazul în care dispozitivul nu funcționează modul în care te gândești la asta, înseamnă că ai făcut ceva greșit.

Deci, să ne uităm mai întâi la modul de a face pentru a trimite o cerere la server web. Dacă crezi că e prea greu, atunci te înșeli. Omul este astfel constituite, care nu este pur și simplu capabil de a crea ceva mai greu, în ceea ce el însuși nu a putut înțelege.

Avem un dispozitiv bazat pe Arduino cu care doriți să trimiteți o cerere la un server web. Inițiatorul schimbului de date este, de obicei, un browser, în acest caz - Arduino. Web-server pentru oricine, și nu pur și simplu nu va trimite nimic pentru că ceva ar trebui să fie trimis către client, clientul l-au întrebat despre asta. Cea mai simplă cerere HTTP ar putea arata astfel:

În acest caz, cererea la server este după cum urmează:

Schița programului este după cum urmează:

Așa cum am menționat mai sus, într-un dispozitiv am folosit, de asemenea, alți senzori, în legătură cu care o schiță a dispozitivului meu este după cum urmează:

Dispozitivul nostru bazat pe Arduino va trimite la server o varietate de date, la intervale diferite, este făcută într-o bază de date MySQL nu poluează prea multe informații de date. De exemplu, să stabilească faptul că datele privind starea senzorilor (senzori de mișcare, relee, etc.) vor fi trimise la intervale de 2 minute. iar datele privind temperatura și umiditatea la fiecare 4 ore.

Dau în chirie un server de web cu drepturi depline, noi, desigur, nu va, pentru că este scump, și este pur și simplu nerezonabil, va gestiona servicii de găzduire. Hosting - acest lucru nu este un computer și nu un program, și serviciul de a furniza webmasterul-o pe serverele lor în site-ul. Cerințe Hosting sunt minime: php nu este mai mic de 5.3, MySQL Baze de date.

Codul de server-side atașat la acest articol. Pentru comoditate, este împărțit în mai multe fișiere:

  1. /system/core.php - «nucleu» de serverul nostru, în cazul în care datele sunt scrise pentru a se conecta la baza de date.
  2. /system/functions.php - aici conține diverse funcții definite de utilizator, care vor fi necesare atunci când se lucrează.
  3. / Style / - stiluri CSS.
  4. .htaccess - Conține setările pentru server. Setarea prestabilită fusul orar 3 (București).
  5. _sever.sql - groapa de gunoi a bazei de date. Acest fișier trebuie să fie importate în baza de date.
  6. Index.php - fișierul nostru principal (pagina), care va afișa informații despre starea senzorului.
  7. Add.php - acest fișier va primi și procesa date de la Arduino.

Pentru numai dispozitivul nostru poate trimite date către server, am GET-cerere va transmite un cod special (cheie) ca și în cazul în care pentru a confirma faptul că datele transferă efectiv Arduino.

În articol, eu nu am atins problema cum să se ocupe de răspuns de la server (dacă vrem să controleze aparatul prin Internet), am făcut acest lucru pentru că partea noastră serverul nu este protejat, și anume Oricine poate vizita site-ul și pentru a vizualiza informații despre senzorii de mișcare, etc. În acest sens, este necesar să se organizeze un auntifikatsiyu cu drepturi depline pe PHP si MySQL, iar acest lucru este în nici un fel se potrivească cu tema resursei.

Fișiere atașate: