link118 link119 link120 link121 link122 link123 link124 link125 link126 link127 link128 link129 link130 link131 link132 link133 link134 link135 link136 link137 link138 link139 link140 link141 link142 link143 link144 link145 link146 link147 link148 link149 link150 link151 link152 link153 link154 link155 link156 link157 link158 link159 link160 link161 link162 link163 link164 link165 link166 link167 link168 link169 link170 link171 link172 link173 link174 link175 link176 link177 link178 link179 link180 link181 link182 link183 link184 link185 link186 link187 link188 link189 link190 link191 link192 link193 link194 link195 link196 link197 link198 link199 link200 link201 link202 link203 link204 link205 link206 link207 link208 link209 link210 link211 link212 link213 link214 link215 link216 link217 link218 link219 link220 link221 link222 link223 link224 link225 link226 link227 link228 link229 link230 link231 link232 link233 link234 link235
 [Часть 1] Домашний веб сервер на Ардуино [Рабочий код]
 
На странице Вы можете визуально просмотреть код веб сервера для Ардуино в 2х частях.

  1. /*
  2. * Создано для сайта 1injener.ru
  3. * Домашний веб сервер на Аrduino. Температура и Реле [Проверенно]
  4. * Про работу с WI-FI модулем можно прочитать на хорошем сайте еsp8266.ru
  5. */
  6. #include "dht11.h" // Добавляем библиотеку DHT11
  7. dht11 DHT; // Объявление переменной класса dht11
  8. #define DHT11_PIN 4
  9. HardwareSerial & monitor = Serial;
  10. HardwareSerial & esp_serial = Serial1;
  11. // Установка пинов для реле. Предусмотренно на будущее 2 реле, а использовалось только 1.
  12. const int relay1 = 22;
  13. const int relay2 = 23;
  14. //Буфер для передачи данных с сервера в ардуину
  15. #define BUFFER_SIZE 128
  16. char buffer[BUFFER_SIZE];
  17. //Временные переменные для нужд сервера.
  18. int result = 0;
  19. int OK = 1;
  20. int TIMEOUT = 2 ;
  21. int CANCEL = 3;
  22. int NOT_FOUND = 4;
  23. int i;
  24. int m=0;
  25. int lp = 0;
  26. char inputChar[500];
  27. int len = 0;
  28. //Порт для Веб сервера на Ардуино
  29. String port="80";
  30. String cmd;
  31. String myIP;
  32. int currentID;
  33. int ch_id, packet_len;
  34. char *pb;
  35. void(* resetFunc) (void) = 0;
  36. //Установки при старте Ардуины
  37. //Устанавливаются пины для реле как выходы и в выключенное состояние
  38. void setup() {
  39. pinMode(relay1, OUTPUT);
  40. pinMode(relay2, OUTPUT);
  41. digitalWrite(relay1,LOW);
  42. digitalWrite(relay2,LOW);
  43. //Активируем Serial терминал для отображения данных на компьютере (Для проверки)
  44. monitor.begin(115200);
  45. esp_serial.begin(115200); // Так же активируем Serial для Wi-FI модуля ESP8266
  46. monitor.println(F("\nESP8266 WebServer TEST"));
  47. delay(1000);
  48. /* RESET Module */
  49. esp_serial.println("AT+RST"); // Програмный рестарт WI-FI модуля
  50. monitor.print("\nAT+RST");
  51. result = CheckResponse(); // Специальной функцией ниже мы отлавливаем ответ модуля "ОК"
  52. if(result == OK){
  53. Serial.print(" OK");
  54. delay(300);
  55. }
  56. else{
  57. Serial.print(" ERROR");
  58. delay(2000);
  59. resetFunc();
  60. }
  61. //Ниже идут части программы к которым мы будем обращаться из основного цикла.
  62. SET_MODE:
  63. esp_serial.println("AT+CWMODE=1"); // Установка режима клиента, который будет подключаться к роутеру.
  64. // Так же можно подключаться к самому модулю. Но об этом в другой статье.
  65. monitor.print("\nAT+CWMODE=1");
  66. result = CheckResponse(); // ответ модуля "ОК"
  67. if(result == OK){
  68. Serial.print(" OK");
  69. delay(200);
  70. }
  71. else{
  72. Serial.print(" ERROR");
  73. delay(1000);
  74. goto SET_MODE;
  75. }
  76. DISCONNECT_AP:
  77. esp_serial.println("AT+CWQAP"); // Отключение
  78. monitor.print("\nAT+CWQAP");
  79. result = CheckResponse(); // ответ модуля "ОК"
  80. if(result == OK){
  81. Serial.print(" OK");
  82. delay(300);
  83. }
  84. else{
  85. Serial.print(" ERROR");
  86. delay(1000);
  87. goto DISCONNECT_AP;
  88. }
  89. CONNECT_WIFI:
  90. cmd = "AT+CWJAP=\"SSID\",\"ПАРОЛЬ\"";
  91. esp_serial.println(cmd); // Подключение к роутеру. Выше надо прописать ваш SSID wifi точки роутера и пароль
  92. monitor.print("\n"+cmd);
  93. result = CheckResponse(); // ответ модуля "ОК"
  94. if(result == OK){
  95. Serial.print(" OK");
  96. delay(300);
  97. }
  98. else{
  99. Serial.print(" ERROR");
  100. delay(1000);
  101. goto CONNECT_WIFI;
  102. }
  103. SET_MULTIPLE:
  104. esp_serial.println("AT+CIPMUX=1"); // Выбор режима множественных подключений
  105. monitor.print("\nAT+CIPMUX=1");
  106. result = CheckResponse(); // ответ модуля "ОК"
  107. if(result == OK){
  108. Serial.print(" OK");
  109. delay(300);
  110. }
  111. else{
  112. Serial.print(" ERROR");
  113. delay(1000);
  114. goto SET_MULTIPLE;
  115. }
  116. START_SERVER:
  117. cmd = "AT+CIPSERVER=" + String("1") + String(",") + port;
  118. esp_serial.println(cmd); // СТАРТУЕМ!!! Я СКАЗАЛ СТАРУЕЕЕМ!
  119. monitor.print("\n"+cmd);
  120. result = CheckResponse(); // ответ модуля "ОК"
  121. if(result == OK){
  122. Serial.print(" OK");
  123. delay(200);
  124. }
  125. else{
  126. Serial.print(" ERROR");
  127. delay(1000);
  128. }
  129. CHECK_IP:
  130. esp_serial.println("AT+CIFSR"); // Отображаем и проверяем получили ли мы IP адресс от роутера.
  131. monitor.print("\nAT+CIFSR");
  132. readSerial();
  133. monitor.print(inputChar);
  134. readSerial();
  135. monitor.print(inputChar);
  136. readSerial();
  137. monitor.print(inputChar);
  138. for(unsigned char i=0;i<2;i++){
  139. esp_serial.println("AT+CIPCLOSE"); // Закрываем подключение
  140. monitor.print("\nAT+CIPCLOSE");
  141. result = CheckResponse(); // ответ модуля "ОК"
  142. if(result == OK){
  143. Serial.print(" OK");
  144. delay(200);
  145. }
  146. else{
  147. Serial.print(" ERROR");
  148. delay(200);
  149. }
  150. }
  151. }

Далее:
[Часть 2] Домашний веб сервер на Ардуино [Рабочий код]

В статью:
Домашний веб сервер на Аrduino. Температура и Реле [Проверенно]
 

Новые изобретения инженеров и техников, дизайнеров и обычных людей, все то что может изменить наш мир к лучшему. Новая техника и оружие, спасателей и спецназа. Гаджеты и девайсы, устройства для отдыха и работы. Советы для экономии семейного состояния. Все гениальные изобретения в простом формате! Ведь «Все — Просто!»
Copyright © 2013–. Политика конфиденциальности
Автоматизация и проектирование — 1injener.ru