Esp8266-01s, 51 микроконтроллер реализует подключение к MQTT. Подводные камни: Дополнительное прожигание прошивки Anxinko + Pagoda для сборки полного набора стратегий MQTT-сервера.
Esp8266-01s, 51 микроконтроллер реализует подключение к MQTT. Подводные камни: Дополнительное прожигание прошивки Anxinko + Pagoda для сборки полного набора стратегий MQTT-сервера.

🚀🚀 В этой статье записано то, что я узнал после двухдневного пребывания в общежитии в 5.20. Поскольку я все еще новичок в микроконтроллерах, мне не с кем посоветоваться. В отчаянии я обыскал Ду Нианг, Станцию ​​​​Б и Станцию ​​С. не могу научиться, вот и все. Вам придется исследовать все самостоятельно. За этот период вы столкнулись со многими проблемами, которые стоит решить. Я сделаю запись здесь для вашего удобства в будущем. Также надеюсь, что это может стать справочником для тех, кто сейчас учится, чтобы избежать таких ошибок, как я 🚀🚀. ✨✨Добро пожаловать, подписывайтесь на эту рубрику или подписывайтесь на меня и вместе узнавайте о микроконтроллерах! ! ✨✨

✨✨Добро пожаловать, подписывайтесь на эту рубрику или подписывайтесь на меня и вместе узнавайте о микроконтроллерах! ! ✨✨ ❤️❤️❤️ Наконец, я надеюсь, что эта моя статья окажется для вас полезной! Я надеюсь, что мы с вами будем продолжать учиться, продолжать добиваться прогресса, продолжать любить и в ближайшие дни отправимся в горы и на моря! ❤️❤️❤️ Другие мои статьи: 🔥[Идентификация кода проверки Python] Код проверки Selenium идентификация ddddocr: с ddocr🔥 🔥【Обучение C#】Запись обучения C#🔥

Предисловие

В данной статье реализовано удаленное освещение светодиодными светильниками по протоколу MQTT в качестве эксперимента. Необходимое оборудование: ESP8266-01s, STC89C52. Кстати, данная статья подключена к собственному серверу, поэтому для партнеров, которые это делают, нужна пагода. нет пагоды, не беда. При использовании общедоступного сервера эффект тот же.

1. Создайте облачный сервер MQTT.

1.Скачать

Сначала установите Docker-менеджер на пагоду.

Извлеките изображение emqx/emqx

После успеха запустите команду в терминале или добавьте запланированный запуск:

Язык кода:javascript
копировать
docker run -dit --name emqx -p 18083:18083 -p 1883:1883 -p 8083:8083 -p 8084:8084 emqx/emqx:latest

docker exec -it  emqx /bin/sh

[Не могу войти, так как забыл пароль. Вы можете воспользоваться моим методом или воспользоваться терминалом]

1.Терминал

2. Регулярное планирование

Сделайте все вышеперечисленное только один раз!

2. Открыть порт

Язык кода:javascript
копировать
1883:MQTT порт протокола
8883:MQTT/SSL порт
8083:MQTT/WebSocket порт
8080:HTTP API порт
18083:Dashboard 管理控制台порт

Сначала подойдите к оператору сервера, чтобы открыть его, а затем идите к пагоде, чтобы открыть его, иначе он будет бесполезен. [Я не буду сюда приводить открытые скриншоты оператора]

3. Тестовое использование

Язык кода:javascript
копировать
http://Cloudсервер Общественный IP:18083
счет: admin
пароль: public

【Вот как выглядит мой】

После прохождения теста мобильного ПО MQTT вы сможете использовать: [Как использовать программное обеспечение для самостоятельного изучения]

[Устройства, добавленные в одну комнату, могут отправлять сообщения друг другу в комнате, читатели могут проверить это сами]

2. Скачиваем прошивку Anxinke

1. Сжечь

Во-первых, адрес прошивки ESP8266-01s: Нажмите здесь, чтобы скачать

Загрузите прошивку на рабочий стол и откройте горелку 1.Выберите

