ವಾಟರ್ ಪಂಪ್ ಕಂಟ್ರೋಲರ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ವೈಫೈ ಕನೆಕ್ಟಿವಿಟಿ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವುದು
ಸ್ಮಾರ್ಟ್ ಹೋಮ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ, ವಿಶೇಷವಾಗಿ ESP8266 ನಂತಹ ಮೈಕ್ರೊಕಂಟ್ರೋಲರ್ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ, ವೈಫೈ ಕಾರ್ಯವು ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ವೈಫೈ ಮಾಡ್ಯೂಲ್ ಸಂಪರ್ಕಗೊಂಡಾಗ ಬಳಕೆದಾರರು ಎದುರಿಸುವ ಒಂದು ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಯಾಗಿದೆ, ಆದರೆ ಉಳಿದ ಕೋಡ್ ನಿರೀಕ್ಷೆಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ವಿಫಲವಾಗಿದೆ. ಯಾವುದೇ ದೋಷವನ್ನು ಪ್ರದರ್ಶಿಸದಿದ್ದಾಗ ಈ ಸವಾಲು ವಿಶೇಷವಾಗಿ ನಿರಾಶಾದಾಯಕವಾಗಿರುತ್ತದೆ, ಡೀಬಗ್ ಮಾಡುವುದನ್ನು ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ.
ಈ ಲೇಖನವು ESP8266, nRF24L01 ಟ್ರಾನ್ಸ್ಸಿವರ್ ಮತ್ತು OLED ಪ್ರದರ್ಶನದೊಂದಿಗೆ ನಿರ್ಮಿಸಲಾದ ಸ್ವಯಂಚಾಲಿತ ನೀರಿನ ಪಂಪ್ ನಿಯಂತ್ರಕವನ್ನು ಪರಿಶೋಧಿಸುತ್ತದೆ. ನೀರಿನ ಮಟ್ಟವನ್ನು ಆಧರಿಸಿ ನೀರಿನ ಪಂಪ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ವ್ಯವಸ್ಥೆಯನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಇದನ್ನು ಕೈಯಾರೆ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿಯಂತ್ರಿಸಬಹುದು. ಟ್ಯಾಂಕ್ ತುಂಬಿದಾಗ ಬಜರ್ ಸಂಕೇತಿಸುತ್ತದೆ ಮತ್ತು ಬ್ಲಿಂಕ್ ಅಪ್ಲಿಕೇಶನ್ ರಿಮೋಟ್ ಕಂಟ್ರೋಲ್ ಅನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ.
ಕೋಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ESP8266 ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗಿದ್ದರೂ, ಬಳಕೆದಾರರು ಸಾಮಾನ್ಯವಾಗಿ ಸರಣಿ ಮಾನಿಟರ್ನಲ್ಲಿ ಅಸಾಮಾನ್ಯ ಅಕ್ಷರಗಳನ್ನು ಮತ್ತು ಮರುಕಳಿಸುವ WiFi ಸಂಪರ್ಕ ಲೂಪ್ ಅನ್ನು ಎದುರಿಸುತ್ತಾರೆ. WiFi ಪುನರಾವರ್ತಿತವಾಗಿ ಸಂಪರ್ಕಿಸುತ್ತದೆ, ಆದರೆ ಉಳಿದ ಕಾರ್ಯಗಳು - ಮೋಟಾರ್ ಮತ್ತು ಡಿಸ್ಪ್ಲೇ - ನಿಷ್ಕ್ರಿಯವಾಗಿರುತ್ತವೆ.
ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ, ಈ ಸಮಸ್ಯೆಗಳ ಸಂಭವನೀಯ ಕಾರಣಗಳನ್ನು ನಾವು ತನಿಖೆ ಮಾಡುತ್ತೇವೆ ಮತ್ತು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಸುಧಾರಣೆಗಳನ್ನು ಸೂಚಿಸುತ್ತೇವೆ. ವೈಫೈ ಸಂಪರ್ಕದ ಲೂಪ್ಗಳನ್ನು ಪರಿಶೀಲಿಸುವುದರಿಂದ ಹಿಡಿದು ಸಿಸ್ಟಂ ಕಾರ್ಯನಿರ್ವಹಣೆಯನ್ನು ಹೆಚ್ಚಿಸುವವರೆಗೆ, ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಿಮಗೆ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾದ ಸೆಟಪ್ಗಾಗಿ ಪ್ರಾಯೋಗಿಕ ಪರಿಹಾರಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಆಜ್ಞೆ | ಬಳಕೆಯ ಉದಾಹರಣೆ |
---|---|
radio.write(&dataToSend, sizeof(dataToSend)) | nRF24L01 ರೇಡಿಯೋ ಮಾಡ್ಯೂಲ್ ಮೂಲಕ ಡೇಟಾವನ್ನು ಕಳುಹಿಸುತ್ತದೆ, ಟ್ರಾನ್ಸ್ಮಿಟರ್ ಫ್ಲೋಟ್ ಸ್ವಿಚ್ ಸ್ಥಿತಿಯನ್ನು ರಿಸೀವರ್ಗೆ ತಿಳಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಡೇಟಾ ಪ್ರಸರಣ ಯಶಸ್ವಿಯಾಗಿದೆಯೇ ಎಂದು ಈ ಆಜ್ಞೆಯು ಪರಿಶೀಲಿಸುತ್ತದೆ. |
radio.read(&receivedData, sizeof(receivedData)) | ಟ್ರಾನ್ಸ್ಮಿಟರ್ನಿಂದ ಒಳಬರುವ ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಆಜ್ಞೆಯು ಟ್ರಾನ್ಸ್ಮಿಟರ್ನಿಂದ ಫ್ಲೋಟ್ ಸ್ವಿಚ್ ಸ್ಥಿತಿಯನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ರಿಸೀವರ್ ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಬಳಸಲಾಗುವ ಹೆಚ್ಚಿನ ಪ್ರಕ್ರಿಯೆಗಾಗಿ ಅದನ್ನು ವ್ಯೂಹದಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. |
radio.openWritingPipe(address) | ವಿಳಾಸ ಪೈಪ್ ಅನ್ನು ಹೊಂದಿಸುವ ಮೂಲಕ ಟ್ರಾನ್ಸ್ಮಿಟರ್ಗಾಗಿ ಸಂವಹನ ಚಾನಲ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ, ಇದು nRF24L01 ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ದಿಷ್ಟ ರಿಸೀವರ್ಗೆ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. |
radio.openReadingPipe(1, address) | ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪೈಪ್ ವಿಳಾಸದಲ್ಲಿ ಸಂವಹನವನ್ನು ಕೇಳಲು ರಿಸೀವರ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಯಶಸ್ವಿ ಡೇಟಾ ಸ್ವೀಕಾರಕ್ಕಾಗಿ ಈ ಪೈಪ್ ಟ್ರಾನ್ಸ್ಮಿಟರ್ನ ಪೈಪ್ಗೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು. |
Blynk.virtualWrite(VPIN_WATER_LEVEL, waterLevel) | ನೀರಿನ ಮಟ್ಟದ ಡೇಟಾವನ್ನು ಬ್ಲಿಂಕ್ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ, ನೈಜ ಸಮಯದಲ್ಲಿ ಪ್ರದರ್ಶನವನ್ನು ನವೀಕರಿಸುತ್ತದೆ. ಈ ಆಜ್ಞೆಯು ಬ್ಲಿಂಕ್ನ ವರ್ಚುವಲ್ ಪಿನ್ ಮೂಲಕ ನೀರಿನ ಪಂಪ್ ಸಿಸ್ಟಮ್ಗಾಗಿ ದೂರಸ್ಥ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿಯಂತ್ರಣವನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ. |
WiFi.begin(ssid, pass) | ಒದಗಿಸಿದ ನೆಟ್ವರ್ಕ್ ರುಜುವಾತುಗಳನ್ನು (SSID ಮತ್ತು ಪಾಸ್ವರ್ಡ್) ಬಳಸಿಕೊಂಡು ವೈಫೈ ಸಂಪರ್ಕವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಬ್ಲಿಂಕ್ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ರಿಮೋಟ್ ಕಂಟ್ರೋಲ್ಗಾಗಿ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಈ ಆಜ್ಞೆಯು ನಿರ್ಣಾಯಕವಾಗಿದೆ. |
display.clearDisplay() | ಹೊಸ ಮಾಹಿತಿಯೊಂದಿಗೆ ಪರದೆಯನ್ನು ನವೀಕರಿಸುವ ಮೊದಲು OLED ಪ್ರದರ್ಶನವನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ. ನೀರಿನ ಮಟ್ಟ, ಮೋಡ್ ಮತ್ತು ಪಂಪ್ ಸ್ಥಿತಿಯಂತಹ ಇತ್ತೀಚಿನ ಡೇಟಾವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಪರದೆಯನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಲು ಇದು ಮುಖ್ಯವಾಗಿದೆ. |
digitalWrite(RelayPin, HIGH) | ಕೆಲವು ಷರತ್ತುಗಳನ್ನು ಪೂರೈಸಿದಾಗ ನೀರಿನ ಪಂಪ್ ಅನ್ನು ಆನ್ ಮಾಡಲು ರಿಲೇ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, 25% ಕ್ಕಿಂತ ಕಡಿಮೆ ನೀರಿನ ಮಟ್ಟ). ಮೋಟರ್ನ ಭೌತಿಕ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿಯಂತ್ರಿಸಲು ಇದು ನಿರ್ಣಾಯಕ ಆಜ್ಞೆಯಾಗಿದೆ. |
pinMode(ButtonPin1, INPUT_PULLUP) | ಆಂತರಿಕ ಪುಲ್-ಅಪ್ ರೆಸಿಸ್ಟರ್ನೊಂದಿಗೆ ಭೌತಿಕ ಬಟನ್ ಪಿನ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ, ಮೋಡ್ ಸ್ವಿಚಿಂಗ್ ಮತ್ತು ನೀರಿನ ಪಂಪ್ನ ಹಸ್ತಚಾಲಿತ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ಬಟನ್ ಪ್ರೆಸ್ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಿಸ್ಟಮ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ. |
ESP8266 ವಾಟರ್ ಪಂಪ್ ಕಂಟ್ರೋಲರ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳ ಕಾರ್ಯವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು
ESP8266-ಆಧಾರಿತ ನೀರಿನ ಪಂಪ್ ನಿಯಂತ್ರಕ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಬಳಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ನೀರಿನ ಮಟ್ಟಗಳು, ಮೋಟಾರ್ ನಿಯಂತ್ರಣ ಮತ್ತು ವೈಫೈ ಸಂಪರ್ಕವನ್ನು ನಿರ್ವಹಿಸಲು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಪರಿಹಾರವನ್ನು ಒದಗಿಸುತ್ತದೆ. ದಿ ಟ್ರಾನ್ಸ್ಮಿಟರ್ ಸ್ಕ್ರಿಪ್ಟ್ ನಾಲ್ಕು ಫ್ಲೋಟ್ ಸ್ವಿಚ್ಗಳಿಂದ ನೀರಿನ ಮಟ್ಟದ ಡೇಟಾವನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಈ ಮಾಹಿತಿಯನ್ನು nRF24L01 ರೇಡಿಯೋ ಮಾಡ್ಯೂಲ್ ಮೂಲಕ ರಿಸೀವರ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ. ದಿ RF24 ಗ್ರಂಥಾಲಯ ಇಲ್ಲಿ ನಿರ್ಣಾಯಕ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ, ಸಾಧನಗಳ ನಡುವೆ ನಿಸ್ತಂತು ಸಂವಹನವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಟ್ರಾನ್ಸ್ಮಿಟರ್ ಕೋಡ್ ಪ್ರತಿ ಫ್ಲೋಟ್ ಸ್ವಿಚ್ನ ಸ್ಥಿತಿಯನ್ನು ಒಟ್ಟುಗೂಡಿಸಲು, ಈ ಸ್ಥಿತಿಗಳನ್ನು ಪೂರ್ಣಾಂಕ ಶ್ರೇಣಿಯಾಗಿ ಪರಿವರ್ತಿಸಲು ಮತ್ತು ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ರೇಡಿಯೊ ಚಾನಲ್ನ ಮೂಲಕ ರಿಸೀವರ್ಗೆ ಕಳುಹಿಸಲು ಕಾರಣವಾಗಿದೆ.
ರಿಸೀವರ್ ಭಾಗದಲ್ಲಿ, ESP8266 ಅನ್ನು ಬಳಸಿಕೊಂಡು ವೈಫೈ ಸಂವಹನವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ESP8266WiFi ಲೈಬ್ರರಿ ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಲು ಮತ್ತು ಬ್ಲಿಂಕ್ ಅಪ್ಲಿಕೇಶನ್ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು. ರಿಸೀವರ್ ಕೋಡ್ nRF24L01 ಮಾಡ್ಯೂಲ್ನಿಂದ ಒಳಬರುವ ಡೇಟಾವನ್ನು ನಿರಂತರವಾಗಿ ಆಲಿಸುತ್ತದೆ, ನೀರಿನ ಮಟ್ಟದ ಸ್ಥಿತಿಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು OLED ಡಿಸ್ಪ್ಲೇ ಮತ್ತು ಬ್ಲಿಂಕ್ ಅಪ್ಲಿಕೇಶನ್ ಎರಡನ್ನೂ ನವೀಕರಿಸುತ್ತದೆ. ನೀರಿನ ಮಟ್ಟವು 100% ತಲುಪಿದಾಗ, ಬಳಕೆದಾರರನ್ನು ಎಚ್ಚರಿಸಲು ಸಿಸ್ಟಮ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬಜರ್ ಅನ್ನು ಆನ್ ಮಾಡುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಭೌತಿಕ ಬಟನ್ಗಳು ಅಥವಾ ಬ್ಲಿಂಕ್ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ಸಿಸ್ಟಮ್ ಹಸ್ತಚಾಲಿತ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ವಿಧಾನಗಳ ನಡುವೆ ಬದಲಾಯಿಸಬಹುದು.
OLED ಡಿಸ್ಪ್ಲೇ ವ್ಯವಸ್ಥೆಯಲ್ಲಿನ ಮತ್ತೊಂದು ನಿರ್ಣಾಯಕ ಅಂಶವಾಗಿದೆ, ಪ್ರಸ್ತುತ ಮೋಡ್ (AUTO ಅಥವಾ ಮ್ಯಾನುಯಲ್), ನೀರಿನ ಮಟ್ಟದ ಶೇಕಡಾವಾರು ಮತ್ತು ಪಂಪ್ ಸ್ಥಿತಿಯ ಬಗ್ಗೆ ನೈಜ-ಸಮಯದ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ. ಪ್ರದರ್ಶನವನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ Adafruit_SSD1306 ಲೈಬ್ರರಿ, ಇದು ಪಠ್ಯ ಮತ್ತು ಗ್ರಾಫಿಕ್ಸ್ ರೆಂಡರಿಂಗ್ ಅನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ರಿಸೀವರ್ ಸ್ಕ್ರಿಪ್ಟ್ ಇತ್ತೀಚಿನ ನೀರಿನ ಮಟ್ಟ ಮತ್ತು ಮೋಟಾರ್ ಸ್ಥಿತಿಯೊಂದಿಗೆ ಪರದೆಯನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನೀರಿನ ಮಟ್ಟವು 25% ಕ್ಕಿಂತ ಕಡಿಮೆಯಾದರೆ, ಸಿಸ್ಟಮ್ ಮೋಟಾರ್ ಅನ್ನು ಆನ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪರದೆಯ ಮೇಲೆ ಈ ಬದಲಾವಣೆಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ.
ಅಂತಿಮವಾಗಿ, ದಿ ಬ್ಲಿಂಕ್ ಏಕೀಕರಣ ಸ್ಮಾರ್ಟ್ಫೋನ್ ಮೂಲಕ ನೀರಿನ ಪಂಪ್ನ ರಿಮೋಟ್ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿಯಂತ್ರಣವನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ವರ್ಚುವಲ್ ಪಿನ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು, ಅಪ್ಲಿಕೇಶನ್ ನೀರಿನ ಮಟ್ಟದ ನವೀಕರಣಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಪಂಪ್ ಅಥವಾ ಸ್ವಿಚ್ ಮೋಡ್ಗಳನ್ನು ಟಾಗಲ್ ಮಾಡಲು ಬಳಕೆದಾರರನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಬ್ಲಿಂಕ್ ಲೈಬ್ರರಿಯು ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ, ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ ಮತ್ತು ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್ ನಡುವೆ ತಡೆರಹಿತ ಸಂಪರ್ಕವನ್ನು ನೀಡುತ್ತದೆ. ವೈಫೈ ಮತ್ತು ರೇಡಿಯೋ ಸಂವಹನ ಎರಡರಲ್ಲೂ ದೋಷ ನಿರ್ವಹಣೆಯು ಸಂಪರ್ಕದ ಕುಸಿತಗಳು ಅಥವಾ ವಿಫಲವಾದ ಪ್ರಸರಣಗಳ ಸಂದರ್ಭದಲ್ಲಿಯೂ ಸಹ ಸಿಸ್ಟಮ್ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಉಳಿಯುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಈ ಮಾಡ್ಯುಲರ್ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ಸೆಟಪ್ ನೀರಿನ ಪಂಪ್ನ ಸುಗಮ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಖಾತರಿಪಡಿಸುತ್ತದೆ, ಇದು ದೂರದಿಂದಲೇ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿಯಂತ್ರಿಸಲು ಸುಲಭವಾಗುತ್ತದೆ.
ESP8266 ವಾಟರ್ ಪಂಪ್ ಕಂಟ್ರೋಲರ್ ಅನ್ನು ಸುಧಾರಿಸುವುದು: ಮಾಡ್ಯುಲರ್ ಅಪ್ರೋಚ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಆಪ್ಟಿಮೈಸ್ಡ್ ಪರಿಹಾರ
ಕೆಳಗಿನ ಕೋಡ್ Arduino ಗಾಗಿ C++ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಸ್ವಯಂಚಾಲಿತ ನೀರಿನ ಪಂಪ್ ನಿಯಂತ್ರಕ ಕಾರ್ಯವನ್ನು ಹೆಚ್ಚಿಸಲು ಮಾಡ್ಯುಲರ್ ವಿಧಾನವನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ. ನಾವು ವೈಫೈ ಸಂಪರ್ಕ ಲೂಪ್ಗಳನ್ನು ಪರಿಹರಿಸುತ್ತೇವೆ ಮತ್ತು ಸಿಸ್ಟಮ್ನ ಒಟ್ಟಾರೆ ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತೇವೆ. ಇದು ಉತ್ತಮ ದೋಷ ನಿರ್ವಹಣೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ಡ್ ವಿಧಾನಗಳೊಂದಿಗೆ ಟ್ರಾನ್ಸ್ಮಿಟರ್ ಮತ್ತು ರಿಸೀವರ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಾಗಿ ವಿಭಜಿಸಲಾಗಿದೆ.
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(2, 16); // CE, CSN pins
const byte address[6] = "00001"; // Communication address
const int floatSwitch1Pin = 3;
const int floatSwitch2Pin = 4;
const int floatSwitch3Pin = 5;
const int floatSwitch4Pin = 6;
void setup() {
Serial.begin(9600);
pinMode(floatSwitch1Pin, INPUT);
pinMode(floatSwitch2Pin, INPUT);
pinMode(floatSwitch3Pin, INPUT);
pinMode(floatSwitch4Pin, INPUT);
radio.begin();
radio.openWritingPipe(address);
radio.setChannel(76);
radio.setPayloadSize(32);
radio.setPALevel(RF24_PA_LOW); // Low power level
}
void loop() {
bool floatSwitch1 = digitalRead(floatSwitch1Pin);
bool floatSwitch2 = digitalRead(floatSwitch2Pin);
bool floatSwitch3 = digitalRead(floatSwitch3Pin);
bool floatSwitch4 = digitalRead(floatSwitch4Pin);
int dataToSend[4] = {(int)floatSwitch1, (int)floatSwitch2, (int)floatSwitch3, (int)floatSwitch4};
if (radio.write(&dataToSend, sizeof(dataToSend))) {
Serial.println("Data sent successfully!");
} else {
Serial.println("Data sending failed!");
}
delay(2000);
}
ESP8266 ರಿಸೀವರ್ ಕೋಡ್: ವರ್ಧಿತ ಬ್ಲಿಂಕ್ ಏಕೀಕರಣ ಮತ್ತು ದೋಷ ನಿರ್ವಹಣೆ
ಈ ಪರಿಹಾರವು ESP8266 ಗಾಗಿ ರಿಸೀವರ್ ಕೋಡ್ ಅನ್ನು ಸುಧಾರಿಸುವುದರ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ, ಮರುಕಳಿಸುವ WiFi ಸಂಪರ್ಕದ ಲೂಪ್ ಅನ್ನು ಪರಿಹರಿಸುತ್ತದೆ ಮತ್ತು ನೀರಿನ ಮಟ್ಟ ನಿರ್ವಹಣೆ ಮತ್ತು ಮೋಟಾರ್ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ಉತ್ತಮ ನಿಯಂತ್ರಣವನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ. ಸಂಪರ್ಕ ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸುತ್ತಿರುವಾಗಲೂ ಸಹ ಸರಿಯಾದ ಕಾರ್ಯನಿರ್ವಹಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ.
#define BLYNK_TEMPLATE_ID "TMPL3byZ4b1QG"
#define BLYNK_TEMPLATE_NAME "Automatic Motor Controller"
#define BLYNK_AUTH_TOKEN "-c20kbugQqouqjlAYmn9mvuvs128MkO7"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <AceButton.h>
WiFiClient client;
RF24 radio(2, 16);
const byte address[6] = "00001";
#define wifiLed 7
#define BuzzerPin 6
#define RelayPin 10
#define ButtonPin1 9
#define ButtonPin2 8
#define ButtonPin3 11
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
bool toggleRelay = false;
bool modeFlag = true;
int waterLevel = 0;
char auth[] = BLYNK_AUTH_TOKEN;
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
pinMode(wifiLed, OUTPUT);
pinMode(RelayPin, OUTPUT);
digitalWrite(wifiLed, HIGH);
Blynk.config(auth);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;);
}
display.clearDisplay();
}
void loop() {
Blynk.run();
if (radio.available()) {
int receivedData[4];
radio.read(&receivedData, sizeof(receivedData));
waterLevel = receivedData[0] * 25;
if (receivedData[1]) waterLevel += 25;
if (receivedData[2]) waterLevel += 25;
if (receivedData[3]) waterLevel += 25;
Blynk.virtualWrite(VPIN_WATER_LEVEL, waterLevel);
if (modeFlag && waterLevel < 25) {
digitalWrite(RelayPin, HIGH);
toggleRelay = true;
} else {
digitalWrite(RelayPin, LOW);
toggleRelay = false;
}
if (waterLevel == 100) {
digitalWrite(BuzzerPin, HIGH);
}
}
}
ESP8266 ಮತ್ತು nRF24L01 ಸಂವಹನ ದಕ್ಷತೆಯನ್ನು ಹೆಚ್ಚಿಸುವುದು
ESP8266-ಆಧಾರಿತ ನೀರಿನ ಪಂಪ್ ನಿಯಂತ್ರಕವನ್ನು ಸುಧಾರಿಸುವಾಗ ಪರಿಗಣಿಸಬೇಕಾದ ಒಂದು ನಿರ್ಣಾಯಕ ಅಂಶವೆಂದರೆ ಟ್ರಾನ್ಸ್ಮಿಟರ್ ಮತ್ತು ರಿಸೀವರ್ ನಡುವಿನ ಸಂವಹನದ ದಕ್ಷತೆ. ದಿ nRF24L01 ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಕಡಿಮೆ-ಶಕ್ತಿಯ ವೈರ್ಲೆಸ್ ಸಂವಹನಕ್ಕಾಗಿ ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ ಸರಿಯಾದ ವಿದ್ಯುತ್ ಮಟ್ಟಗಳು ಮತ್ತು ಚಾನಲ್ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಮೂಲಕ ಅದರ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಸರಿಹೊಂದಿಸುವುದು radio.setPALevel(RF24_PA_LOW) ಉನ್ನತ ಮಟ್ಟಕ್ಕೆ ಆದೇಶ, ಉದಾಹರಣೆಗೆ RF24_PA_HIGH, ಇನ್ನೂ ಶಕ್ತಿಯನ್ನು ಉಳಿಸುವಾಗ ಪ್ರಸರಣ ವ್ಯಾಪ್ತಿಯನ್ನು ಸುಧಾರಿಸಬಹುದು. ಟ್ರಾನ್ಸ್ಮಿಟರ್ ಮತ್ತು ರಿಸೀವರ್ ದೂರದಲ್ಲಿರುವಾಗ ಇದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ.
ವರ್ಧಿಸಬಹುದಾದ ಮತ್ತೊಂದು ಕ್ಷೇತ್ರವೆಂದರೆ ಬಳಕೆ ಬ್ಲಿಂಕ್ ರಿಮೋಟ್ ಕಂಟ್ರೋಲ್ಗಾಗಿ. ಪ್ರಸ್ತುತ ಸೆಟಪ್ ಬ್ಲಿಂಕ್ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ನೀರಿನ ಮಟ್ಟದ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ಮೋಟಾರ್ ನಿಯಂತ್ರಣವನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಪುಶ್ ಅಧಿಸೂಚನೆಗಳಂತಹ ಹೆಚ್ಚು ಅತ್ಯಾಧುನಿಕ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಸೇರಿಸುವುದರಿಂದ ಬಳಕೆದಾರರ ಅನುಭವವನ್ನು ಹೆಚ್ಚಿಸಬಹುದು. ಬಳಸುತ್ತಿದೆ Blynk.notify() ಬಳಕೆದಾರರ ಫೋನ್ಗೆ ನೇರವಾಗಿ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಕಳುಹಿಸಲು ಸಿಸ್ಟಮ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ನೀರಿನ ಮಟ್ಟವು ತುಂಬಾ ಹೆಚ್ಚಿದ್ದರೆ ಅಥವಾ ವೈಫೈನೊಂದಿಗೆ ಸಂಪರ್ಕ ಸಮಸ್ಯೆಯಿದ್ದರೆ ಅವರಿಗೆ ಎಚ್ಚರಿಕೆ ನೀಡುತ್ತದೆ. ದೂರದಿಂದ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಇದು ನಿರ್ಣಾಯಕ ಲಕ್ಷಣವಾಗಿದೆ.
ಭದ್ರತೆಯ ವಿಷಯದಲ್ಲಿ, ವಿಫಲ-ಸುರಕ್ಷಿತ ಕಾರ್ಯವಿಧಾನವನ್ನು ಸೇರಿಸುವುದರಿಂದ ಮೋಟಾರ್ ಅಗತ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಕಾಲ ಉಳಿಯುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಕೋಡ್ನಲ್ಲಿ ಟೈಮರ್ ಅನ್ನು ಹೊಂದಿಸುವ ಮೂಲಕ ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ಬಳಸುತ್ತಿದೆ millis() ಅಥವಾ ಬ್ಲಿಂಕ್ ಟೈಮರ್ ವೈಶಿಷ್ಟ್ಯವು, ಮೋಟಾರು ಹೆಚ್ಚು ಕಾಲ ಚಾಲನೆಯಲ್ಲಿದ್ದರೆ ಕೋಡ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮೋಟಾರು ಆಫ್ ಮಾಡಬಹುದು, ಸಂಭಾವ್ಯ ಹಾನಿಯನ್ನು ತಡೆಯುತ್ತದೆ. ಈ ಸಣ್ಣ ವರ್ಧನೆಗಳು, ಸರಿಯಾದ ಕೋಡಿಂಗ್ ರಚನೆಯೊಂದಿಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟಿದೆ, ರಿಮೋಟ್ ಕಾರ್ಯಾಚರಣೆಗಳಿಗಾಗಿ ಸಿಸ್ಟಮ್ ಅನ್ನು ಹೆಚ್ಚು ದೃಢವಾದ, ಪರಿಣಾಮಕಾರಿ ಮತ್ತು ಬಳಕೆದಾರ ಸ್ನೇಹಿಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ.
IoT ಯೋಜನೆಗಳಲ್ಲಿ ESP8266 ಮತ್ತು nRF24L01 ಕುರಿತು ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳು
- ESP8266 ನಲ್ಲಿ ವೈಫೈ ಸಂಪರ್ಕ ಲೂಪ್ ಅನ್ನು ನಾನು ಹೇಗೆ ಸರಿಪಡಿಸಬಹುದು?
- ರವಾನಿಸಲಾದ ರುಜುವಾತುಗಳನ್ನು ಪರಿಶೀಲಿಸಿ WiFi.begin(ssid, pass) ಮತ್ತು ಮರುಸಂಪರ್ಕ ಪ್ರಯತ್ನಗಳ ನಡುವೆ ವಿಳಂಬವಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಅಲ್ಲದೆ, ವಿದ್ಯುತ್ ಸಮಸ್ಯೆಗಳಿಂದಾಗಿ ESP ಮರುಹೊಂದಿಸುತ್ತಿದೆಯೇ ಎಂದು ಪರೀಕ್ಷಿಸಿ.
- ಪಾತ್ರ ಏನು radio.write() nRF24L01 ಸಂವಹನದಲ್ಲಿ?
- ಟ್ರಾನ್ಸ್ಮಿಟರ್ನಿಂದ ರಿಸೀವರ್ಗೆ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲು ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸಾಧನಗಳ ನಡುವೆ ವೈರ್ಲೆಸ್ ಸಂವಹನಕ್ಕೆ ಇದು ಅತ್ಯಗತ್ಯ.
- ಹೊಸ ಮಾಹಿತಿಯೊಂದಿಗೆ OLED ಡಿಸ್ಪ್ಲೇ ಅನ್ನು ನಾನು ಹೇಗೆ ನವೀಕರಿಸುವುದು?
- ನೀವು ಬಳಸಬಹುದು display.clearDisplay() ಮತ್ತು display.display() ನವೀಕರಿಸಿದ ನೀರಿನ ಮಟ್ಟಗಳು ಮತ್ತು ಸಿಸ್ಟಮ್ ಸ್ಥಿತಿಯೊಂದಿಗೆ OLED ಪರದೆಯನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಲು ಆಜ್ಞೆಗಳು.
- ನೀರಿನ ಪಂಪ್ ತುಂಬಾ ಉದ್ದವಾಗಿ ಚಲಿಸಿದರೆ ಏನಾಗುತ್ತದೆ?
- ಇದರೊಂದಿಗೆ ಟೈಮರ್ ಅನ್ನು ಅಳವಡಿಸುವ ಮೂಲಕ ನೀವು ಪಂಪ್ ಅನ್ನು ಅನಿರ್ದಿಷ್ಟವಾಗಿ ಚಾಲನೆ ಮಾಡುವುದನ್ನು ತಡೆಯಬಹುದು millis(), ನಿಗದಿತ ಅವಧಿಯ ನಂತರ ಮೋಟಾರ್ ಆಫ್ ಆಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು.
- ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು ಬ್ಲಿಂಕ್ ಅನ್ನು ಬಳಸಬಹುದೇ?
- ಹೌದು, ನೀವು ಬಳಸಬಹುದು Blynk.notify() ಹೆಚ್ಚಿನ ನೀರಿನ ಮಟ್ಟಗಳಂತಹ ಕೆಲವು ಷರತ್ತುಗಳನ್ನು ಪೂರೈಸಿದಾಗ ಬಳಕೆದಾರರ ಫೋನ್ಗೆ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಕಳುಹಿಸಲು.
ವಾಟರ್ ಪಂಪ್ ಕಂಟ್ರೋಲರ್ ಕೋಡ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವ ಅಂತಿಮ ಆಲೋಚನೆಗಳು
ESP8266 ನೀರಿನ ಪಂಪ್ ನಿಯಂತ್ರಕದ ದಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ಹಾರ್ಡ್ವೇರ್ ಮತ್ತು ಕೋಡ್ ಎರಡನ್ನೂ ಎಚ್ಚರಿಕೆಯಿಂದ ಪರಿಶೀಲಿಸುವ ಅಗತ್ಯವಿದೆ. ವೈಫೈ ಸಂಪರ್ಕದ ಲೂಪ್ಗಳಂತಹ ಸಮಸ್ಯೆಗಳನ್ನು ಸರಿಪಡಿಸುವುದು ಮತ್ತು nRF24L01 ಮಾಡ್ಯೂಲ್ಗಳ ನಡುವಿನ ಸಂವಹನವನ್ನು ಹೆಚ್ಚಿಸುವುದು ಸಿಸ್ಟಮ್ ಅನ್ನು ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ದೃಢವಾಗಿಸಲು ಅಗತ್ಯವಾದ ಹಂತಗಳಾಗಿವೆ.
ಪುಶ್ ಅಧಿಸೂಚನೆಗಳಂತಹ ಸುಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ ಬ್ಲಿಂಕ್ ಮತ್ತು ಮೋಟಾರ್ ರನ್ ಸಮಯವನ್ನು ನಿಯಂತ್ರಿಸಲು ಟೈಮರ್ಗಳನ್ನು ಅಳವಡಿಸುವುದು, ಈ ಯೋಜನೆಯು ಉತ್ತಮ ನಿಯಂತ್ರಣ ಮತ್ತು ಭದ್ರತೆಯನ್ನು ನೀಡುತ್ತದೆ. ಈ ಬದಲಾವಣೆಗಳು ಅಂತಿಮವಾಗಿ ಸಿಸ್ಟಮ್ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಮತ್ತು ಒಟ್ಟಾರೆ ಉತ್ತಮ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಒದಗಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ESP8266 ವಾಟರ್ ಪಂಪ್ ಕಂಟ್ರೋಲರ್ ಯೋಜನೆಗಾಗಿ ಉಲ್ಲೇಖಗಳು ಮತ್ತು ಮೂಲಗಳು
- ಈ ಲೇಖನವು ಅಧಿಕೃತ ಮೂಲದಿಂದ ವಿವರವಾದ ಉಲ್ಲೇಖ ವಸ್ತುಗಳನ್ನು ಬಳಸುತ್ತದೆ ಆರ್ಡುನೊ ವೈಫೈ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ , ಇದು ESP8266 ವೈಫೈ ಲೈಬ್ರರಿಯ ಸರಿಯಾದ ಬಳಕೆ ಮತ್ತು ಸಂಪರ್ಕ ದೋಷನಿವಾರಣೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ.
- ಬಳಸುವ ಕುರಿತು ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿ ಬ್ಲಿಂಕ್ ಅಪ್ಲಿಕೇಶನ್ IoT ಯೋಜನೆಗಳಿಗಾಗಿ ರಿಮೋಟ್ ಕಂಟ್ರೋಲ್ ಸೆಟಪ್ ಕುರಿತು ಒಳನೋಟಗಳನ್ನು ನೀಡುವ ಅಧಿಕೃತ ಬ್ಲಿಂಕ್ ದಾಖಲಾತಿಯಿಂದ ಪಡೆಯಲಾಗಿದೆ.
- ಬಳಸುವ ಬಗ್ಗೆ ಮಾರ್ಗದರ್ಶನ nRF24L01 ರೇಡಿಯೋ ಮಾಡ್ಯೂಲ್ ಅದರ ಅಧಿಕೃತ ಲೈಬ್ರರಿ ಪುಟದಿಂದ ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ, ಇದು ಸಂವಹನ ಸೆಟಪ್ ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ವಿಧಾನಗಳನ್ನು ಚರ್ಚಿಸುತ್ತದೆ.
- ಸಾಮಾನ್ಯ ದೋಷನಿವಾರಣೆ ಮತ್ತು ಡೀಬಗ್ ಮಾಡುವ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲಾಗಿದೆ ಆರ್ಡುನೊ ಫೋರಮ್ , ಅಲ್ಲಿ ಬಳಕೆದಾರರು ಸೀರಿಯಲ್ ಮಾನಿಟರ್ ದೋಷಗಳು ಮತ್ತು ಸಂಪರ್ಕ ಲೂಪ್ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳು ಮತ್ತು ಪರಿಹಾರಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಾರೆ.