Ruslan
Фотку шланга в студию
Max
Камраден, а есть ли плата, на которой сразу было бы ESP32 + GSM/GPRS/LTE + CAN в куче или опять колхозить?
Max
Не, я встречал на Тинди самопал, но вот прям готовое даже на уровне борды - либо CAN, либо модем.
Max
Мне казалось, что проще взять с модемом и приколхозить кан, там на чипе есть, нужна только микруха интерфейса. Но да, LTE лучше, наверное.
Евгений
https://www.cnx-software.com/2022/06/27/esp32-board-with-150mbps-4g-lte-modem-also-supports-rs485-can-bus-and-relay-expansion/
Евгений
=)
Max
Да, лилиго наше все))
Max
Ну и cnx-software полезно читать, да
Max
https://www.drive2.ru/l/534950890893739117/
Max
Круть, чо.
Ruslan
Будем посмотреть...
Y
Товарищи, кто может подсказать: есть китайский пульт от люстры, частота 2.4ггц. Чем можно послушать сигнал кнопки и повторить? Для 433мгц вопросов не возникло, там все понятно. Для 2.4Ггц есть комплект приемник-передатчик?
Indr1x
RF Hack. Вопрос не в частоте, а в протоколе скорее. Вот от этого и плясать. Для 433 вопросов не возникло потому что подавляющее большинство устройств ook. Шаг влево вправо и даже на 433 будет ни так очевидно
Indr1x
Это пульт чахлый, а технологии не из прошлого века
Indr1x
Просто ты сам пораскинь мозгами, ты не зная протокола и даже не попытавшись вскрыть пульт(хотя это вообще первое что нужно было сделать перед тем как бежать писать) , спрашиваешь какой модуль для ардуины купить на Али. Да ещё хочешь записать это. Вариант один,в данном случае. Копировать сырые данные как есть и самое простое это SDR приемник
Y
Просто ты сам пораскинь мозгами, ты не зная протокола и даже не попытавшись вскрыть пульт(хотя это вообще первое что нужно было сделать перед тем как бежать писать) , спрашиваешь какой модуль для ардуины купить на Али. Да ещё хочешь записать это. Вариант один,в данном случае. Копировать сырые данные как есть и самое простое это SDR приемник
Ты просто сам пораскинь мозгами, предложить человеку купить sdr за 10к и тыкнуть в sdr sharp чтобы скопировать кнопку с пульта за 300р. Из пушки по воробьям. Это первое что нужно было сделать перед тем как бежать и писать такой ответ писать)
Indr1x
Где я тебе предложил его купить?
Y
Где я тебе предложил его купить?
Ну логично же, у каждого сейчас в ящике sdrка валяется
Indr1x
Я откуда знаю что у тебя валяется?
Y
Я откуда знаю что у тебя валяется?
Понятно, спасибо за совет)
Руслан
Всем КУ делаю проект на ESP32 и столкнулся с проблемой. Не могу раздельно завести дисплей и радиомодуль на разные шины SPI. может ктото поделится мануалом под Ардуино иде. Обрыл весь нет, толком ни где ничего нет. Везде арианты только с одним интерфейсом
Quiero vivir en España
На днях завёл разговор про EEPROM, который вовсе не EEPROM, а Flash. А тут на Али продают платы без flash https://aliexpress.ru/item/1005004609057820.html?sku_id=12000033128336036&spm=a2g2w.productlist.search_results.9.58704aa6KZ3nAM
Quiero vivir en España
Вопрос: куда в них можно будет записать 1 байт? Есть ли что-то энергонезависимое?
Quiero vivir en España
Наверняка есть способы.
Quiero vivir en España
external eeprom, не?
Ради одного байта? Я о том, что есть способ без внешних устройств что-то сохранить.
Циклов овер дохуя. Но для одного байта раз в день пиши на флеш, пох
Quiero vivir en España
https://aliexpress.ru/item/1005004390579733.html Вот FRAM, на 32 кбайта
Руслан
Про арудино и не знаю, а на idf все работает нормально.
IDf полный костыль. Ни в одной среде не смог адекватно запустить
IDf полный костыль. Ни в одной среде не смог адекватно запустить
Печально, толкьо почему основная часть программистов здесь пишет как раз на идф и не задает глупых вопросов? А у ардуинщиков даже проблема ИДФ запустить
Andy
IDf полный костыль. Ни в одной среде не смог адекватно запустить
Соболезную, но пока никакой конкретной информации от вас нет.
Денис
Вопрос: куда в них можно будет записать 1 байт? Есть ли что-то энергонезависимое?
там внутренняя память, (может быть даже чип слит с spi flash (тоесть никакой программной разницы)) если будет разница то думаю ее давно кодово описали. вообще раньше был esp8255 и там таже тема (память внутри)
Руслан
Соболезную, но пока никакой конкретной информации от вас нет.
Конкретика: на VSPI висить дисплей - работает. На HSPI вешаю радио модуль. Как только это делаю, VSPI отваливается и все перестает работать
Andy
https://habr.com/ru/articles/460221/
Indr1x
Всем КУ делаю проект на ESP32 и столкнулся с проблемой. Не могу раздельно завести дисплей и радиомодуль на разные шины SPI. может ктото поделится мануалом под Ардуино иде. Обрыл весь нет, толком ни где ничего нет. Везде арианты только с одним интерфейсом
Потому что библиотека в ардуине не предполагает работу с несколькими шинами из коробки. И дёргает шину которую успела инициализировать первой. Нужно создавать вторую копию классов в библиотеке для работы с другой шиной. Незнаю где найти мануалы, это из учебников по программированию фактически.
Руслан
Ну показывай как ты инит делаешь
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_ST7735.h> // Hardware-specific library for ST7735 #include <SPI.h> #include "Wire.h" #include <LoRa.h> //---------------------------------------------------------------- #define TFT_CS 15 #define TFT_RST 2 #define TFT_DC 4 #define TFT_MOSI 23 #define TFT_SCLK 18 Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); //----------------------------------------------------------------- #define LORA_MISO 12 #define LORA_MOSI 13 #define LORA_CLK 14 #define LORA_NSS 27 #define LORA_RST 26 #define LORA_D0 32 SPIClass * hspi = NULL; //------------------------------------------------------------------ byte a; void taskCore0 (void *parameter) { while (true) { Wire.requestFrom(0x20, 1); while (Wire.available()) { a = Wire.read(); } LoRa.beginPacket(); LoRa.print(F("Sending packet: ")); LoRa.print(a); LoRa.endPacket(); } } void taskCore1 (void *parameter) { while (true) { //SPI.begin(18, 19, 23, 22); tft.setCursor(0, 0); tft.setTextColor(ST77XX_WHITE); tft.setTextWrap(true); tft.print(a, BIN); delay(500); tft.fillScreen(ST77XX_BLACK); } } void setup(void) { Serial.begin(9600); Wire.begin(); //-------------------------------------------- //------------------------------------------------- SPI.begin(); tft.initR(INITR_BLACKTAB); tft.fillScreen(ST77XX_BLACK); tft.setRotation(1); //------------------------------------------------- SPIClass hspi(HSPI); hspi.begin(LORA_CLK, LORA_MISO, LORA_MOSI, LORA_NSS); LoRa.setSPI(hspi); LoRa.setPins(LORA_NSS, LORA_RST, LORA_D0); LoRa.begin(868E6); xTaskCreatePinnedToCore( taskCore0, / "taskCore0", 10000, NULL, 1, NULL, 0 ); xTaskCreatePinnedToCore( taskCore1, "taskCore1", 10000, NULL, 1, NULL, 1 ); //------------------------------------------------ } void loop() { }
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_ST7735.h> // Hardware-specific library for ST7735 #include <SPI.h> #include "Wire.h" #include <LoRa.h> //---------------------------------------------------------------- #define TFT_CS 15 #define TFT_RST 2 #define TFT_DC 4 #define TFT_MOSI 23 #define TFT_SCLK 18 Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); //----------------------------------------------------------------- #define LORA_MISO 12 #define LORA_MOSI 13 #define LORA_CLK 14 #define LORA_NSS 27 #define LORA_RST 26 #define LORA_D0 32 SPIClass * hspi = NULL; //------------------------------------------------------------------ byte a; void taskCore0 (void *parameter) { while (true) { Wire.requestFrom(0x20, 1); while (Wire.available()) { a = Wire.read(); } LoRa.beginPacket(); LoRa.print(F("Sending packet: ")); LoRa.print(a); LoRa.endPacket(); } } void taskCore1 (void *parameter) { while (true) { //SPI.begin(18, 19, 23, 22); tft.setCursor(0, 0); tft.setTextColor(ST77XX_WHITE); tft.setTextWrap(true); tft.print(a, BIN); delay(500); tft.fillScreen(ST77XX_BLACK); } } void setup(void) { Serial.begin(9600); Wire.begin(); //-------------------------------------------- //------------------------------------------------- SPI.begin(); tft.initR(INITR_BLACKTAB); tft.fillScreen(ST77XX_BLACK); tft.setRotation(1); //------------------------------------------------- SPIClass hspi(HSPI); hspi.begin(LORA_CLK, LORA_MISO, LORA_MOSI, LORA_NSS); LoRa.setSPI(hspi); LoRa.setPins(LORA_NSS, LORA_RST, LORA_D0); LoRa.begin(868E6); xTaskCreatePinnedToCore( taskCore0, / "taskCore0", 10000, NULL, 1, NULL, 0 ); xTaskCreatePinnedToCore( taskCore1, "taskCore1", 10000, NULL, 1, NULL, 1 ); //------------------------------------------------ } void loop() { }
На пасту запихни лучше
SSR
О боже
?
Правила чата в закрепе для кого? Сюдя пихать простыни текста не надо
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_ST7735.h> // Hardware-specific library for ST7735 #include <SPI.h> #include "Wire.h" #include <LoRa.h> //---------------------------------------------------------------- #define TFT_CS 15 #define TFT_RST 2 #define TFT_DC 4 #define TFT_MOSI 23 #define TFT_SCLK 18 Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); //----------------------------------------------------------------- #define LORA_MISO 12 #define LORA_MOSI 13 #define LORA_CLK 14 #define LORA_NSS 27 #define LORA_RST 26 #define LORA_D0 32 SPIClass * hspi = NULL; //------------------------------------------------------------------ byte a; void taskCore0 (void *parameter) { while (true) { Wire.requestFrom(0x20, 1); while (Wire.available()) { a = Wire.read(); } LoRa.beginPacket(); LoRa.print(F("Sending packet: ")); LoRa.print(a); LoRa.endPacket(); } } void taskCore1 (void *parameter) { while (true) { //SPI.begin(18, 19, 23, 22); tft.setCursor(0, 0); tft.setTextColor(ST77XX_WHITE); tft.setTextWrap(true); tft.print(a, BIN); delay(500); tft.fillScreen(ST77XX_BLACK); } } void setup(void) { Serial.begin(9600); Wire.begin(); //-------------------------------------------- //------------------------------------------------- SPI.begin(); tft.initR(INITR_BLACKTAB); tft.fillScreen(ST77XX_BLACK); tft.setRotation(1); //------------------------------------------------- SPIClass hspi(HSPI); hspi.begin(LORA_CLK, LORA_MISO, LORA_MOSI, LORA_NSS); LoRa.setSPI(hspi); LoRa.setPins(LORA_NSS, LORA_RST, LORA_D0); LoRa.begin(868E6); xTaskCreatePinnedToCore( taskCore0, / "taskCore0", 10000, NULL, 1, NULL, 0 ); xTaskCreatePinnedToCore( taskCore1, "taskCore1", 10000, NULL, 1, NULL, 1 ); //------------------------------------------------ } void loop() { }
У тебя кстати SPI.begin(); и SPIClass hspi(HSPI); инитят одну и ту же HSPI шину.
Ясен хуй оно отвалится. Ибо HSPI по дефолту
Замени во втором HSPI на VSPI например
Руслан
Блядь..... вот чуял. Но мануала нормального нигде найти не могу
Блядь..... вот чуял. Но мануала нормального нигде найти не могу
Есть доступный исходный код, который можно прочитать
На каждый пердеж увы готовых мануалов не придумаешь. надо уметь анализировать и читать документации/исходный код
Руслан
Хотя как? Spi.begin по умолчанию запускает VSPI. HSPI запускаю отдельно. Или тупая дуина не понимает этого?
Хотя как? Spi.begin по умолчанию запускает VSPI. HSPI запускаю отдельно. Или тупая дуина не понимает этого?
vspi = new SPIClass(VSPI); hspi = new SPIClass(HSPI); Ну сделай так господи, там даже пример в ардуине есть. Называется spi multiple bussess
И причем тут "тупая ардина" ?
Хотя как? Spi.begin по умолчанию запускает VSPI. HSPI запускаю отдельно. Или тупая дуина не понимает этого?
SPI которая переменная по умолчанию, имеет в конструкторе как раз HSPI по умолчанию.
SPIClass(uint8_t spi_bus=HSPI); extern SPIClass SPI;
Хотя как? Spi.begin по умолчанию запускает VSPI. HSPI запускаю отдельно. Или тупая дуина не понимает этого?
А так же в begin лучше впиши фактические пины для каждой шины, а не просто бегин
Ruslan
Электроника — хобби состоятельных пацанов )))
Y
Нищий?
Ну если ты готов выкинуть 10к на железку, которая поможет привязать кнопку на пульте, то пожалуйста.
SSR
А еще можно не ебать голову, а разобрать люстру и присрать туда какой нибудь алишный модуль с фиксированными кодами на 433 мгц.
Можно выкинуть штатную схемотехнику и присрать туда есп32
SSR
Можно выкинуть штатную схемотехнику и присрать туда есп32
Это надо, чтобы прошивки готовые были, не самому же делать