2. Способ подключения USB-TTL: [Войдите в режим записи, обратите внимание на фиолетовую рамку] Используйте перемычку для подключения платы адаптера, как показано на рисунке.

3. Путь и некоторые варианты выбора [Просто следуй моим инструкциям] КК, пожалуйста, обратите внимание, помните скорость передачи данных во время записи, вам нужно будет использовать команду для установки 9600 позже...

Нажмите СТАРТ и дождитесь окончания горения! !

2. Проверка подключения

Откройте помощник последовательного порта модуля Anxinko, снимите закорачивающую заглушку, подключите его к компьютеру, откройте помощник и не забудьте выбрать только что записанный порт, как показано на рисунке:

Затем отправьте AT-команду, чтобы проверить, нормально ли это. [При появлении запроса вы можете использовать панель инструментов MQTT, чтобы развернуть ее и использовать]

Язык кода:javascript
копировать
AT

Возврат ОК

Затем отправьте AT-команду, чтобы установить скорость передачи данных 9600.

Язык кода:javascript
копировать
AT+UART_DEF=9600,8,1,0,0

Возврат ОК

[Поскольку блоггер это уже сделал, следующая операция не будет включать скриншоты успеха]

Далее установите режим и подключитесь к WIFI.

Язык кода:javascript
копировать
AT+CWMODE=1
Язык кода:javascript
копировать
AT+CWJAP="liu_wei 2.4G","qwer4399"

После того, как все будет в порядке, начните подключение к серверу MQTT прямо сейчас. Разверните и введите информацию о конфигурации в только что упомянутую панель инструментов MQTT, которую можно создать одним щелчком мыши! Как показано на рисунке:

После генерации:

Просто нажмите перед [Отписаться от темы]. Если проблем нет и вернитесь «ОК», вы можете использовать свой мобильный телефон для подключения к тому же серверу MQTT и [pop] в той же теме.

Изображение последовательного порта.jpg Я не буду размещать здесь изображение, но вы все равно можете его получить.

3. Подключите STC89C52.

1. Сжечь программу для STC89C52.

Больше никакой ерунды! Получите код!

Язык кода:javascript
копировать
#include <reg52.h>
bit uart_busy = 0;    //´®¿Ú·µ»ØÏûÏ¢
char flag=0;

sbit led=P2^0;       //½«µ¥Æ¬»úµÄP0.0¶Ë¿Ú¶¨ÒåΪled
sbit led1=P2^1;      //½«µ¥Æ¬»úµÄP0.0¶Ë¿Ú¶¨ÒåΪled
sbit led2=P2^2;      //½«µ¥Æ¬»úµÄP0.0¶Ë¿Ú¶¨ÒåΪled
sbit led3=P2^3;      //½«µ¥Æ¬»úµÄP0.0¶Ë¿Ú¶¨ÒåΪled
sbit led4=P2^4;      //½«µ¥Æ¬»úµÄP0.0¶Ë¿Ú¶¨ÒåΪled
sbit led5=P2^5;      //½«µ¥Æ¬»úµÄP0.0¶Ë¿Ú¶¨ÒåΪled
sbit led6=P2^6;      //½«µ¥Æ¬»úµÄP0.0¶Ë¿Ú¶¨ÒåΪled
sbit led7=P2^7;      //½«µ¥Æ¬»úµÄP0.0¶Ë¿Ú¶¨ÒåΪled


int i; //??????????
char receiveData=0x37;  //????mqtt????????


typedef unsigned int u16;     //¶ÔÊý¾ÝÀàÐͽøÐÐÉùÃ÷¶¨Òå
typedef unsigned char u8;




void delay(u16 i){
while(i--);

}
void dealy(u16 i){
while(i--);

}
 
void Init_uart(void) {      //´®¿Ú²¨ÌØÂÊÒªÉèΪ9600
	TMOD = TMOD | 0x20;    
	SCON = SCON | 0x50;    
	TH1 = 0xFd;        
	TL1 = TH1;  
	TR1 = 1;              
	EA =1;                
	ES =1;               
}
//´®¿Ú·¢ËÍ×Ö·û
void Uart_SendByteData(unsigned char msg){
	while(uart_busy); 
	SBUF=msg;		  
	uart_busy = 1;	
}
void Uart_SendStrData(unsigned char *msg){
	while(*msg){
		Uart_SendByteData(*msg++);
	}
}
 
