Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Нужна помощь как работать с радиомодулем FS1000A на lua

Тема в разделе "Раздел для начинающих", создана пользователем blak soft, 31 май 2019.

  1. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    доброго времени суток не подскажете как работать с радио-модулем FS1000A на lua
    использую радио-модуль и NodeMCU Lua V2
    пробовал считать через GPIO
    Код (Lua):
    1. do
    2. pin=1 -- Нога для подключения (D1)
    3. gpio.mode(pin,  gpio.INPUT)
    4.  
    5. function skan()
    6.    f=gpio.read(pin)
    7.    print( f)
    8. end
    9. -- вызываем функцию
    10. skan()
    11. end
    постоянно выдает 0
    и постоянно приходится перезапускать ,а как сделать чтобы он всегда был на прослушке
     
  2. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.502
    Симпатии:
    174
    blak soft, D1 это GPIO5 поищите, как к нему обращаться в луа.
    Существуют циклы...
     
  3. nikolz

    nikolz Гуру

    Сообщения:
    4.136
    Симпатии:
    431
  4. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    я понимаю что вам с высоты своего опыта в программировании на lua такие вопросы кажутся глупыми что кажется прочитай и все поймешь, но я перечитал много материала
    и уже в конец запутался .
    я даже не представляю как делать опрос данного датчика через GPIO или 1 wire или через что-то другое, до этого писал только термометр, но там проще там собираешь прошивку с DS18B20
    и то мне кажется проще потому-что мне подробно объяснили как оно работает
    будьте более терпимы и снисходительны к новичкам
     
  5. nikolz

    nikolz Гуру

    Сообщения:
    4.136
    Симпатии:
    431
    Вам не кажется, что иногда надо учиться?
    Вы хотите чтобы вам лекцию написали?
    А почитать книжки в инет уже лень?
    Вы не только луа не знаете но и не знаете интерфейсов
    -----------------
    На форуме не учат основам микропроцессорных устройств. Для этого есть курсы и учебники.
    --------------
    Напишите конкретно, что у Вас не работает, а не желание узнать как это работает.
    Т е пишите код проверяйте задавайте вопрос конкретно.
     
    CodeNameHawk нравится это.
  6. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    подскажите что сделал не так
    подключил приемник
    RF -- NodeMCU
    gnd -- gnd
    vcc -- 3.3
    data -- D2
    написал код
    Код (Lua):
    1. pin = 2                      -- GPIO5
    2. mode = gpio.INT     -- режим прерывания
    3.  
    4. gpio.mode(pin, mode) -- инициализируем порт
    5. local s=0                         --даем начальное значение
    6. function callback(level, time)  -- callback функция
    7.     s=s..level    --добавляем символ к строке
    8. if string.len(s) ==30 then print(s, time) s=level end;  --выводим строку и время
    9. end
    10. gpio.trig(pin, "both", callback)  -- подписываемся на событие и указываем типы событий
    выводит вот что
    Раскрыть Спойлер

    101001010111001101010100111010 4256261
    001101010101000101101010010010 4315930
    001010100100010100001010111011 4393477
    101010110100100101010100111000 4440442
    000101011010001011101010001010 4492757
    011010010101010100101010101110 4551281
    011010100010010101101000110110 4600503
    001010110110011001010101001100 4650644
    001101101010100101110101001010 4709513
    011010110000100001010101101110 4755277
    001010101100100010111001100001 4805254
    111010101101010101001010110111 4876397
    111101110110101010101101100101 4931671
    101010101010111010101100101010 4984701
    и Т.Д.

    как-будто постоянно ловит какие-то сигналы
    подключал вольтметр к data и gnd показания прыгают от 0,8 до 1,9 вольт
     
  7. nikolz

    nikolz Гуру

    Сообщения:
    4.136
    Симпатии:
    431
    а что Вы ожидаете увидеть?
    сигнал на data меняется
    Вы это получаете и печатаете.
    Что не так?
     
  8. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    это как я понимаю помехи потому что я никаких сигналов не посылаю и как среди них выловить свой?
     
  9. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    это как я понимаю помехи потому что я никаких сигналов не посылаю и как среди них выловить свой?
     
  10. nikolz

    nikolz Гуру

    Сообщения:
    4.136
    Симпатии:
    431
    попробуйте отключить FS1000A и подключить вместо него кнопку к земле и возможно подтяжку 5..10 ком к питанию.
    проверьте будут ли помехи в этом случае.
     
  11. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    подключил кнопку вместо приемника срабатывает только при нажатии на кнопку "левых" срабатываний нет
     
  12. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    пробовал убрать помехи путем измерения напряжения на ноге А0 чтобы запоминала только превышения и понижение порога скачков напряжения ,но тогда не всегда реагирует на нужные сигналы
     
  13. nikolz

    nikolz Гуру

    Сообщения:
    4.136
    Симпатии:
    431
    тогда подробнее расскажите какой сигнал передаете и что в результате получаете.
     
  14. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    код отслеживания по напряжению
    Код (Lua):
    1. adc.force_init_mode(adc.INIT_ADC)
    2. local s="0"
    3. function timer_do ()
    4. if adc.read(0) >687 then s=s.."1" end
    5. if adc.read(0) <688 then s=s.."0" end
    6. if string.len(s) ==30 then print(s) s=" " end;
    7. end
    8. -- Start timer
    9. tmr.register(0, 10, tmr.ALARM_AUTO, timer_do)
    10. tmr.start(0)
    результат при нажатии на одну и ту же кнопку пульта от люстры
    Раскрыть Спойлер

    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000010010100
    10000100110010000001000010000
    01000010110100000010000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000001000011
    01101101101010010100000100101
    00100001000000001000001001000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000000000000000000000000000
    00000011011001001000010000000
    00000000000000000000000000000
    и т.д.
     
  15. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    может я чего с антенной перемудрил в интернете вычитал что антенна должна быть 17 см взял медный провод 17см сечением 1,5 квадрата согнул пружинкой припаял на место антенны но на пульт реагирует только с расстояния 10 см относишь на метр ловить перестает
    Раскрыть Спойлер

    антена.jpg
     
  16. sboganov

    sboganov Читатель

    Сообщения:
    20
    Симпатии:
    5
    DATA можно подключать на цифровой пин - там стоит детектор типа есть-нет сигнала и промежуточные значения никакого смысла не имеют.

    И да - эфир достаточно шумный - поэтому полно помех.

    Если надо просто принимать-посылать коды от пульта - то лучше использовать библиотеку rcswitch.
     
  17. blak soft

    blak soft Новичок

    Сообщения:
    30
    Симпатии:
    0
    rfswitch как я понял только посылает а как ей работать с приемником?
     
  18. nikolz

    nikolz Гуру

    Сообщения:
    4.136
    Симпатии:
    431
    начнем разбираться
    --------------------------
    вот тут много букв про это
    https://esp8266.ru/forum/threads/podruzhit-esp8266-i-priemnik-433mgc.2840/page-2
    ------------------------
    вот здесь к дурине подключение и скетч простейший
    Ардуино: радиомодуль на 433 МГц | Класс робототехники
    ======================================
    это схема вашего приемника
    [​IMG]

    питается от 5 вольт
    с дуриной согласуется
    с ESP8266 возможно лучше добавить делитель на выход
    но хорошо бы сначала посмотреть сигнал на осциллографе
    ------------------------
    далее Вам надо посмотереть формат данных от вашего пульта
    -------------------------
    обычно 0 и 1 передается импульсами различной длительности
    если так то измерять уровни ничего не даст.
    надо обнаруживать фронты и измерять время между ними.
    ---------------------
    например здесь описан пульт для ворот
    Управление шлагбаумом с помощью Arduino UNO и радиопередатчика 433 МГц
    ----------------------
     
  19. nikolz

    nikolz Гуру

    Сообщения:
    4.136
    Симпатии:
    431
    про антенну
    вот так примерно надо сделать или купить
    [​IMG]
    по данным с али
    эта антенна имеет усиление 2.2 дб
    длиной 35 мм диаметром 5 мм
    вот еще вариант
    [​IMG]

    вот еще спецификация антенны с али:
    диаметра проводника : 1,0 мм.
    Длина антенны 22,0 мм,;
    Диаметр витка антенны : 5 мм;
    Количество витков: 25 поворотов (антенна для приемника)
    Количество витков: 21 поворот (антенна для передатчика)
     
    blak soft нравится это.
  20. nikolz

    nikolz Гуру

    Сообщения:
    4.136
    Симпатии:
    431

Поделиться этой страницей