Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ESP8266WiFi.h>
- #include <EEPROM.h>
- void writeString(char add,String data);
- String read_String(char add);
- unsigned long lastSend;
- WiFiClient espClient;
- PubSubClient client(espClient);
- char buffer[100] = {0};
- char message_buff[100];
- String msgString = "";
- void setup() {
- Serial.begin(115200);
- EEPROM.begin(512);
- client.setServer(mqttServer, mqttPort);
- client.setCallback(callback);
- pinMode(LED_BUILTIN, OUTPUT);
- digitalWrite(LED_BUILTIN, HIGH);
- setup_wifi();
- }
- void setup_wifi() {
- delay(10);
- Serial.printf("Connecting to %s ", ssid);
- WiFi.begin(ssid, password);
- // WiFi.config(ip, gateway, subnet, dns1, dns2);
- while (WiFi.status() != WL_CONNECTED)
- {
- Serial.print(".");
- delay(5000);
- }
- if(client.connect("ESP8266Client", mqttUser, mqttPassword )){
- Serial.println("connected");
- Serial.println(WiFi.localIP());
- randomSeed(micros());
- }else{
- Serial.print("failed with state ");
- Serial.print(client.state());
- delay(2000);
- }
- }
- void loop()
- {
- checkTime();
- // send_mqtt ();
- String recivedData1;
- String recivedData2;
- recivedData1 = read_String(11);
- recivedData2 = read_String(10);
- Serial.println("Read Data1:");
- Serial.println(recivedData1);
- Serial.println("Read data2:");
- Serial.println(recivedData2);
- client.loop();
- if (!client.connected())
- {
- reconnect();
- }
- if (WiFi.status() != WL_CONNECTED)
- {
- setup_wifi();
- }
- client.subscribe("IOT/HOME/LAMP");
- }
- void writeString(char add,String data)
- {
- int _size = data.length();
- int i;
- for(i=0;i<_size;i++)
- {
- EEPROM.write(add+i,data[i]);
- }
- EEPROM.write(add+_size,'\0'); //Add termination null character for String Data
- EEPROM.commit();
- }
- String read_String(char add)
- {
- int i;
- char data[100]; //Max 100 Bytes
- int len=0;
- unsigned char k;
- k=EEPROM.read(add);
- while(k != '\0' && len<500) //Read until null character
- {
- k=EEPROM.read(add+len);
- data[len]=k;
- len++;
- }
- data[len]='\0';
- return String(data);
- }
- void callback(char* topic, byte* payload, unsigned int length) {
- Serial.print("Message arrived [");
- Serial.print(topic);
- Serial.print("] ");
- int i = 0;
- for (int i=0;i<length;i++) {
- char receivedChar = (char)payload[i];
- String msg = toString(payload, length);
- message_buff[i] = payload[i];
- Serial.println("dari msg" + msg);
- String subs = msg.substring(0,1);
- //Serial.println(subs);
- if(subs == "1"){
- Serial.println("write1");
- writeString(11, msg);
- return;
- }
- // else if(subs == "2"){
- // Serial.println("write2");
- // writeString(10, msg);
- //}
- }
- Serial.println();
- message_buff[i] = '\0';
- msgString = String(message_buff);
- // Serial.println(msgString);
- }
- String toString(byte* payload, unsigned int length) {
- int i = 0;
- char buff[length + 1];
- for (i = 0; i < length; i++) {
- buff[i] = payload[i];
- }
- buff[i] = '\0';
- String msg = String(buff);
- return msg;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement