Кнопка для отправки 433mhz кода в эфир
- Войдите на сайт для отправки комментариев
Ср, 06/03/2019 - 13:37
Всем привет. Прошу не пинать. Перерыл все, но ответа не нашел.
Нужно в скетче прописать кнопку, что бы при ее нажатии посылался код.
Есть скетч (не мой), который каждые пять секунд посылает код; все работает, все открывается, но нужно что бы открывалось с кнопки.
Вот скеч где код посылается каждые 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");
}
Буду очень благодарен за помощь.
Точно все перерыли? Поройтесь еще здесь. Научитесь зажигать светодиод по кнопке. А там и в эфир можно будет отправлять. Принцип тот же.
Принцип тот же.
Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно
if (getValue.asInt() == 0) { SendCame4(629);так не работает
Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно
if (getValue.asInt() == 0) { SendCame4(629);так не работает
у вас проблема не в команде, а в считывании кнопки. А команду на посылку кода, насколько я вижу - вы вставили верно.
ВОРНИНГ - Обсуждение взлома сигналок вообще-то на форуме не приветсвуется
Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно
if (getValue.asInt() == 0) { SendCame4(629);так не работает
у вас проблема не в команде, а в считывании кнопки.
реле с этой кнопкой работает
ВОРНИНГ - Обсуждение взлома сигналок вообще-то на форуме не приветсвуется
я не для взлома, я для загородного дома, хочу с телефона открывать ворота, гараж и включать свет в гараже и на улице.
реле с этой кнопкой работает
тогда значит код неверный
Я пробовал этим кодом читать брелок для шлагбаума - код читается (вроде), но при повторной посылке шлагбаум не срабатывет.
Посольку у меня нет проблем с тем, как правильно отправлять код - тогда остается только считать что код считывается неверно.
тогда значит код неверный
По отдельности то все работает(((
По отдельности то все работает(((
удается открыть реальный шлагбаум, послав код с ардуино?
удается открыть реальный шлагбаум, послав код с ардуино?
Да, и ворота и гараж
выкладывайте код, где вы пытались отправлять код с кнопки - в первом сообщении этого нет
выкладывайте код, где вы пытались отправлять код с кнопки - в первом сообщении этого нет
дело не в том что при нажатии кнопки ни чего не происходит, а сама Arduino IDE ругалась на скечь, не компелировался.
А вот сейчас, стоп стоп стоп вроде скомпелировался, сейчас подключу приемнк и посмотрю приходит код или нет.
Позже отпишусь...
Все работает! Всем спасибо извините за беспокойство.
Есть еще один маленький вопросик: передатчик ОЧЕНЬ сильно греется даже когда ни чего не передает, дотронуться прям нельзя, это норм?
Есть еще один маленький вопросик: передатчик ОЧЕНЬ сильно греется даже когда ни чего не передает, дотронуться прям нельзя, это норм?
КОНЕЧНО НЕТ
КОНЕЧНО НЕТ
А в чем может быть причина? в самом модуле?