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
Это надо, чтобы прошивки готовые были, не самому же делать