🚀🚀 В этой статье записано то, что я узнал после двухдневного пребывания в общежитии в 5.20. Поскольку я все еще новичок в микроконтроллерах, мне не с кем посоветоваться. В отчаянии я обыскал Ду Нианг, Станцию Б и Станцию С. не могу научиться, вот и все. Вам придется исследовать все самостоятельно. За этот период вы столкнулись со многими проблемами, которые стоит решить. Я сделаю запись здесь для вашего удобства в будущем. Также надеюсь, что это может стать справочником для тех, кто сейчас учится, чтобы избежать таких ошибок, как я 🚀🚀. ✨✨Добро пожаловать, подписывайтесь на эту рубрику или подписывайтесь на меня и вместе узнавайте о микроконтроллерах! ! ✨✨
✨✨Добро пожаловать, подписывайтесь на эту рубрику или подписывайтесь на меня и вместе узнавайте о микроконтроллерах! ! ✨✨ ❤️❤️❤️ Наконец, я надеюсь, что эта моя статья окажется для вас полезной! Я надеюсь, что мы с вами будем продолжать учиться, продолжать добиваться прогресса, продолжать любить и в ближайшие дни отправимся в горы и на моря! ❤️❤️❤️ Другие мои статьи: 🔥[Идентификация кода проверки Python] Код проверки Selenium идентификация ddddocr: с ddocr🔥 🔥【Обучение C#】Запись обучения C#🔥
В данной статье реализовано удаленное освещение светодиодными светильниками по протоколу MQTT в качестве эксперимента. Необходимое оборудование: ESP8266-01s, STC89C52. Кстати, данная статья подключена к собственному серверу, поэтому для партнеров, которые это делают, нужна пагода. нет пагоды, не беда. При использовании общедоступного сервера эффект тот же.
Сначала установите Docker-менеджер на пагоду.
Извлеките изображение emqx/emqx
После успеха запустите команду в терминале или добавьте запланированный запуск:
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. Регулярное планирование
Сделайте все вышеперечисленное только один раз!
1883:MQTT порт протокола
8883:MQTT/SSL порт
8083:MQTT/WebSocket порт
8080:HTTP API порт
18083:Dashboard 管理控制台порт
Сначала подойдите к оператору сервера, чтобы открыть его, а затем идите к пагоде, чтобы открыть его, иначе он будет бесполезен. [Я не буду сюда приводить открытые скриншоты оператора]
http://Cloudсервер Общественный IP:18083
счет: admin
пароль: public
【Вот как выглядит мой】
После прохождения теста мобильного ПО MQTT вы сможете использовать: [Как использовать программное обеспечение для самостоятельного изучения]
[Устройства, добавленные в одну комнату, могут отправлять сообщения друг другу в комнате, читатели могут проверить это сами]
Во-первых, адрес прошивки ESP8266-01s: Нажмите здесь, чтобы скачать
Загрузите прошивку на рабочий стол и откройте горелку 1.Выберите
2. Способ подключения USB-TTL: [Войдите в режим записи, обратите внимание на фиолетовую рамку] Используйте перемычку для подключения платы адаптера, как показано на рисунке.
3. Путь и некоторые варианты выбора [Просто следуй моим инструкциям] КК, пожалуйста, обратите внимание, помните скорость передачи данных во время записи, вам нужно будет использовать команду для установки 9600 позже...
Нажмите СТАРТ и дождитесь окончания горения! !
Откройте помощник последовательного порта модуля Anxinko, снимите закорачивающую заглушку, подключите его к компьютеру, откройте помощник и не забудьте выбрать только что записанный порт, как показано на рисунке:
Затем отправьте AT-команду, чтобы проверить, нормально ли это. [При появлении запроса вы можете использовать панель инструментов MQTT, чтобы развернуть ее и использовать]
AT
Возврат ОК
Затем отправьте AT-команду, чтобы установить скорость передачи данных 9600.
AT+UART_DEF=9600,8,1,0,0
Возврат ОК
[Поскольку блоггер это уже сделал, следующая операция не будет включать скриншоты успеха]
Далее установите режим и подключитесь к WIFI.
AT+CWMODE=1
AT+CWJAP="liu_wei 2.4G","qwer4399"
После того, как все будет в порядке, начните подключение к серверу MQTT прямо сейчас. Разверните и введите информацию о конфигурации в только что упомянутую панель инструментов MQTT, которую можно создать одним щелчком мыши! Как показано на рисунке:
После генерации:
Просто нажмите перед [Отписаться от темы]. Если проблем нет и вернитесь «ОК», вы можете использовать свой мобильный телефон для подключения к тому же серверу MQTT и [pop] в той же теме.
Изображение последовательного порта.jpg Я не буду размещать здесь изображение, но вы все равно можете его получить.
Больше никакой ерунды! Получите код!
#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;
}
}
Гореть:
Подключите ESP8266 к плате разработки.
После соответствующего подключения:
Видео готового продукта:
сначала должен
[Можно сказать, что каждый, кто присоединяется к комнате, может общаться и обмениваться информацией]
Подводный камень: после входа в режим проникновения метод выхода — отправить [+++]. Если вы отправите его один раз без разрыва строки, вы можете отправить AT-команду. Все коды нужно отправлять с разрывом строки.