19
19
#ifndef ADAFRUITIO_AIRLIFT_H
20
20
#define ADAFRUITIO_AIRLIFT_H
21
21
22
+ #include " Arduino.h"
22
23
#include " AdafruitIO.h"
24
+ #include " WiFiNINA.h"
25
+ #include " SPI.h"
23
26
#include " Adafruit_MQTT.h"
24
27
#include " Adafruit_MQTT_Client.h"
25
- #include " Arduino.h"
26
- #include " SPI.h"
27
- #include " WiFiNINA.h"
28
28
29
- #define NINAFWVER " 1.0.0" /* !< nina-fw version compatible with this library. */
29
+ #define NINAFWVER " 1.0.0" /* !< nina-fw version compatible with this library. */
30
30
31
31
/* ***************************************************************************/
32
- /* !
32
+ /* !
33
33
@brief Class that stores functions for interacting with AirLift Devices
34
34
*/
35
35
/* ***************************************************************************/
36
36
class AdafruitIO_AIRLIFT : public AdafruitIO {
37
37
38
- public:
39
- /* *************************************************************************/
40
- /* !
41
- @brief Initializes the Adafruit IO class for AirLift devices.
42
- @param user
43
- A reference to the Adafruit IO user, shared by AdafruitIO.
44
- @param key
45
- A reference to the Adafruit IO Key, shared by AdafruitIO.
46
- @param ssid
47
- A reference to the WiFi network SSID.
48
- @param pass
49
- A reference to the WiFi network password.
50
- @param ssPin
51
- A reference to the ESP32_SS Pin.
52
- @param ackPin
53
- A reference to the ESP32_ACK Pin.
54
- @param rstPin
55
- A reference to the ESP32_RST Pin.
56
- @param gpio0Pin
57
- A reference to the gpio0Pin Pin.
58
- @param wifi
59
- A reference to a SPIClass
60
- */
61
- /* *************************************************************************/
62
- AdafruitIO_AIRLIFT (const char *user, const char *key, const char *ssid,
63
- const char *pass, int ssPin=10 , int ackPin=9 , int rstPin=6 ,
64
- int gpio0Pin=-1 , SPIClass *wifi)
65
- : AdafruitIO(user, key) {
66
- _wifi = wifi;
67
- _ssPin = ssPin;
68
- _ackPin = ackPin;
69
- _rstPin = rstPin;
70
- _gpio0Pin = gpio0Pin;
71
- _ssid = ssid;
72
- _pass = pass;
73
- _mqtt_client = new WiFiSSLClient;
74
- _mqtt = new Adafruit_MQTT_Client (_mqtt_client, _host, _mqtt_port);
75
- _http_client = new WiFiSSLClient;
76
- _http = new HttpClient (*_http_client, _host, _http_port);
77
- }
78
-
79
- /* *************************************************************************/
80
- /* !
81
- @brief Destructor for the Adafruit IO AirLift class.
82
- */
83
- /* *************************************************************************/
84
- ~AdafruitIO_AIRLIFT () {
85
- if (_mqtt_client)
86
- delete _http_client;
87
- if (_http_client)
88
- delete _mqtt_client;
89
- if (_mqtt)
90
- delete _mqtt;
91
- if (_http)
92
- delete _http;
93
- }
94
-
95
- /* *******************************************************/
96
- /* !
97
- @brief Checks the version of an ESP32 module against
98
- NINAFWVER. Raises an error if the firmware needs to be
99
- upgraded.
100
- */
101
- /* *******************************************************/
102
- void firmwareCheck () {
103
- _fv = WiFi.firmwareVersion ();
104
- if (_fv < NINAFWVER) {
105
- AIO_DEBUG_PRINTLN (" Please upgrade the firmware on the ESP module" );
38
+ public:
39
+ /* *************************************************************************/
40
+ /* !
41
+ @brief Initializes the Adafruit IO class for AirLift devices.
42
+ @param user
43
+ A reference to the Adafruit IO user, shared by AdafruitIO.
44
+ @param key
45
+ A reference to the Adafruit IO Key, shared by AdafruitIO.
46
+ @param ssid
47
+ A reference to the WiFi network SSID.
48
+ @param pass
49
+ A reference to the WiFi network password.
50
+ @param ssPin
51
+ A reference to the ESP32_SS Pin.
52
+ @param ackPin
53
+ A reference to the ESP32_ACK Pin.
54
+ @param rstPin
55
+ A reference to the ESP32_RST Pin.
56
+ @param gpio0Pin
57
+ A reference to the gpio0Pin Pin.
58
+ @param wifi
59
+ A reference to a SPIClass
60
+ */
61
+ /* *************************************************************************/
62
+ AdafruitIO_AIRLIFT (const char *user, const char *key, const char *ssid, const char *pass, int ssPin, int ackPin, int rstPin, int gpio0Pin, SPIClass* wifi) : AdafruitIO(user, key)
63
+ {
64
+ _wifi = wifi;
65
+ _ssPin = ssPin;
66
+ _ackPin = ackPin;
67
+ _rstPin = rstPin;
68
+ _gpio0Pin = gpio0Pin;
69
+ _ssid = ssid;
70
+ _pass = pass;
71
+ _mqtt_client = new WiFiSSLClient;
72
+ _mqtt = new Adafruit_MQTT_Client (_mqtt_client, _host, _mqtt_port);
73
+ _http_client = new WiFiSSLClient;
74
+ _http = new HttpClient (*_http_client, _host, _http_port);
106
75
}
107
- }
108
76
109
- /* *******************************************************/
110
- /* !
111
- @brief Returns the network status of an ESP32 module.
112
- @return aio_status_t
113
- */
114
- /* *******************************************************/
115
- aio_status_t networkStatus () {
116
- switch (WiFi.status ()) {
117
- case WL_CONNECTED:
118
- return AIO_NET_CONNECTED;
119
- case WL_CONNECT_FAILED:
120
- return AIO_NET_CONNECT_FAILED;
121
- case WL_IDLE_STATUS:
122
- return AIO_IDLE;
123
- default :
124
- return AIO_NET_DISCONNECTED;
77
+ /* *************************************************************************/
78
+ /* !
79
+ @brief Destructor for the Adafruit IO AirLift class.
80
+ */
81
+ /* *************************************************************************/
82
+ ~AdafruitIO_AIRLIFT ()
83
+ {
84
+ if (_mqtt_client)
85
+ delete _http_client;
86
+ if (_http_client)
87
+ delete _mqtt_client;
88
+ if (_mqtt)
89
+ delete _mqtt;
90
+ if (_http)
91
+ delete _http;
125
92
}
126
- }
127
93
128
- /* ****************************************************************/
129
- /* !
130
- @brief Returns the type of network connection used by AdafruitIO.
131
- @return AIRLIFT
132
- */
133
- /* ****************************************************************/
134
- const char *connectionType () { return " AIRLIFT" ; }
135
-
136
- protected:
137
- const char *_ssid; /* !< WiFi network SSID. */
138
- const char *_pass; /* !< WiFi network password. */
139
- String _fv = " 0.0.0" ; /* !< nina-fw version, read from ESP32. */
140
- int _ssPin = -1 ; /* !< ESP32 slave-select pin. */
141
- int _ackPin = -1 ; /* !< ESP32 ACK pin. */
142
- int _rstPin = -1 ; /* !< ESP32 RESET pin. */
143
- int _gpio0Pin = -1 ; /* !< ESP32 GPIO0 pin. */
144
-
145
- WiFiSSLClient *_http_client; /* !< Instance of HTTP client. */
146
- WiFiSSLClient *_mqtt_client; /* !< Instance of MQTT client. */
147
-
148
- SPIClass *_wifi; /* !< Instance of WiFi. */
149
-
150
- /* *************************************************************************/
151
- /* !
152
- @brief Attempts to establish a WiFi connection with the wireless network,
153
- given _ssid and _pass from the AdafruitIO_AIRLIFT constructor.
154
- */
155
- /* *************************************************************************/
156
- void _connect () {
157
- if (strlen (_ssid) == 0 ) {
158
- _status = AIO_SSID_INVALID;
159
- } else {
160
- _disconnect ();
161
- // setup ESP32 pins
162
- if (_ssPin != -1 ) {
163
- WiFi.setPins (_ssPin, _ackPin, _rstPin, _gpio0Pin, _wifi);
94
+ /* *******************************************************/
95
+ /* !
96
+ @brief Checks the version of an ESP32 module against
97
+ NINAFWVER. Raises an error if the firmware needs to be
98
+ upgraded.
99
+ */
100
+ /* *******************************************************/
101
+ void firmwareCheck ()
102
+ {
103
+ _fv = WiFi.firmwareVersion ();
104
+ if (_fv < NINAFWVER)
105
+ {
106
+ AIO_DEBUG_PRINTLN (" Please upgrade the firmware on the ESP module" );
164
107
}
108
+ }
165
109
166
- // check esp32 module version against NINAFWVER
167
- firmwareCheck ();
168
-
169
- // check for esp32 module
170
- if (WiFi.status () == WL_NO_MODULE) {
171
- AIO_DEBUG_PRINTLN (" No ESP32 module detected!" );
172
- return ;
110
+ /* *******************************************************/
111
+ /* !
112
+ @brief Returns the network status of an ESP32 module.
113
+ @return aio_status_t
114
+ */
115
+ /* *******************************************************/
116
+ aio_status_t networkStatus ()
117
+ {
118
+ switch (WiFi.status ())
119
+ {
120
+ case WL_CONNECTED:
121
+ return AIO_NET_CONNECTED;
122
+ case WL_CONNECT_FAILED:
123
+ return AIO_NET_CONNECT_FAILED;
124
+ case WL_IDLE_STATUS:
125
+ return AIO_IDLE;
126
+ default :
127
+ return AIO_NET_DISCONNECTED;
173
128
}
129
+ }
174
130
175
- WiFi.begin (_ssid, _pass);
176
- _status = AIO_NET_DISCONNECTED;
131
+ /* ****************************************************************/
132
+ /* !
133
+ @brief Returns the type of network connection used by AdafruitIO.
134
+ @return AIRLIFT
135
+ */
136
+ /* ****************************************************************/
137
+ const char *connectionType ()
138
+ {
139
+ return " AIRLIFT" ;
177
140
}
178
- }
179
141
180
- /* *************************************************************************/
181
- /* !
182
- @brief Disconnect the wifi network.
183
- */
184
- /* *************************************************************************/
185
- void _disconnect () {
186
- WiFi.disconnect ();
187
- delay (AIO_NET_DISCONNECT_WAIT);
142
+ protected:
143
+ const char *_ssid;
144
+ const char *_pass;
145
+ String _fv = " 0.0.0" ;
146
+ int _ssPin, _ackPin, _rstPin, _gpio0Pin = -1 ;
147
+
148
+ WiFiSSLClient *_http_client;
149
+ WiFiSSLClient *_mqtt_client;
150
+
151
+ SPIClass *_wifi;
152
+
153
+ /* *************************************************************************/
154
+ /* !
155
+ @brief Attempts to establish a WiFi connection with the wireless network,
156
+ given _ssid and _pass from the AdafruitIO_AIRLIFT constructor.
157
+ */
158
+ /* *************************************************************************/
159
+ void _connect ()
160
+ {
161
+ if (strlen (_ssid) == 0 ) {
162
+ _status = AIO_SSID_INVALID;
163
+ } else {
164
+ _disconnect ();
165
+ // setup ESP32 pins
166
+ if (_ssPin != -1 ) {
167
+ WiFi.setPins (_ssPin, _ackPin, _rstPin, _gpio0Pin, _wifi);
168
+ }
169
+
170
+ // check esp32 module version against NINAFWVER
171
+ firmwareCheck ();
172
+
173
+ // check for esp32 module
174
+ if (WiFi.status () == WL_NO_MODULE)
175
+ {
176
+ AIO_DEBUG_PRINTLN (" No ESP32 module detected!" );
177
+ return ;
178
+ }
179
+
180
+ WiFi.begin (_ssid, _pass);
181
+ _status = AIO_NET_DISCONNECTED;
182
+ }
188
183
}
184
+
185
+ /* *************************************************************************/
186
+ /* !
187
+ @brief Disconnect the wifi network.
188
+ */
189
+ /* *************************************************************************/
190
+ void _disconnect ()
191
+ {
192
+ WiFi.disconnect ();
193
+ delay (AIO_NET_DISCONNECT_WAIT);
194
+ }
195
+
189
196
};
190
197
191
198
#endif // ADAFRUITIO_AIRLIFT_H
0 commit comments