Кнопка для отправки 433mhz кода в эфир

acidrain85
Offline
Зарегистрирован: 06.03.2019

Всем привет. Прошу не пинать. Перерыл все, но ответа не нашел.

Нужно в скетче прописать кнопку, что бы при ее нажатии посылался код.

Есть скетч (не мой), который каждые пять секунд посылает код; все работает, все открывается, но нужно что бы открывалось с кнопки.

Вот скеч где код посылается каждые 5 секунд (там есть лишние строки):

#define txPin 3 //пин передатчика

void setup()
{
  pinMode(txPin, OUTPUT);
  Serial.begin(115200);  // тут поставьте свою скорость
  Serial.println("Came started");
}

 volatile static long lastCode = 0;
 
void loop() {
  // это раскомментить и вместо 3693 вписать свой код для шлагбаума
 SendCame4(629);
  delay(5000);
  return;
 
  // при получении кода выводим его в терминал
  if (lastCode > 0)
  {
    Serial.println(lastCode & 0xfff);
    lastCode = 0;
  }
}
void SendCame4(long Code) {
  for (int j = 0; j < 7; j++) { // посылку посылаем 4 раза подряд.
    // время стартового импульса 
    digitalWrite(txPin, HIGH);
    delayMicroseconds(320);
    digitalWrite(txPin, LOW);
    for (int i = 12; i > 0; i--) {
      byte b = bitRead(Code, i - 1); // побитово перебираем и посылаем код
      if (b) {
        digitalWrite(txPin, LOW); // 1
        delayMicroseconds(640);
        digitalWrite(txPin, HIGH);
        delayMicroseconds(320);
      }
      else {
        digitalWrite(txPin, LOW); // 0
        delayMicroseconds(320);
        digitalWrite(txPin, HIGH);
        delayMicroseconds(640);
      }
    }
    digitalWrite(txPin, LOW);
    delayMicroseconds(11520);
  }
}

А вот скеч куда надо прикрепить посылаемый сигнал:

/#define CAYENNE_DEBUG       // Uncomment to show debug messages
#define CAYENNE_PRINT Serial  // Comment this out to disable prints and save space
#include <CayenneMQTTESP8266Shield.h>

// WiFi network info.
char ssid[] = "BEIREL";
char wifiPassword[] = "7528843788";

// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "291ec810-488a-11e8-еп67-db14f0c2b326";
char password[] = "0e737ffa31e6de40bиак458fd082af113f3c1a4f";
char clientID[] = "41f85a80-3f66-11e9-7гп5-c15442ccb423";

// Set ESP8266 Serial object. In this example we use the Serial1 hardware serial which is available on boards like the Arduino Mega.
#define EspSerial Serial
#define VIRTUAL_CHANNEL 1
#define ACTUATOR_PIN 4 
#

ESP8266 wifi(&EspSerial);

void setup()
{
  Serial.begin(9600);
  pinMode(ACTUATOR_PIN, OUTPUT);
  pinMode(txPin, OUTPUT);
  delay(10);

  // Set ESP8266 baud rate
  EspSerial.begin(115200);
  delay(10);
  

  Cayenne.begin(username, password, clientID, wifi, ssid, wifiPassword);
}
volatile static long lastCode = 0;

void loop()
{
  Cayenne.loop();
}

// Default function for sending sensor data at intervals to Cayenne.
// You can also use functions for specific channels, e.g CAYENNE_OUT(1) for sending channel 1 data.
CAYENNE_OUT_DEFAULT()
{
  // Write data to Cayenne here. This example just sends the current uptime in milliseconds on virtual channel 0.
  Cayenne.virtualWrite(0, millis());
  // Some examples of other functions you can use to send data.
  //Cayenne.celsiusWrite(1, 22.0);
  //Cayenne.luxWrite(2, 700);
  //Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}  
CAYENNE_IN(VIRTUAL_CHANNEL)
{


  // Write value to turn the relay switch on or off. This code assumes you wire your relay as normally open.
  if (getValue.asInt() == 0) {
    digitalWrite(ACTUATOR_PIN,  LOW);
  }
  else {
    digitalWrite(ACTUATOR_PIN, HIGH);
  }
}


// Default function for processing actuator commands from the Cayenne Dashboard.
// You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{
  CAYENNE_LOG("Channel %u, value %s", request.channel, getValue.asString());
  //Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
}

Буду очень благодарен за помощь.

gfx125
Offline
Зарегистрирован: 27.05.2017

acidrain85 пишет:
Перерыл все, но ответа не нашел.

Точно все перерыли? Поройтесь еще здесь. Научитесь зажигать светодиод по кнопке. А там и в эфир можно будет отправлять. Принцип тот же.

acidrain85
Offline
Зарегистрирован: 06.03.2019

gfx125 пишет:

Принцип тот же.

Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно

if (getValue.asInt() == 0) {
    SendCame4(629);

так не работает

b707
Offline
Зарегистрирован: 26.05.2017

acidrain85 пишет:

Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно

if (getValue.asInt() == 0) {
    SendCame4(629);

так не работает

у вас проблема не в команде, а в считывании кнопки. А команду на посылку кода, насколько я вижу - вы вставили верно.

ВОРНИНГ - Обсуждение взлома сигналок вообще-то на форуме не приветсвуется

acidrain85
Offline
Зарегистрирован: 06.03.2019

b707 пишет:

acidrain85 пишет:

Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно

if (getValue.asInt() == 0) {
    SendCame4(629);

так не работает

у вас проблема не в команде, а в считывании кнопки. 

реле с этой кнопкой работает

b707 пишет:

ВОРНИНГ - Обсуждение взлома сигналок вообще-то на форуме не приветсвуется

я не для взлома, я для загородного дома, хочу с телефона открывать ворота, гараж и включать свет в гараже и на улице.

b707
Offline
Зарегистрирован: 26.05.2017

acidrain85 пишет:

реле с этой кнопкой работает

тогда значит код неверный

Я пробовал этим кодом читать брелок для шлагбаума - код читается (вроде), но при повторной посылке шлагбаум не срабатывет.

Посольку у меня нет проблем с тем, как правильно отправлять код - тогда остается только считать что код считывается неверно.

acidrain85
Offline
Зарегистрирован: 06.03.2019

b707 пишет:

тогда значит код неверный

По отдельности то все работает(((

 

b707
Offline
Зарегистрирован: 26.05.2017

acidrain85 пишет:

По отдельности то все работает(((

 

удается открыть реальный шлагбаум, послав код с ардуино?

acidrain85
Offline
Зарегистрирован: 06.03.2019

b707 пишет:

удается открыть реальный шлагбаум, послав код с ардуино?

Да, и ворота и гараж

b707
Offline
Зарегистрирован: 26.05.2017

выкладывайте код, где вы пытались отправлять код с кнопки - в первом сообщении этого нет

acidrain85
Offline
Зарегистрирован: 06.03.2019

b707 пишет:

выкладывайте код, где вы пытались отправлять код с кнопки - в первом сообщении этого нет

дело не в том что при нажатии кнопки ни чего не происходит, а сама Arduino IDE ругалась на скечь, не компелировался. 

А вот сейчас, стоп стоп стоп вроде скомпелировался, сейчас подключу приемнк и посмотрю приходит код или нет.

Позже отпишусь...

acidrain85
Offline
Зарегистрирован: 06.03.2019

Все работает! Всем спасибо извините за беспокойство.

Есть еще один маленький вопросик: передатчик ОЧЕНЬ сильно греется даже когда ни чего не передает, дотронуться прям нельзя, это норм?

b707
Offline
Зарегистрирован: 26.05.2017

acidrain85 пишет:

Есть еще один маленький вопросик: передатчик ОЧЕНЬ сильно греется даже когда ни чего не передает, дотронуться прям нельзя, это норм?

КОНЕЧНО НЕТ

acidrain85
Offline
Зарегистрирован: 06.03.2019

b707 пишет:

КОНЕЧНО НЕТ

А в чем может быть причина? в самом модуле?