#include <WiFi.h>
#include <ThingSpeak.h>
#include <HX711.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int DT_PIN = 15;
const int SCK_PIN = 2 ;
const float calibration_factor = 100;
HX711 scale;
long units;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
unsigned long myChannelNumber = 2615937;
const char * myWriteAPIKey = "XRUX9HS106ZYPKNL";
int statusCode;
void setup()
{
Serial.begin(115200);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
scale.begin(DT_PIN,SCK_PIN);
scale.set_scale(calibration_factor);
scale.tare();
lcd.init();
lcd.backlight();
}
void loop()
{
units = scale.get_units();
if(WiFi.status() != WL_CONNECTED)
{
Serial.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(".");
delay(1000);
}
Serial.println("\nConnected.");
}
float weight = scale.get_units();
Serial.print("Weight: ");
lcd.setCursor(2,0);
lcd.print("weight :");
lcd.print(weight);
lcd.print(" kg");
Serial.print(weight);
Serial.println(" kg");
delay(1000);
ThingSpeak.setField(1,weight);
statusCode = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
if(statusCode )
{
Serial.println("Channel update successful.");
}
else
{
Serial.println("Problem Writing data. HTTP error code :" +String(statusCode));
}
delay(1000);
}