//³õʼ»¯ÅäÖÃ8266£¬Ö¸¶¨·þÎñÆ÷
void Init_ESP01S(){    

dealy(50000);
	dealy(50000);
	dealy(50000);
	dealy(50000);
	Uart_SendStrData("AT+MQTTUSERCFG=0,1,\"esp\",\"admin\",\"public\",0,0,\"\"\r\n");
	dealy(50000);
	dealy(50000);
	dealy(50000);
	dealy(50000);
	dealy(50000);
	dealy(50000);
	dealy(50000);
	dealy(50000);
	Uart_SendStrData("AT+MQTTCONN=0,\"49.234.42.125\",1883,0\r\n");
dealy(50000);
	dealy(50000);
	dealy(50000);

	dealy(50000);
	dealy(50000);
	dealy(50000);
Uart_SendStrData("AT+MQTTSUB=0,\"pop\",0\r\n");
	dealy(50000);
	dealy(50000);
	dealy(50000);
	dealy(50000);
	
	Uart_SendStrData("AT+MQTTPUB=0,\"pub\",\"I am a esp8266\",1,0\r\n");
	
	
}
 
void main(){
	Init_uart();
	dealy(50000);
	Init_ESP01S();
	
	//Uart_SendStrData("111");    //ͨ¹ý´®¿Ú·¢ËÍ×Ö·û´®¸ø8266£¬·¢Ë͵½ÔƶË

	while(1)
    {
if (flag==1)
{
//0kai1ting
           led=0;
           delay(50000); //´óÔ¼ÑÓʱ450ms
           led1=0;
						delay(50000); //´óÔ¼ÑÓʱ450ms
						led2=0;
						delay(50000); //´óÔ¼ÑÓʱ450ms  
           led3=0;
           delay(50000); //´óÔ¼ÑÓʱ450ms  
           led4=0;
           delay(50000); //´óÔ¼ÑÓʱ450ms  
           led5=0;
           delay(50000); //´óÔ¼ÑÓʱ450ms  
           led6=0;
           delay(50000); //´óÔ¼ÑÓʱ450ms  
           led7=0;
		   flag=0;
          
}
					led=1;
           delay(50000); //´óÔ¼ÑÓʱ450ms
           led1=1;
        delay(50000); //´óÔ¼ÑÓʱ450ms
        led2=1;
        delay(50000); //´óÔ¼ÑÓʱ450ms  
           led3=1;
           delay(50000); //´óÔ¼ÑÓʱ450ms  
           led4=1;
           delay(50000); //´óÔ¼ÑÓʱ450ms  
           led5=1;
           delay(50000); //´óÔ¼ÑÓʱ450ms  
           led6=1;
           delay(50000); //´óÔ¼ÑÓʱ450ms  
           led7=1;
		   delay(50000); //´óÔ¼ÑÓʱ450ms     
          
       
        // send_by_string(0x66);
        
    }   
}
 
void UART_Interrupt(void) interrupt 4 {

	unsigned char one_char;

	if(RI){
		receiveData=SBUF;//????????????
		RI = 0;
		if(receiveData == 0x31)   //?????????‘1’,???led?
	{
		
		flag=1;
	}
	
	if(receiveData == 0x32)   //????????? ‘2’,???led?
	{
		flag=0;
	}

		
	}
	
	if(TI){
		TI = 0;
		uart_busy = 0;
	}
	
}

Гореть:

2. Схема подключения.

Подключите ESP8266 к плате разработки.

После соответствующего подключения:

Видео готового продукта:

сначала должен

4. Кратко представим MQTT

[Можно сказать, что каждый, кто присоединяется к комнате, может общаться и обмениваться информацией]

Подвести итог

Подводный камень: после входа в режим проникновения метод выхода — отправить [+++]. Если вы отправите его один раз без разрыва строки, вы можете отправить AT-команду. Все коды нужно отправлять с разрывом строки.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода