Суть :
- Есть распбери 3 с последним образом
- Есть ардуина с езернет шилдом
- пару датчиков на ней, пытаюсь подружить ардуину и мажордомо.
- На Распбери установил москито (не уверен что нужно было, где-то вычитал , что этот брокер уже есть в дистрибутиве)
На виндовом компе поставил MQTT.fx клиент, коннекчусь к серверу мажордомо и отправляю паблики, мажордомо их видит все ок. С ардуины ничего не уходи, подскажите пожалуйста в чем проблема.
Вот текст скетча
Код: Выделить всё
#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>
#include <LiquidCrystal.h>
//Настройки для ЛСиДи
LiquidCrystal lcd(3, 4, 25, 24, 23, 22);
// Датчик MQ-2
int smokeA0 = A1;
int sensorThres = 400;
// Update these with values suitable for your network.
byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress ip(192,168,0,118);
IPAddress server(192,168,0,102);
// Callback function header
void callback(char* topic, byte* payload, unsigned int length);
EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
// Callback function
void callback(char* topic, byte* payload, unsigned int length) {
byte* p = (byte*)malloc(length);
// Copy the payload to the new buffer
memcpy(p,payload,length);
client.publish("/home/sensor/", p, length);
// Free the memory
free(p);
}
void setup()
{
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
lcd.print("Hi!");
// MQ-2
pinMode(smokeA0, INPUT);
Serial.begin(9600);
Ethernet.begin(mac, ip);
// client.connect("MQTT_FX_Client 3");
if (client.connect("MQTT_FX_Client 3"))
{
client.publish("/home/sensor/ 121212","222");
//client.subscribe("inTopic");
}
}
void loop()
{
char buf[64];
lcd.setCursor(0, 1);
//MQ-2 датчик
int analogSensor = analogRead(smokeA0);
static char char_gaz[10];
dtostrf(analogSensor,3,0,char_gaz);
Serial.print("Pin A0: "); // "Контакт A0: "
Serial.println(analogSensor);
// проверяем, не превышено ли пороговое значение:
client.connect("MQTT_FX_Client 3");
if (analogSensor > sensorThres)
{
lcd.print("Gaz ! Warning!");
}
else
{
lcd.print("Gaz normal");
}
delay(100);
if (client.connect("MQTT_FX_Client 3"))
{
client.publish("/home/sensor/","123");
delay(3000);
client.disconnect();
}
client.subscribe("inTopic");
client.loop();
}