#include #include "user_interface.h" #include "ets_sys.h" #include "os_type.h" #include "osapi.h" #include "mem.h" #include "espconn.h" #include "mqtt.h" #include "onewire.h" #include "main.h" static os_timer_t oneTimer; static os_timer_t testTimer; LOCAL void ICACHE_FLASH_ATTR con(void *arg) { os_printf("Entered con!\n"); mqtt_session_t *pSession = (mqtt_session_t *)arg; mqtt_send(pSession, NULL, 0, MQTT_MSG_TYPE_CONNECT); os_timer_disarm(&oneTimer); os_timer_setfn(&oneTimer, (os_timer_func_t *)sub, arg); os_timer_arm(&oneTimer, 200, 0); } LOCAL void ICACHE_FLASH_ATTR pub(void *arg) { os_printf("Entered pub!\n"); mqtt_session_t *pSession = (mqtt_session_t *)arg; uint8_t data[] = "2.718281828459045"; int32_t dataLen = os_strlen(data); mqtt_send(pSession, &data[0], dataLen, MQTT_MSG_TYPE_PUBLISH); os_timer_disarm(&oneTimer); os_timer_setfn(&oneTimer, (os_timer_func_t *)ping, arg); os_timer_arm(&oneTimer, 200, 0); } LOCAL void ICACHE_FLASH_ATTR ping(void *arg) { os_printf("Entered ping!\n"); mqtt_session_t *pSession = (mqtt_session_t *)arg; mqtt_send(pSession, NULL, 0, MQTT_MSG_TYPE_PINGREQ); os_timer_disarm(&oneTimer); os_timer_setfn(&oneTimer, (os_timer_func_t *)sub, arg); os_timer_arm(&oneTimer, 200, 0); } LOCAL void ICACHE_FLASH_ATTR sub(void *arg) { os_printf("Entered sub!\n"); mqtt_session_t *pSession = (mqtt_session_t *)arg; mqtt_send(pSession, NULL, 0, MQTT_MSG_TYPE_SUBSCRIBE); } LOCAL void ICACHE_FLASH_ATTR discon(void *arg) { os_printf("Entered discon!\n"); mqtt_session_t *pSession = (mqtt_session_t *)arg; mqtt_send(pSession, NULL, 0, MQTT_MSG_TYPE_DISCONNECT); os_timer_disarm(&oneTimer); } void ICACHE_FLASH_ATTR user_init() { //uint8_t wifiStatus; LOCAL mqtt_session_t globalSession; LOCAL mqtt_session_t *pGlobalSession = &globalSession; char ssid[32] = "yourwifissid"; char passkey[64] = "yourwifipassword"; struct station_config stationConf; gpio_init(); // init gpio so we can use the LED wifi_status_led_install(0, PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0); // set GPIO0 as status LED stationConf.bssid_set = 0; os_memcpy(&stationConf.ssid, ssid, 32); // copy the ssid and passkey into the station_config struct os_memcpy(&stationConf.password, passkey, 64); wifi_set_opmode_current(0x01); //station mode wifi_station_set_config_current(&stationConf); // tell it about our config, this auto-connects us as well // prepare the TCP/MQTT connection stuff // Adafruit IO is at 52.5.238.97 static const char ioUser[11] = { 0x4d, 0x72, 0x41, 0x75, 0x72, 0x65, 0x6c, 0x69, 0x75, 0x73, 0x52 }; // MrAureliusR static const uint8_t ioUser_len = 11; static const char ioKey[32] = { 0x32, 0x63, 0x39, 0x36, 0x65, 0x30, 0x35, 0x61, 0x66, 0x34, 0x35, 0x30, 0x34, 0x31, 0x66, 0x31, 0x38, 0x36, 0x65, 0x62, 0x39, 0x30, 0x33, 0x32, 0x33, 0x31, 0x31, 0x31, 0x61, 0x32, 0x61, 0x38 }; // 2c96e05af45041f186eb90323111a2a8 static const uint8_t ioKey_len = 32; static const char ioTopic[37] = { 0x4d, 0x72, 0x41, 0x75, 0x72, 0x65, 0x6c, 0x69, 0x75, 0x73, 0x52, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x62, 0x65, 0x64, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x62, 0x65, 0x64, 0x72, 0x6f, 0x6f, 0x6d, 0x74, 0x65, 0x6d, 0x70 }; static const uint8_t ioTopic_len = 37; static const char clientID[5] = { 0x46, 0x5a, 0x5a, 0x4e, 0x30 }; static const uint8_t clientID_len = 5; pGlobalSession->port = 1883; // mqtt port static const char adafruitIO_ip[4] = {52, 5, 238, 97}; os_memcpy(pGlobalSession->ip, adafruitIO_ip, 4); pGlobalSession->username_len = ioUser_len; pGlobalSession->username = os_zalloc(sizeof(uint8_t) * pGlobalSession->username_len); os_memcpy(pGlobalSession->username, ioUser, pGlobalSession->username_len); pGlobalSession->password_len = ioKey_len; pGlobalSession->password = os_zalloc(sizeof(uint8_t) * pGlobalSession->password_len); os_memcpy(pGlobalSession->password, ioKey, pGlobalSession->password_len); pGlobalSession->topic_name_len = ioTopic_len; pGlobalSession->topic_name = os_zalloc(sizeof(uint8_t) * pGlobalSession->topic_name_len); os_memcpy(pGlobalSession->topic_name, ioTopic, pGlobalSession->topic_name_len); pGlobalSession->client_id_len = clientID_len; pGlobalSession->client_id = os_zalloc(sizeof(uint8_t) * pGlobalSession->client_id_len); os_memcpy(pGlobalSession->client_id, clientID, pGlobalSession->client_id_len); os_timer_setfn(&oneTimer, (os_timer_func_t *)tcpConnect, pGlobalSession); os_timer_arm(&oneTimer, 15000, 0); os_timer_setfn(&testTimer, (os_timer_func_t *)con, pGlobalSession); os_timer_arm(&testTimer, 16000, 0); }