{{$productInfo.reviewAmount.average}} из 5
Для получения дополнительной информации о продукте нажмите https://drive.google.com/file/d/1L8ll-DeAC2SATBZn0-KbSaZsrinbnXkF/view.
Щелкните ссылки для более подробной информации: https://eyun.baidu.com/s/3hsiTNgg
Примечание: этот продукт не включает батарею.
В пакет включено:
2 х ESP32 OLED
2 x Line
4 x pin
2 x 433 м Пружина Антенна
Например Один:
(1) ЛоРаСендер
#включают
#включают
#включают
// GPIO5 - SCK SX1278
// GPIO19 - MISO SX1278
// GPIO27 - M0SI SX1278
// GPIO18 - CS SX1278
// GPIO14 - СБРОС SX1278
// GPIO26 - IRQ SX1278 (запрос прерывания)
# определить SS 18
# определить RST 14
#определить DI0 26
#define ДИАПАЗОН 433E6
Целый счетчик = 0;
недействительная установка () {
pinMode(25,ВЫХОД); //Отправить успешно, LED будет светиться 1 секунду
Серийный.начать(115200);
пока (!Серийный); //Если только базовая функция, необходимо подключиться к компьютеру
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
// Serial.println("Отправитель LoRa");
если (!LoRa.begin(BAND)) {
Serial.println("Запуск LoRa не удался!");
пока (1);
}
Serial.println ("LoRa Initial OK!");
}
пустой цикл () {
Serial.print("Отправка пакета: ");
Serial.println(счетчик);
// отправить пакет
LoRa.beginPacket();
LoRa.print ("привет");
LoRa.print(счетчик);
LoRa.endPacket();
счетчик++;
цифровая запись (25, ВЫСОКИЙ); // включаем LED (ВЫСОКИЙ уровень напряжения)
задержка(1000); // ждем секунду
цифровая запись (25, НИЗКИЙ); // выключаем LED, понижая напряжение
задержка(1000); // ждем секунду
задержка(3000);
}
Например два
(2)LoRaReceiver
#включают
#включают
// GPIO5 - SCK SX1278
// GPIO19 - MISO SX1278
// GPIO27 - M0SI SX1278
// GPIO18 - CS SX1278
// GPIO14 - СБРОС SX1278
// GPIO26 - IRQ SX1278 (запрос прерывания)
# определить SS 18
# определить RST 14
#определить DI0 26
#define ДИАПАЗОН 433E6
недействительная установка () {
Серийный.начать(115200);
пока (!Серийный); //если только базовая функция, необходимо подключиться к компьютеру
задержка(1000);
Serial.println("Приемник LoRa");
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
если (!LoRa.begin(BAND)) {
Serial.println("Запуск LoRa не удался!");
пока (1);
}
}
пустой цикл () {
// пытаемся разобрать пакет
int packetSize = LoRa.parsePacket();
если (размер пакета) {
// получил пакет
Serial.print ("Полученный пакет");
// чтение пакета
пока (LoRa.доступно()) {
Serial.print((char)LoRa.read());
}
// вывести RSSI пакета
Serial.print ("'с RSSI");
Serial.println(LoRa.packetRssi());
}
}
например три
(3)Обратный вызов LoRaReceiver
#включают
#включают
// GPIO5 - SCK SX1278
// GPIO19 - MISO SX1278
// GPIO27 - M0SI SX1278
// GPIO18 - CS SX1278
// GPIO14 - СБРОС SX1278
// GPIO26 - IRQ SX1278 (запрос прерывания)
# определить SS 18
# определить RST 14
#определить DI0 26
#define ДИАПАЗОН 433E6
недействительная установка () {
Серийный.начать(115200);
пока (!Серийный); //если только базовая функция, необходимо подключиться к компьютеру
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
Serial.println("Обратный вызов LoRa Приемник");
если (!LoRa.begin(BAND)) {
Serial.println("Запуск LoRa не удался!");
пока (1);
}
// регистрируем обратный вызов приема
LoRa.onReceive(onReceive);
// перевести радио в режим приема
ЛоРа.получить();
}
пустой цикл () {
// ничего не делать
}
void onReceive (int packetSize) {
// получил пакет
Serial.print ("Полученный пакет");
// чтение пакета
for (int я = 0; я < размер пакета; я ++) {
Serial.print((char)LoRa.read());
}
// вывести RSSI пакета
Serial.print ("'с RSSI");
Serial.println(LoRa.packetRssi());
}
?
например четыре
#включают // Требуется только для 1.6.5 и более ранних версий
#включают "SSD1306.h" // псевдоним для `#включают "SSD1306Wire.h"`
#включают "images.h"
// OLED-контакты к ESP32 0,96OLEDGPIO через это соединение:
//OLED_SDA -- GPIO4
//OLED_SCL -- GPIO15
//OLED_RST -- GPIO16
Дисплей SSD1306 (0x3c, 4, 15);
#define DEMO_DURATION 3000
typedef недействительным (*Demo) (недействительным);
интервал демонстрационный режим = 0;
счетчик целых чисел = 1;
недействительная установка () {
pinMode(16,ВЫХОД);
цифровая запись (16, НИЗКИЙ); // установить низкий уровень GPIO16 для сброса OLED
задержка(50);
цифровая запись (16, ВЫСОКИЙ); // во время работы OLED необходимо установить GPIO16 в высокий уровень
Серийный.начать(115200);
Серийный.println();
Серийный.println();
// Инициализация пользовательского интерфейса также запустит отображение.
дисплей.инит();
display.flipScreenVertically();
display.setFont (ArialMT_Plain_10);
}
недействительным DrawFontFaceDemo () {
// Демонстрация шрифта1
// создайте больше шрифтов на http://oleddisplay.squix.ch/
display.setTextAlignment (TEXT_ALIGN_LEFT);
display.setFont (ArialMT_Plain_10);
display.drawString(0, 0, "Привет, мир");
display.setFont (ArialMT_Plain_16);
display.drawString(0, 10, "Привет, мир");
display.setFont (ArialMT_Plain_24);
display.drawString(0, 26, "Привет, мир");
}
недействительным DrawTextFlowDemo() {
display.setFont (ArialMT_Plain_10);
display.setTextAlignment (TEXT_ALIGN_LEFT);
display.drawStringMaxWidth (0, 0, 128,
«Lorem ipsumn dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut Labore». );
}
недействительным DrawTextAlignmentDemo () {
// Демонстрация выравнивания текста
display.setFont (ArialMT_Plain_10);
// Координаты определяют левую начальную точку текста
display.setTextAlignment (TEXT_ALIGN_LEFT);
display.drawString(0, 10, "Выровнено по левому краю (0,10)");
// Координаты определяют центр текста
display.setTextAlignment (TEXT_ALIGN_CENTER);
display.drawString(64, 22, "Выровнено по центру (64,22)");
// Координаты определяют правый конец текста
display.setTextAlignment (TEXT_ALIGN_RIGHT);
display.drawString(128, 33, "Выровнено по правому краю (128,33)");
}
недействительным DrawRectDemo () {
// Рисуем пиксель в заданной позиции
для (целое я = 0; я < 10; я ++) {
display.setPixel (я, я);
display.setPixel (10 - я, я);
}
display.drawRect(12, 12, 20, 20);
// Заполняем прямоугольник
display.fillRect(14, 14, 17, 17);
// Рисуем линию горизонтально
display.drawHorizontalLine(0, 40, 20);
// Рисуем линию горизонтально
display.drawVerticalLine(40, 0, 20);
}
недействительным DrawCircleDemo () {
для (целое я = 1; я < 8; я ++) {
display.setColor(БЕЛЫЙ);
display.drawCircle(32, 32, i*3);
если (я % 2 == 0) {
display.setColor (ЧЕРНЫЙ);
}
display.fillCircle(96, 32, 32 - i* 3);
}
}
недействительным drawProgressBarDemo () {
int progress = (счетчик / 5) % 100;
// рисуем индикатор выполнения
display.drawProgressBar(0, 32, 120, 10, прогресс);
// рисуем процент как строку
display.setTextAlignment (TEXT_ALIGN_CENTER);
display.drawString(64, 15, String(прогресс) + "%");
}
недействительным DrawImageDemo () {
// см. http://blog.squix.org/2015/05/esp8266-nodemcu-how-to-create-xbm.html
// о том, как создавать файлы xbm
display.drawXbm(34, 14, WiFi_Logo_width, WiFi_Logo_height, WiFi_Logo_bits);
}
Демо демо[] = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof(демо) / sizeof(демо));
долгое времяSinceLastModeSwitch = 0;
пустой цикл () {
// очистить дисплей
дисплей.очистить();
// рисуем текущий демонстрационный метод
демо[деморежим]();
display.setTextAlignment (TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(миллис()));
// записываем буфер на дисплей
дисплей.дисплей();
if (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength;
timeSinceLastModeSwitch = миллис();
}
счетчик++;
задержка (10);
}
Метод(ы) доставки | Срока доставки | Информация о треке |
---|