- Русские Блоги
- Создание веб-сервера на основе ESP8266 и платы STM32F103C8
- Необходимые компоненты
- Общие принципы работы модуля ESP8266
- Схема проекта
- Объяснение программы для платы STM32
- Create a Webserver Using ESP01 and STM32F401CCUx
- Introduction: Create a Webserver Using ESP01 and STM32F401CCUx
- Supplies
- Step 1: Connect ESP01 With STM32F401 According to the Diagram.
- Step 2: Connect STM32 With Pc and Upload the Code.
- Welcome to Manodeep's server
Русские Блоги
Привет всем, я нахожусь в маленьком белом, эта глава записывает SP8266 относительно редкий сценарий приложений и онлайн LAN.
Аппаратные средства: STM32F103C8T6
Главный модуль: WiFi модуль и сами плата PCB (предназначена для этого)
Сначала напишите свое использование вашего использования LORA, Wi-Fi, модуля Bluetooth.
I. Модуль WiFi и модуль Bluetooth аналогичны, но есть несколько пробелов.
Все это настроено на командную команду, а Bluetooth сконфигурирован только один раз, а затем питание включено. После того, как сопряжение успешно, отправка и приемные данные являются контентом, связанным с последовательным портом. легко использовать. Модуль WiFi также может быть пунктирован, но P2P вот не так просто, как отдельные 2 модулей Wi-Fi. Установите модуль WiFi в режим горячей точки, а остальное настроено на клиентский режим. Клиент отправляет данные, а на горячую точку можно получить и метку — это данные, передаваемые модулем. Горячие концы могут отправлять данные (указывая длину передаваемых данных заранее, а также клиента)
Bluetooth не может образовываться локальной сетью, однако ESP8266 может сформировать локальную сеть области при использовании роли шлюза. Следовательно, разработка модуля WiFi сложно развивать трудности в разработке Bluetooth
Второе модуль LORA и ESP8266WIFI
Оба могут быть самостоятельно собраны, все из которых настраиваются через команду AT. Wi-Fi модуль само сети, расстояние передачи между его узлами слишком короткое, а расстояние передачи между модулем LORA и шлюзом может достигать 2 км.
Конечно, сложность LORA сложнее, чем модуль WiFi.
Не много, чтобы сказать, сначала высушите товар.
Как сформировать локальную зону сети: игровой хост, несколько воспроизводимых раб. (Установленная к режиму Hotspot, остальное настроено на клиентский режим) логические диаграммы следующие
Основной узел требует соответствующей аппаратной среды для поддержки передачи его информации. Например, с использованием C8T6 в качестве аппаратной среды одновременно с модулем сбора данных реализовать данные сбора чипов, отправлять данные на шлюз через узел, и Загрузите шлюз в сеть.
Режим хоста:
Модули WiFi связываются с сервером, эта часть была подробно объяснена в предыдущем блоге.
Чтобы сформировать ядро локальной сети, существует 2: (1) передача данных между модулями и модулями (2) модулем загружается на сервер (из режима горячего доступа к режиму клиента)
Трансмиссия модуля Wi-Fi, эффективное расстояние передачи составляет от 10 до 20 метров, чувствует некоторые куриные ребра, но разные проекты, наиболее подходящие модули также различны.
Когда я горжусь модулем, рекомендуется, чтобы у вас была отлаженная плата PCB, которая приводит к последовательному порту, больше приводит к мощности и привести внешний блок. Это значительно снизит время разработки системы. Инструменты, инструменты разработки должны быть завершены,
Я давно не обновил блог, я забыл, как писать блоги. В последние месяцы еще несколько трудностей было сложнее, и есть смысл: самая сложная точка в проекте должна быть обработки данных.
Найдите время спустя, существует больше волны отладки чипов LORA, а также пользовательские протоколы связи.
Создание веб-сервера на основе ESP8266 и платы STM32F103C8
Сфера интернета вещей (Internet of Things, IoT) является одной из активно развивающихся в современном мире. В этой сфере важную роль играют модули ESP8266, которые отличаются широким набором функциональных возможностей при относительно низкой цене. Ранее на нашем сайте мы уже рассматривали следующие проекты тематики интернета вещей на основе модуля ESP8266:
В этой же статье мы рассмотрим подключение модуля ESP8266 к плате STM32F103C8 и осуществим выход в сеть в интернет. Также мы будем передавать данные на веб-страницу, расположенную на веб-сервере, организованном на основе модуле ESP8266.
Необходимые компоненты
- Модуль ESP8266 (купить на AliExpress).
- Blue Pill STM32F103C8 board (отладочная плата STM32, «синяя таблетка») (купить на AliExpress).
- Ноутбук и точка доступа Wi-Fi.
Общие принципы работы модуля ESP8266
Большинство людей называют ESP8266 модулем Wi-Fi, но на самом деле это микроконтроллер. ESP8266 — это название микроконтроллера, разработанного компанией Espressif Systems, базирующейся в Шанхае. Данный микроконтроллер имеет возможность работы с технологией Wi-Fi, поэтому он широко используется в качестве модуля Wi-Fi. Существует множество типов модулей ESP8266, доступных в диапазоне от ESP8266-01 до ESP8266-12. В данной статье мы будем использовать модуль ESP8266-01. Однако все модули ESP имеют только один тип процессора ESP и отличаются только типом используемого интерфейсного модуля. Интерфейсный модуль микроконтроллера ESP8266-01 имеет только 2 вывода GPIO, а другие модули ESP могут иметь большее количество выводов.
Модуль ESP8266 имеет 8 контактов. Его внешний вид и распиновка показаны на следующих рисунках.
Назначение контактов модуля ESP8266:
- 1 – земля, 8 – питание. По документации напряжение подается до 3,6 В – это важно учесть при работе с Ардуино, на которую обычно подают 5 В.
- 6 – RST, нужна для перезагрузки микроконтроллера при подаче на него низкого логического уровня.
- 4 – CP_PD, также используется для перевода устройства в энергосберегающий режим.
- 7 и 0 – RXD0 и TXD0, это аппаратный UART (последовательный порт), необходимый для перепрошивки модуля.
- 2 – TXD0, к этому контакту подключается светодиод, который загорается при низком логическом уровне на GPIO1 и при передаче данных по UART.
- 5 – GPIO0, порт ввода и вывода, также позволяет перевести устройство в режим программирования (при подключении порта к низкому логическому уровню и подачи напряжения).
- 3 – GPIO2, порт ввода и вывода.
К сожалению, модуль ESP8266 не является «дружественным» к макетной плате (breadboard friendly) и поэтому его нельзя на ней непосредственно закрепить.
Для управления работой модуля ESP8266 могут использоваться AT команды. Список AT команд, наиболее часто используемых при работе с модулем ESP8266, приведен в следующей таблице.
Полный же список AT команд, применимых для работы с модулем ESP8266, можно посмотреть по этой ссылке.
Схема проекта
Схема подключения модуля ESP8266 к плате STM32F103C8 представлена на следующем рисунке.
Схема соединений между модулем ESP8266 и платой STM32F103C8 представлена в следующей таблице.
ESP8266 | STM32F103C8 |
VCC | 3.3V |
GND | G |
CH_PD | 3.3V |
TX | PA3 |
RX | PA2 |
Плата SMT32F103C8 имеет три набора портов последовательной связи (UART), их местоположение и рабочее напряжение показаны в следующей таблице.
Последовательный порт | Контакты | Рабочее напряжение |
Serial1 (TX1,RX1) | PA9, PA10, PB6,PB7 | 5V |
Serial2 (TX2,RX2) | PA2, PA3 | 3.3V |
Serial3 (TX3,RX3) | PB10, PB11 | 5V |
Полная распиновка платы SMT32F103C8 представлена на следующем рисунке.
Для взаимодействия между модулем ESP8266 и платой STM32F103C8 используется последовательная связь. С этой целью контакты TX & RX модуля ESP8266 подключены ко второму последовательному порту (serial2 port, контакты PA2 & PA3) платы STM32.
Объяснение программы для платы STM32
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
Мы будем использовать среду Arduino IDE для написания программы и ее загрузки в плату STM32.
После загрузки кода программы в плату откройте в Arduino IDE монитор последовательного порта связи (Tools>>Serial Monitor). В этом окне вы увидите IP адрес, скопируйте его и вставьте его в строку браузера, в результате этого вы увидите в браузере сформированную модулем ESP8266 веб-страницу. Помните, что ваш компьютер и модуль ESP8266 при этом должны быть подключены к одной и той же Wi-Fi сети.
Первым делом в программе мы инициализируем последовательную связь с монитором последовательного порта и последовательную связь с модулем ESP8266.
Create a Webserver Using ESP01 and STM32F401CCUx
Introduction: Create a Webserver Using ESP01 and STM32F401CCUx
ESP-01 WiFi module is developed by encapsulates Tensilica L106 integrates industry Clock speed support 80 MHz, 160 MHz, supports the RTOS, integrated Wi The module supports standard IEEE802.11 add modules to an existing device networking, or building a separate network controller. ESP8266 is high integration wireless SOCs, designed for space and power-constrained mobile platform It provides unsurpassed ability to embed Wi application, with the lowest cost, and minimal space requirement. ESP8266EX offers a complete and self or to offload Wi-Fi networking functions from another application processor When ESP8266EX hosts the application, it boots up directly from an external flash. It has improved the performance of the system in such applications. Alternately, serving as a Wi-Fi adapter, wireless internet access can be added to any microcontroller-based design with simple connectivity (SPI/SDIO or I2C/UART interface). http://www.ai-thinker.com Ai-thinker Team. core processor ESP8266 in smaller sizes of the module industry-leading ultra low power 32-bit MCU micro, with the 16 Wi-Fi MAC/BB/RF/PA/LNA, on b/g/n agreement, complete TCP/IP protocol stack. Users can use the Wi-Fi capabilities within other systems, or to function as a standalone self-contained Wi-Fi networking solution; it can be used to host processor. integrated 3 16-bit short mode, /on-board antenna.
Supplies
Step 1: Connect ESP01 With STM32F401 According to the Diagram.
NOTE:- I’ve used STM32F401CCUx(Black Pill) in my case. But in the circuit diagram, I’ve shown a blue pill. There was no Black Pill available in fritzing. Connections will be the same for both boards.
Refer to below table to connect ESP8266 pins with STM32 pins:
ESP8266 -> STM32
Step 2: Connect STM32 With Pc and Upload the Code.
//Interfacing ESP8266 Wi-Fi with STM32F401CCUx //NOTE: Serial is serial monitor with baud rate(9600) //NOTE: Serial2 (TX2, RX2)is connected with ESP8266(RX,TX)respectively with baud rate (9600) String webpage=""; //String variable to store characters int i=0,k=0,x=0; //integer variables String readString; //using readString feature to read characters boolean No_IP=false; //boolean variables String IP=""; //String variable to store data char temp1='0'; //character variable String name="Manodeep's Server
Server created using ESP01 and STM32F401CCUx
"; //String with html notations String data="Data Received Successfully.
"; //String with html void check4IP(int t1) //A function to check ip of ESP8266 < int t2=millis(); while(t2+t1>millis()) < while(Serial2.available()>0) < if(Serial2.find("WIFI GOT IP")) < No_IP=true; >> > > void get_ip() //After cheacking ip ,this is a function to get IP address < IP=""; char ch=0; while(1) < Serial2.println("AT+CIFSR"); //GET IP AT COMMAND while(Serial2.available()>0) < if(Serial2.find("STAIP,")) //This finds the STAIP that is the STATIC IP ADDRESS of ESP8266 < delay(1000); Serial.print("IP Address:"); while(Serial2.available()>0) < ch=Serial2.read(); //Serial2 reads from ESP8266 if(ch=='+') break; IP+=ch; >> if(ch=='+') break; > if(ch=='+') break; delay(1000); > Serial.print(IP); //prints IP address in Serial monitor Serial.print("Port:"); Serial.println(80); > void connect_wifi(String cmd, int t) //This function is for connecting ESP8266 with wifi network by using AT commands < int temp=0,i=0; while(1) < Serial.println(cmd); //Sends to serial monitor Serial2.println(cmd); //sends to ESP8266 via serial communication while(Serial2.available()) < if(Serial2.find("OK")) i=8; >delay(t); if(i>5) break; i++; > if(i==8) Serial.println("OK"); else Serial.println("Error"); > void wifi_init() //This function contains AT commands that passes to connect_wifi() < connect_wifi("AT",100); //Sends AT command with time(Command for Achknowledgement) connect_wifi("AT+CWMODE=3",100); //Sends AT command with time (For setting mode of Wifi) connect_wifi("AT+CWQAP",100); //Sends AT command with time (for Quit AP) connect_wifi("AT+RST",5000); //Sends AT command with time (For RESETTING WIFI) check4IP(5000); if(!No_IP) < Serial.println("Connecting Wifi. "); connect_wifi("AT+CWJAP=\"TP-LINK_9950\",\"manodeep\"",7000); //provide your WiFi username and password here >else < >Serial.println("Wifi Connected"); get_ip(); connect_wifi("AT+CIPMUX=1",100); //Sends AT command with time (For creating multiple connections) connect_wifi("AT+CIPSERVER=1,80",100); //Sends AT command with time (For setting up server with port 80) > void sendwebdata(String webPage) //This function is used to send webpage datas to the localserver < int ii=0; while(1) < unsigned int l=webPage.length(); Serial.print("AT+CIPSEND=0,"); Serial2.print("AT+CIPSEND=0,"); Serial.println(l+2); Serial2.println(l+2); delay(100); Serial.println(webPage); //sends webpage data to serial monitor Serial2.println(webPage); //sends webpage data to serial2 ESP8266 while(Serial2.available()) < if(Serial2.find("OK")) < ii=11; break; >> if(ii==11) break; delay(100); > > void setup() < Serial.begin(9600); //begins serial monitor with baud rate 9600 Serial2.begin(115200); //begins serial communication with esp8266 with baud rate 9600 (Change according to your esp8266 module) wifi_init(); Serial.println("System Ready.."); >void loop() < k=0; Serial.println("Please Refresh your Page"); while(k<1000) < k++; while(Serial2.available()) < if(Serial2.find("0,CONNECT")) < Serial.println("Start Printing"); Send(); Serial.println("Done Printing"); delay(1000); >> delay(1); > > void Send() //This function contains data to be sent to local server < webpage = "Welcome to Manodeep's server
"; sendwebdata(webpage); webpage=name; sendwebdata(webpage); delay(1000); webpage = "Click Here to see Manodeep's projects on Instructables"; webpage+=data; sendwebdata(webpage); Serial2.println("AT+CIPCLOSE=0"); //Closes the server connection >