ESP8266 - беспроводное всё
- Разновидности
- Настройка Arduino IDE
- Справочник по программированию
- Готовые проекты
ESP-01 с модулем реле
1 Настройка среды Arduino IDE
- Файл > Настройки > Доп.Ссылки для менеджера плат > http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Инструменты > плата > Менеджер плат > поиск > esp8266 by ESP8266 Community > Выбрать версию > Установка
- Выбор платы, настройка COM порта, скорости 115200 и тд.
Для ESP-01 требуется выбрать "Generic ESP8266 Module"
2 Аппаратное подключение
, где GPIO 0 должно быть притянуто к земле В РЕЖИМЕ ПРОШИВКИ, также используется в китайском модуле с реле.
GPIO 1 - TX и светодиод
Уровень сигналов - 3,3V
3 Простой тестовый код подёргать "ногой"
void setup() {
pinMode(0, OUTPUT);
}
void loop() {
digitalWrite(0, HIGH);
delay(1000);
digitalWrite(0, LOW);
delay(1000);
}
Wemos D1 mini
Более сложная плата, но более удобная для разработки, ввиду наличия USB-Serial адаптера
В arduino Ide после установки библиотеки esp8266 можно выбрать плату "LOLIN(WEMOS) D1 R2 & mini".
Для управление реле лучше использовать GPIO4,5,12,13,14, так как они не меняют состояние при запуске устройства
Отличается большим количеством GPIO и выведенным 2,5 UART, С пинов TX0/RX0 на пины TX2/RX2 можно переключаться следующим кодом:
Serial.begin(115200, SERIAL_8N1);
//your code
Serial.swap(); //change PINs
Serial.flush(); //clear serial buffer
Использовать TX0 1 можно инициализировав его:
Serial1.begin(115200, SERIAL_8N1);
Справочник по программированию
Переменные
Название | Альт. название | Вес | Диапазон | Особенность |
boolean | bool | 1 байт * | 0 или 1, true или false | Логический тип |
char | – | 1 байт | -128… 127 (AVR), 0.. 255 (esp) | Символ (код символа) из таблицы ASCII |
– | int8_t | 1 байт | -128… 127 | Целые числа |
byte | uint8_t | 1 байт | 0… 255 | Целые числа |
int ** | int16_t, short | 2 байта | -32 768… 32 767 | Целые числа. На ESP8266/ESP32 – 4 байта! См. ниже |
unsigned int ** | uint16_t, word | 2 байта | 0… 65 535 | Целые числа. На ESP8266/ESP32 – 4 байта! См. ниже |
long | int32_t | 4 байта | -2 147 483 648… 2 147 483 647 | Целые числа |
unsigned long | uint32_t | 4 байта | 0… 4 294 967 295 | Целые числа |
float | – | 4 байта | -3.4E+38… 3.4E+38 | Числа с плавающей точкой, точность: 6-7 знаков |
double | – | 4/8 байт | -1.7E+308.. 1.7E+308 | Для AVR то же самое, что float. На ESP и прочих 32-бит МК – 8 байт, точность – 15-16 знаков |
– | int64_t | 8 байт *** | -(2^64)/2… (2^64)/2-1 | Целые числа |
– | uint64_t | 8 байт *** | 2^64-1 | Целые числа |
(*) – да, bool занимает 1 байт (8 бит), так как это минимальная адресуемая ячейка памяти. Есть способы запаковать логические переменные в 1 бит, о них поговорим в другом уроке.
(**) – на ESP8266/ESP32 int и unsigned int занимает 4 байта, то есть является аналогами типов long и unsigned long!
(***) – Компилятор также поддерживает 64 битные числа. Стандартные Arduino-библиотеки с переменными этого типа не работают, поэтому можно использовать только в своём коде.
Массивы
Объявление
// указываем количество ячеек
byte myInts[6];
// двумерный массив, 6х10
byte myInts[6][10];
// указываем содержимое ячеек, компилятор сам посчитает их количество
int myPins[] = {2, 4, 8, 3, 6,};
// указываем и то и то, количество ячеек в [ ] должно совпадать с { } или быть больше!
float Sens[2] = {0.2, -8.5};
// храним символы
char message[6] = {'h', 'e', 'l', 'l', 'o'};
//Присвоение
myInts[0][1] = 50;
//Количество элементов
sizeof(myInts) / sizeof(myInts[0])
Источники:
- https://alexgyver.ru/