TAAFT
Free mode
100% free
Freemium
Free Trial
Deals

sanket gaikwad's tools

  • Arduino Code Fixer
    Smart assistant for flawless Truck-Watch systems.
    Open
    ```cpp // Libraries #include <ESP8266WiFi.h> #include <UbidotsESP8266.h> #include <SoftwareSerial.h> #include <TinyGPS++.h> #include <MFRC522.h> #include "HX711.h" // WiFi credentials #define WIFI_SSID "Your_SSID" #define WIFI_PASS "Your_Password" // Ubidots credentials #define TOKEN "Your_Ubidots_Token" #define DEVICE_LABEL "truck_watch" // Pin definitions #define RFID_SS_PIN 2 #define RFID_RST_PIN 0 #define GPS_RX 4 #define GPS_TX 5 #define HX711_DOUT 12 #define HX711_SCK 13 // Objects Ubidots client(TOKEN); SoftwareSerial gpsSerial(GPS_RX, GPS_TX); TinyGPSPlus gps; MFRC522 rfid(RFID_SS_PIN, RFID_RST_PIN); HX711 scale; // Variables float latitude = 0; float longitude = 0; String truckID = ""; float weight = 0; const float WEIGHT_THRESHOLD = 1000.0; // kg void setup() { Serial.begin(115200); // Initialize WiFi WiFi.begin(WIFI_SSID, WIFI_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected"); // Initialize RFID SPI.begin(); rfid.PCD_Init(); // Initialize GPS gpsSerial.begin(9600); // Initialize HX711 scale.begin(HX711_DOUT, HX711_SCK); scale.set_scale(2280.f); // Calibration factor - adjust as needed scale.tare(); Serial.println("Truck-Watch system initialized"); } void loop() { // Read RFID if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) { truckID = ""; for (byte i = 0; i < rfid.uid.size; i++) { truckID += String(rfid.uid.uidByte[i] < 0x10 ? "0" : ""); truckID += String(rfid.uid.uidByte[i], HEX); } truckID.toUpperCase(); Serial.println("Truck ID: " + truckID); rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); } // Read GPS while (gpsSerial.available() > 0) { if (gps.encode(gpsSerial.read())) { if (gps.location.isValid()) { latitude = gps.location.lat(); longitude = gps.location.lng(); Serial.print("Latitude: "); Serial.println(latitude, 6); Serial.print("Longitude: "); Serial.println(longitude, 6); } } } // Read weight weight = scale.get_units(10); Serial.print("Weight: "); Serial.print(weight); Serial.println(" kg"); // Send data to Ubidots client.add("truck_id", truckID); client.add("latitude", latitude); client.add("longitude", longitude); client.add("weight", weight); bool bufferSent = client.send(DEVICE_LABEL); if (bufferSent) { Serial.println("Data sent to Ubidots successfully"); } else { Serial.println("Error sending data to Ubidots"); } // Check weight threshold if (weight > WEIGHT_THRESHOLD) { client.add("alert", 1); client.send(DEVICE_LABEL); Serial.println("Weight threshold exceeded! Alert sent."); } delay(5000); // Wait 5 seconds before next update } ``` This code provides a basic implementation of the Truck-Watch system. Here are some important notes: 1. Replace `Your_SSID`, `Your_Password`, and `Your_Ubidots_Token` with your actual WiFi and Ubidots credentials. 2. The `WEIGHT_THRESHOLD` is set to 1000 kg. Adjust this as needed. 3. The HX711 calibration factor (`set_scale(2280.f)`) needs to be adjusted based on your specific load cell setup. 4. Error handling and retries for failed operations should be implemented for production use. 5. Power management features are not implemented in this basic example. 6. Ensure all necessary libraries are installed in your Arduino IDE. 7. Wire the components according to the pin definitions in the code. 8. Set up the appropriate variables and dashboards in your Ubidots account to receive and display the data. This code serves as a starting point and may need further refinement and testing for real-world deployment.
0 AIs selected
Clear selection
#
Name
Task