Advertisement
Guest User

Untitled

a guest
Jan 6th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.12 KB | None | 0 0
  1. #include <WiFi.h>
  2. #include <WiFiClient.h>
  3. #include <WiFiServer.h>
  4. #include <WiFiUdp.h>
  5.  
  6. #include <SPI.h>
  7.  
  8.  
  9.  
  10. #define trigPin 2
  11. #define echoPin 3
  12.  
  13. char ssid[] = "Liszki"; // SSID sieci WiFi
  14. char pass[] = "qwertyuiopqazwsx123456789"; // hasło
  15. int status = WL_IDLE_STATUS; // monitor połączenia
  16. WiFiClient client;
  17. String sendDist;
  18.  
  19. unsigned long lastConnectionTime = 0; // Ostatni czas połączenia z serwerem
  20. const unsigned long postingInterval = 1L * 1000L; // Interwał czasowy co który będzie nawiązywane połączenie z serwerem
  21.  
  22. void setup() {
  23.  
  24. Serial.begin (9600);
  25. SPI.begin();
  26. // Wersja firmware WiFiShield
  27. // Serial.println("the version is: ");
  28. // Serial.println(WiFi.firmwareVersion());
  29.  
  30.  
  31. // Adres MAC Arduino
  32. printMacAddress();
  33.  
  34. // Listowanie dostępnych sieci bezprzewodowych
  35. Serial.println("Wyszukiwanie dostępnych sieci bezprzewodowych");
  36. listNetworks();
  37.  
  38. // Nazwiązywanie połączenia z wybraną siecią
  39. Serial.print("Próba połączenia z siecią bezprzewodową: ");
  40. Serial.println(ssid);
  41. status = WiFi.begin(ssid, pass);
  42.  
  43. // Błąd połączenia:
  44. if ( status != WL_CONNECTED) {
  45. Serial.println("Nie udało się ustanowić połączenia z siecią WiFi!");
  46. while(true);
  47. }
  48. // Udane połączenie:
  49. else {
  50. Serial.println("Połączono z siecią!");
  51. }
  52. pinMode(trigPin, OUTPUT); // Ustawienie Trig pin dla sensora odległości
  53. pinMode(echoPin, INPUT); // Ustawienie Echo pin dla sensora odległości
  54. pinMode(5, OUTPUT); // Ustawienie pinu sterującego dla beepera
  55.  
  56. // Sygnalizacja poprawnej inicjalizacji Arduino (3 krótkie sygnały dźwiękowe)
  57. initialbeep();
  58.  
  59. delay(3000);
  60. Serial.println("Odczyt danych: ");
  61. }
  62.  
  63. void loop() {
  64.  
  65. long czas, dystans;
  66.  
  67. digitalWrite(trigPin, LOW);
  68. delayMicroseconds(2);
  69. digitalWrite(trigPin, HIGH);
  70. delayMicroseconds(10);
  71. digitalWrite(trigPin, LOW);
  72.  
  73. czas = pulseIn(echoPin, HIGH);
  74. dystans = czas / 58;
  75.  
  76. Serial.print(dystans);
  77. Serial.println(" cm");
  78. if(dystans <= 10){
  79. beep(dystans * 4);
  80. }
  81.  
  82. // Wypisanie przychodzących wiadomości przy połączeniu z serwerem
  83. while (client.available()) {
  84. char c = client.read();
  85. Serial.write(c);
  86. }
  87.  
  88. // Po upływie interwału przesyłana jest kolejna porcja informacji:
  89. if (millis() - lastConnectionTime > postingInterval) {
  90. httpRequest(dystans);
  91. }
  92.  
  93. delay(200);
  94. }
  95.  
  96. void beep(unsigned char delayms){
  97. analogWrite(5, 20); // Nadanie sygnału na pin beepera (wartości od 1- 254 zmieniają ton)
  98. delay(delayms); // Oczekiwanie w milisekundach
  99. analogWrite(5, 0); // Wyłączenie beepera
  100. delay(delayms); // Dodatkowy przestój
  101. }
  102.  
  103. void initialbeep(){
  104. analogWrite(5, 30);
  105. delay(150);
  106. analogWrite(5, 0);
  107. delay(30);
  108. analogWrite(5, 120);
  109. delay(50);
  110. analogWrite(5, 0);
  111. delay(30);
  112. analogWrite(5, 30);
  113. delay(150);
  114. analogWrite(5, 0);
  115. delay(30);
  116. }
  117.  
  118. void printMacAddress() {
  119. // MAC adres
  120. byte mac[6];
  121.  
  122. // Wypisywanie adresu MAC:
  123. WiFi.macAddress(mac);
  124. Serial.print("MAC: ");
  125. Serial.print(mac[5],HEX);
  126. Serial.print(":");
  127. Serial.print(mac[4],HEX);
  128. Serial.print(":");
  129. Serial.print(mac[3],HEX);
  130. Serial.print(":");
  131. Serial.print(mac[2],HEX);
  132. Serial.print(":");
  133. Serial.print(mac[1],HEX);
  134. Serial.print(":");
  135. Serial.println(mac[0],HEX);
  136. }
  137.  
  138. void listNetworks() {
  139. // Skan pobliskich sieci Wifi:
  140. Serial.println("** Skanuję sieci bezprzewodowe **");
  141. byte numSsid = WiFi.scanNetworks();
  142.  
  143. // Wypisanie odnalezionych sieci:
  144. Serial.print("Liczba dostępnych sieci bezprzewodowych: ");
  145. Serial.println(numSsid);
  146.  
  147. // Wypisanie numeru i nazwy sieci bezprzewodowych:
  148. for (int thisNet = 0; thisNet<numSsid; thisNet++) {
  149. Serial.print(thisNet);
  150. Serial.print(") ");
  151. Serial.print(WiFi.SSID(thisNet));
  152. Serial.print("\tSiła sygnału: ");
  153. Serial.print(WiFi.RSSI(thisNet));
  154. Serial.print(" dBm");
  155. Serial.print("\tSzyfrowanie: ");
  156. Serial.println(WiFi.encryptionType(thisNet));
  157. }
  158. }
  159.  
  160. void httpRequest(long dist) {
  161. // Zamykanie jakichkolwiek połączeń, przed próbą nawiązania kolejnego
  162. client.stop();
  163.  
  164. // Działanie po udanym połączeniu:
  165. if (client.connect("apps.agencja-art.pl", 80)) {
  166.  
  167. Serial.println("Przesył danych...");
  168.  
  169. sendDist = String(dist);
  170. unsigned int len = 5 + sendDist.length();
  171. // Wysłanie POST request:
  172. client.println("POST /piotrek/arduino/save.php HTTP/1.1");
  173. client.println("Host: apps.agencja-art.pl");
  174. client.println("User-Agent: ArduinoWiFi/1.1");
  175. client.println("Connection: close");
  176. client.println("Content-Type: application/x-www-form-urlencoded");
  177. client.print("Content-Length: ");
  178. client.println(len);
  179. client.println();
  180. client.print("dist=");
  181. client.println(sendDist);
  182.  
  183. // Zliczanie czasu ustalenia połączenia:
  184. lastConnectionTime = millis();
  185. } else {
  186. // W przypadku braku połączenia:
  187. Serial.println("Nieudane połączenie z serwerem");
  188. }
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement