Светодиод ESP8266 не работает
Мой светодиод не мигает, я понятия не имею, почему он не работает. Я запускаю его на плате «generic esp8266 module».
/*Мигание
Включает светодиод на одну секунду, затем выключает на одну секунду, повторяя процедуру.
Большинство Arduino имеют встроенный светодиод, которым вы можете управлять. На UNO, MEGA и ZERO
он подключен к цифровому выводу 13, на MKR1000 на выводе 6. LED_BUILTIN установлен на
правильный вывод светодиода независимо от того, какая плата используется.
Если вы хотите узнать, к какому контакту на плате Arduino подключен встроенный светодиод
модель, проверьте технические характеристики вашей платы по адресу:
https://www.arduino.cc/en/Main/Продукты
изменено 8 мая 2014 г.
Скотт Фицджеральд
изменено 2 сентября 2016 г.
Артуро Гваделупи
изменено 8 сентября 2016 г.
Колби Ньюман
Этот пример кода находится в открытом доступе.
http://www.arduino.cc/en/Tutorial/Мигание
*/
// функция настройки запускается один раз при нажатии кнопки сброса или включении питания платы
void setup() {
// инициализируем цифровой вывод LED_BUILTIN как выход.
pinMode(13, OUTPUT);
}
// функция цикла выполняется снова и снова вечно
void loop() {
digitalWrite(13, HIGH); // включаем светодиод (HIGH — уровень напряжения)
delay(1000); // ждем секунду
digitalWrite(13, LOW); // выключаем светодиод, понизив напряжение
delay(1000); // ждем секунду
}
Модуль Wi-Fi работает нормально, но светодиод не работает вообще.
Еще один набросок
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <Servo.h>
// Инициализируем подключение Wi-Fi к маршрутизатору
char ssid[] = "---"; // SSID вашей сети (имя)
char password[] = "---"; // ваш сетевой ключ
int tempsensorPin = 0;
int lightsensorPin = 1;
bool searchState = false;
bool starting = false;
bool lightState = false;
Servo servo_test;
// Инициализация Telegram BOT
#define BOTtoken "----" // ваш токен бота (получить от Botfather)
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
int Bot_mtbs = 1000; //среднее время между сообщениями сканирования
long Bot_lasttime; //время последнего сканирования сообщений
void setup() {
//servo_test.attach(8);
Serial.begin(115200);
// Установите WiFi в режим станции и отключитесь от точки доступа, если это было ранее
// подключен
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
// Попытка подключиться к сети Wi-Fi:
Serial.print("Connecting Wifi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13,lightState);
if (millis() > Bot_lasttime + Bot_mtbs) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while(numNewMessages) {
Serial.println("got response");
for (int i=0; i<numNewMessages; i++) {
String id = bot.messages[i].chat_id;
String text = bot.messages[i].text;
//bot.sendMessage(bot.messages[i].chat_id, bot.messages[i].text, "");
if(searchState){
searchState=false;
bot.sendMessage(bot.messages[i].chat_id, "http://lmgtfy.com/?q="+text, "");
}else{
bot.sendMessage(bot.messages[i].chat_id, answerMe(text), "");
}
}
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
Bot_lasttime = millis();
}
}
String answerMe(String request){
int tempSensor = analogRead(tempsensorPin);
int lightSensor = analogRead(lightsensorPin);
float voltage = tempSensor * 5.0;
voltage /= 1024.0;
Serial.print(voltage); Serial.println(" volts");
float temperatureC = (voltage - 0.5) * 20 ;
Serial.print(temperatureC); Serial.println(" degrees C");
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF); Serial.println(" degrees F");
if(starting){
if (request=="/temperatureF"){
return "Current temperature is " + String(temperatureF) + " F";
}
if (request=="/temperatureC"){
return "Current temperature is " + String(temperatureC) +" C";
}
if(request=="/lightIntensity"){
return "Current light intensity is " + String(lightSensor);
}
if(request=="/lightON"){
lightState=true;
return "Current light state is true!";
}
if(request=="/lightOFF"){
lightState=false;
return "Current light state is false!";
}
if(request=="/lightDepend"){
analogWrite(13,lightSensor);
return "Here we go!";
}
if(request=="/google"){
searchState=true;
return "What you want to google?";
}
if(request=="close"){
starting=false;
servo_test.write(0);
return "Bye bye!";
}
}else if(request=="/open"){
starting=true;
servo_test.write(90);
return "What's next?";
}else
return "Open the box first!";
}
@Aksultan, 👍0
2 ответа
ESP8266 не будет мигать светодиодом на выводе 13 или любом другом выводе Uno. У него нет доступа к выводам Uno. И ваши вызовы analogRead возвращают какие-то случайные значения.
Соединение RX к RX, TX к TX превращает Uno в адаптер «USB к последовательному порту» для esp8266. Вы загружаете Blink в esp8266. Если бы эскиз Blink имел оригинальный номер пина LED_BUILTIN, то светодиод на модуле esp8266, возможно, мигал бы.
После того, как вы изменили подключение RX на TX и TX на RX, вы не сможете загрузить данные на esp8266, поскольку esp8266 больше не подключен к ПК через USB.
Если вы хотите считывать и записывать пины Uno из esp8266, используйте скетч ConfigurableFirmata в Uno и библиотеку FirmataMaster в esp8266.
Другой вариант — написать собственный скетч для Uno и организовать связь между esp8266 и Uno через последовательный порт.
Или вы можете использовать esp8266 в качестве сетевого адаптера с какой-нибудь прошивкой (прошивкой AT или WiFi Link) и перенести свой скетч на Uno.
Вероятно, вы не загружаете код в ESP8266. Вместо этого код загружается в Arduino. Вам следует заземлить GPIO1 и подключить ESP8266 Reset к Arduino Reset. Затем перейдите в Sketch и посмотрите, изменили ли вы плату с ARduino на ESP8266.
- Скетч мигания ESP8266 не мигает светодиодом
- AT-команда не отвечает на последовательный монитор
- Несколько условий оператора if
- Отправка данных Arduino в MySQL с помощью phpMyAdmin и XAMPP на Windows10
- Arduino выводит значения мусора на serial monitor с ESP8266
- Светодиоды: разница между общим анодом и общим катодом
- ошибка: espcomm_upload_mem failed при загрузке скетча
- фатальная ошибка ESP8266WiFi.h: Такого файла или каталога нет