• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

blak soft

Member
доброго времени суток не подскажете как работать с радио-модулем FS1000A на lua
использую радио-модуль и NodeMCU Lua V2
пробовал считать через GPIO
Код:
do
pin=1 -- Нога для подключения (D1)
gpio.mode(pin,  gpio.INPUT)

function skan()
   f=gpio.read(pin)
   print( f)
end
-- вызываем функцию
skan()
end
постоянно выдает 0
и постоянно приходится перезапускать ,а как сделать чтобы он всегда был на прослушке
 

nikolz

Well-known member

blak soft

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

nikolz

Well-known member
я понимаю что вам с высоты своего опыта в программировании на lua такие вопросы кажутся глупыми что кажется прочитай и все поймешь, но я перечитал много материала
и уже в конец запутался .
я даже не представляю как делать опрос данного датчика через GPIO или 1 wire или через что-то другое, до этого писал только термометр, но там проще там собираешь прошивку с DS18B20
и то мне кажется проще потому-что мне подробно объяснили как оно работает
будьте более терпимы и снисходительны к новичкам
Вам не кажется, что иногда надо учиться?
Вы хотите чтобы вам лекцию написали?
А почитать книжки в инет уже лень?
Вы не только луа не знаете но и не знаете интерфейсов
-----------------
На форуме не учат основам микропроцессорных устройств. Для этого есть курсы и учебники.
--------------
Напишите конкретно, что у Вас не работает, а не желание узнать как это работает.
Т е пишите код проверяйте задавайте вопрос конкретно.
 

blak soft

Member
подскажите что сделал не так
подключил приемник
RF -- NodeMCU
gnd -- gnd
vcc -- 3.3
data -- D2
написал код
Код:
pin = 2                      -- GPIO5
mode = gpio.INT     -- режим прерывания

gpio.mode(pin, mode) -- инициализируем порт
local s=0                         --даем начальное значение
function callback(level, time)  -- callback функция
    s=s..level    --добавляем символ к строке
if string.len(s) ==30 then print(s, time) s=level end;  --выводим строку и время
end
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 вольт
 

nikolz

Well-known member
а что Вы ожидаете увидеть?
сигнал на data меняется
Вы это получаете и печатаете.
Что не так?
 

nikolz

Well-known member
это как я понимаю помехи потому что я никаких сигналов не посылаю и как среди них выловить свой?
попробуйте отключить FS1000A и подключить вместо него кнопку к земле и возможно подтяжку 5..10 ком к питанию.
проверьте будут ли помехи в этом случае.
 

blak soft

Member
подключил кнопку вместо приемника срабатывает только при нажатии на кнопку "левых" срабатываний нет
 

blak soft

Member
пробовал убрать помехи путем измерения напряжения на ноге А0 чтобы запоминала только превышения и понижение порога скачков напряжения ,но тогда не всегда реагирует на нужные сигналы
 

nikolz

Well-known member
пробовал убрать помехи путем измерения напряжения на ноге А0 чтобы запоминала только превышения и понижение порога скачков напряжения ,но тогда не всегда реагирует на нужные сигналы
тогда подробнее расскажите какой сигнал передаете и что в результате получаете.
 

blak soft

Member
код отслеживания по напряжению
Код:
adc.force_init_mode(adc.INIT_ADC)
local s="0"
function timer_do ()
if adc.read(0) >687 then s=s.."1" end
if adc.read(0) <688 then s=s.."0" end
if string.len(s) ==30 then print(s) s=" " end;
end
-- Start timer
tmr.register(0, 10, tmr.ALARM_AUTO, timer_do)
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
и т.д.
 

blak soft

Member
может я чего с антенной перемудрил в интернете вычитал что антенна должна быть 17 см взял медный провод 17см сечением 1,5 квадрата согнул пружинкой припаял на место антенны но на пульт реагирует только с расстояния 10 см относишь на метр ловить перестает
антена.jpg
 

sboganov

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

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

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

blak soft

Member
rfswitch как я понял только посылает а как ей работать с приемником?
 

nikolz

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


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

nikolz

Well-known member
про антенну
вот так примерно надо сделать или купить

по данным с али
эта антенна имеет усиление 2.2 дб
длиной 35 мм диаметром 5 мм
вот еще вариант


вот еще спецификация антенны с али:
диаметра проводника : 1,0 мм.
Длина антенны 22,0 мм,;
Диаметр витка антенны : 5 мм;
Количество витков: 25 поворотов (антенна для приемника)
Количество витков: 21 поворот (антенна для передатчика)
 
Сверху Снизу