Hi! I am trying to send inputs from my keypad using MQTT. I've tried to write the code,but i'm new in arduino and i dont get what im doing wrong. Im using nodemcu but writing with arduino ide. The sketch can be sent but afterwards in the serial monitor i keep getting "⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮".. can someone help me out?
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <Wire.h>
#include <Keypad.h>
#define wifi_ssid "MI 8"
#define wifi_password "umdoistrescinco"
#define mqtt_server "test.mosquitto.org"
#define mortos_topic "mortos"
WiFiClient espClient;
PubSubClient client(espClient);
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {D7, D6, D5, D4};
byte colPins[COLS] = {D3, D2, D1, D0};
Keypad keypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
char key;
byte keyAsANumber;
boolean entryComplete;
unsigned int numbpad = 0;
int count = 0;
int count2;
int carga = 1;
int carga2;
void setup(){
Serial.begin(115200);
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.print(wifi_ssid);
WiFi.begin(wifi_ssid, wifi_password);
while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.print("");
Serial.println("WiFi connected");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
client.setServer(mqtt_server, 1883);
}
void loop(){
entryComplete = false;
readKeypad();
if (entryComplete){
numbpad=0;
}
}
void readKeypad(){
key = keypad.getKey();
if (key == '#'){
if (numbpad == 0){
Serial.println("No input");
}
if (numbpad != 0){
Serial.println(" - Entry complete!");
count = count + numbpad;
Serial.println((String) "Carga: " + carga + " Mortos: " + count );
entryComplete = true;
return;
}
}
if (key >= '0' && key <= '9'){
keyAsANumber = key - 48;
numbpad = numbpad *10;
numbpad = numbpad + keyAsANumber;
Serial.print(keyAsANumber);
}
if (key == 'A') {
count += 1;
Serial.println((String) "Carga: " + carga + " Mortos: " + count ) ;
}
if ((key == 'B') && (count>0)) {
count -= 1;
Serial.println((String) "Carga: " + carga + " Mortos: " + count ) ;
}
if (key == 'C') {
carga2 = carga;
count2 = count;
carga += 1;
count = 0;
Serial.println((String) "Carga: " + carga + " Mortos: " + count ) ;
client.publish(mortos_topic, String(count2).c_str(), true);
}
if ((key == 'D') && (carga>1)) {
carga -= 1;
count = count2;
Serial.println((String) "Carga: " + carga + " Mortos: " + count ) ;
}
if (key == '*') {
carga = 1;
count = 0;
carga2 = 0;
count2= 0;
Serial.println((String) "Carga: " + carga + " Mortos: " + count) ;
}
}