BlynkSimpleLinkItONE.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /**
  2. * @file BlynkSimpleLinkItONE.h
  3. * @author Volodymyr Shymanskyy
  4. * @license This project is released under the MIT License (MIT)
  5. * @copyright Copyright (c) 2015 Volodymyr Shymanskyy
  6. * @date Jul 2015
  7. * @brief
  8. *
  9. */
  10. #ifndef BlynkSimpleLinkItONE_h
  11. #define BlynkSimpleLinkItONE_h
  12. #ifndef BLYNK_INFO_DEVICE
  13. #define BLYNK_INFO_DEVICE "LinkIt ONE"
  14. #endif
  15. // cause this causes crashes...
  16. #define BLYNK_NO_YIELD
  17. #include <BlynkApiArduino.h>
  18. #include <Blynk/BlynkProtocol.h>
  19. #include <Adapters/BlynkArduinoClient.h>
  20. #include <LWiFi.h>
  21. #include <LWiFiClient.h>
  22. class BlynkLinkItOneWifi
  23. : public BlynkProtocol<BlynkArduinoClient>
  24. {
  25. typedef BlynkProtocol<BlynkArduinoClient> Base;
  26. public:
  27. BlynkLinkItOneWifi(BlynkArduinoClient& transp)
  28. : Base(transp)
  29. {}
  30. void connectWiFi(const char* ssid, const char* pass, int wifi_auth)
  31. {
  32. BLYNK_LOG("Connecting to %s ...", ssid);
  33. LWiFi.begin();
  34. while(!LWiFi.connect(ssid, LWiFiLoginInfo((LWiFiEncryption)wifi_auth, pass))){
  35. ::delay(1000);
  36. }
  37. }
  38. void config(const char* auth,
  39. const char* domain = BLYNK_DEFAULT_DOMAIN,
  40. uint16_t port = BLYNK_DEFAULT_PORT)
  41. {
  42. Base::begin(auth);
  43. this->conn.begin(domain, port);
  44. }
  45. void config(const char* auth,
  46. IPAddress ip,
  47. uint16_t port = BLYNK_DEFAULT_PORT)
  48. {
  49. Base::begin(auth);
  50. this->conn.begin(ip, port);
  51. }
  52. void begin(const char* auth,
  53. const char* ssid,
  54. const char* pass,
  55. int wifi_auth,
  56. const char* domain = BLYNK_DEFAULT_DOMAIN,
  57. uint16_t port = BLYNK_DEFAULT_PORT)
  58. {
  59. connectWiFi(ssid, pass, wifi_auth);
  60. config(auth, domain, port);
  61. }
  62. void begin(const char* auth,
  63. const char* ssid,
  64. const char* pass,
  65. int wifi_auth,
  66. IPAddress ip,
  67. uint16_t port = BLYNK_DEFAULT_PORT)
  68. {
  69. connectWiFi(ssid, pass, wifi_auth);
  70. config(auth, ip, port);
  71. }
  72. };
  73. static LWiFiClient _blynkWifiClient;
  74. static BlynkArduinoClient _blynkTransport(_blynkWifiClient);
  75. BlynkLinkItOneWifi Blynk(_blynkTransport);
  76. #include <BlynkWidgets.h>
  77. #endif