Программеры, ваш выход!
r0l — 15.03.2021
Потом горбоносый спросил: "А где вы работаете?" Я ответил.
"Колоссально! - воскликнул горбоносый. - Программист! Нам нужен
именно программист. Слушайте, бросайте ваш институт и пошли к
нам!"* * *
Рассказываю: понадобилась мне эдакая мини-метеостанция с веб-мордой. Почитал по совету коллег. Заказал, припаял бут-джампер к программатору. Поставил Arduino IDE. Поставил коллекцию библиотек для ESP8266, поставил библиотеки для датчика DH11.
Скомпилил мигалку диодом, залил - работает, мигает. Скомпилил сканер вай-фай сетей, залил - работает, находит. Компилю тот единственный код, ради которого все затевалось. Мне отвечают:
Arduino: 1.8.7 (Windows 7), Плата:"Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
:0:9: error: expected identifier before numeric constant
sketch\ESP8266_Lib.h:39:7: note: in expansion of macro 'ESP8266'
class ESP8266 {
^
:0:9: error: expected unqualified-id before numeric constant
sketch\ESP8266_Lib.h:39:7: note: in expansion of macro 'ESP8266'
class ESP8266 {
^
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module.
* * * * * *
Блять, что это сейчас было? Папа, с кем ты сейчас разговаривал? Я техник, а не программист, я вообще ни черта не понял. Но код должен работать, он проверенный.
Что я делаю не так?
Добавлю, что библиотеки устанавливал по ссылкам из статьи (иначе он на первом инклюде отваливается, что логично)
/*
Тестировалось на Arduino IDE 1.8.5
Дата тестирования 25.10.2017г.
*/
#include "ESP8266WiFi.h" // Подключаем библиотеку ESP8266WiFi
#include "Adafruit_Sensor.h" // Adafruit_Sensor
#include "DHT.h" // Подключаем библиотеку DHT
const char* ssid = "Название Вашей сети"; // Название Вашей WiFi сети
const char* password = "Пароль от Вашей сети"; // Пароль от Вашей WiFi сети
#define DHTPIN 2 // Пин к которому подключен датчик
#define DHTTYPE DHT11 // Используемый датчик DHT 11
// #define DHTTYPE DHT21
// #define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE); // Инициализируем датчик
WiFiServer server(80); // Указываем порт Web-сервера
void setup()
{
Serial.begin(115200); // Скорость передачи 115200
delay(10); // Пауза 10 мкс
dht.begin(); // Инициализация DHT
Serial.println(""); // Печать пустой строки
Serial.print("Connecting to "); // Печать "Подключение к:"
Serial.println(ssid); // Печать "Название Вашей WiFi сети"
WiFi.begin(ssid, password); // Подключение к WiFi Сети
while (WiFi.status() != WL_CONNECTED) // Проверка подключения к WiFi сети
{
delay(500); // Пауза 500 мкс
Serial.print("."); // Печать "."
}
Serial.println(""); // Печать пустой строки
Serial.println("WiFi connected"); // Печать "Подключение к WiFi сети осуществлено"
server.begin(); // Запуск Web сервера
Serial.println("Web server running."); // Печать "Веб-сервер запущен"
delay(10000); // Пауза 10 000 мкс
Serial.println(WiFi.localIP()); // Печатаем полученный IP-адрес ESP
}
void loop()
{
WiFiClient client = server.available(); // Получаем данные, посылаемые клиентом
if (client){
Serial.println("New client"); // Отправка "Новый клиент"
boolean blank_line = true; // Создаем переменную, чтобы определить конец HTTP-запроса
while (client.connected()){ // Пока есть соединение с клиентом
if (client.available()){ // Если клиент активен
char c = client.read(); // Считываем посылаемую информацию в переменную "с"
if (c == '\n' && blank_line){ // Вывод HTML страницы
float t = dht.readTemperature(); // Запрос на считывание температуры
float h = dht.readHumidity();
client.println("HTTP/1.1 200 OK"); // Стандартный заголовок HTTP
client.println("Content-Type: text/html");
client.println("Connection: close"); // Соединение будет закрыто после завершения ответа
client.println("Refresh: 10"); // Автоматическое обновление каждые 10 сек
client.println();
client.println(""); // Веб-страница создается с использованием HTML
client.println("
"); // Открытие тега HTML client.println(""); client.println("");
client.println("
ESP8266 - Temperature & Humidity
"); client.println("Temperature = "); client.println(t); // Отображение температуры client.println("*C
"); client.println(""); client.println(""); client.println("Humidity = "); client.println(h); // Отображение влажности client.println("
"); client.println(""); client.println(""); // Закрытие тега HTML break; // Выход } if (c == '\n'){ // Если "с" равен символу новой строки blank_line = true; // Тогда начинаем новую строку } else if (c != '\r'){ // Если "с" не равен символу возврата курсора на начало строки blank_line = false; // Тогда получаем символ на текущей строке } } } client.stop(); // Закрытие соединения Serial.println("Client disconnected."); // Печать "Клиент отключен" } }|
|
</> |
Первый ремонт без стресса: как разобраться в натяжных потолках
Существующая модель жизни королевской семьи неустойчива.
Рубрика "слова"
Бубубу (любопытные факты, часть 55-я)
Фотосессия Dove Cameron (W Magazine, январь 2026)
Одного фото пост
Забытые слова: дефицит, вы здесь не стояли...
Батарея в тазу: как и зачем нужно греть автомобильный аккумулятор
Немного о бывших Йорках

