void fix_connection(){
    Serial.println("Fixing WiFi");
    WiFi.disconnect();
    delay(1000);
    WiFi.off();
    delay(1000);
    WiFi.on();
    delay(1000);
    connect_wifi();
}
void setup() { 
	delay(1000); // Serial for print and debug 
	Serial.begin(115200); 
	Serial.setTimeout(5000); 
	delay(1000); // Serial1 for communicate with esp8266 
	Serial1.begin(115200); 
	Serial.setTimeout(5000); 
	delay(1000); 
	Serial1.println("AT+RST"); 
	Serial.println("AT+RST"); 
	if(Serial1.find("OK")) { 
		Serial.println("Module is ready!"); 
	} else { 
		Serial.println("Module is no response!"); 
		//while(1); 
	} 
	delay(1000); 
	Serial1.println("AT"); 
	if(Serial1.find("OK")) { 
		Serial.println("OK"); 
	} else { 
		Serial.println("Fail"); 
		//while(1); 
	} 
	delay(1000); 
	Serial1.println("AT+GMR"); 
	while(Serial1.available()){ 
		char c = Serial1.read(); 
		Serial.write(c); 
		if(c == '\r') 
			Serial.print('\n'); 
	} 
	int cnt = 0; 
	bool connected = false; 
	for (cnt = 0; cnt < 5; cnt++) { 
		if(connect_wifi()) { 
			connected = true; 
			break; 
		} 
	} if(!connected){ 
		Serial.println("Connect to wifi failed"); 
		while(1); 
	} 
	delay(5000); 
	Serial1.println("AT+CIPMUX=0"); 
} 
void setup() {
    Serial.begin(9600);
    Serial.println("beginning");
    RGB.control(true);
    RGB.brightness(5);
    connect_wifi();
    Serial.println("running");
    Serial.println(request.path);
    String s_path = String("/api/"+API_VERSION+"/node/"+myIDStr+"/sensors");
    s_path.toCharArray(path, 64);
    String cook = String("lablog="+myIDStr);
    cook.toCharArray(cookie, 64);
    request.hostname = "crtlabsdev.realtors.org";
    request.port = 80;
    request.path = path;
    light.init();
    voc.init();
    co2.init();
    dht.begin();
    dust.begin();
}
void ICACHE_FLASH_ATTR user_init()
{
    // init UART for debugging baud rate comes from user_config.h
    uart_div_modify(0, UART_CLK_FREQ / BAUD_RATE);
    os_printf("\r\nESP8266 OOK decoding\r\n");

    // speed boost (hopefully)
    //system_update_cpu_freq(160);
    system_update_cpu_freq(80);

    // setup loop callback in system task queue
    system_os_task(loop, user_procTaskPrio, user_procTaskQueue, user_procTaskQueueLen);
    system_os_post(user_procTaskPrio, 0, 0);

    // init wifi using creds in wifi_config.h. Put your own creds in the file
    connect_wifi(WIFI_SSID, WIFI_PSK);

    // apparently an accurate system time is needed for SSL, so start up
    //   SNTP stuff.
    // SNTP is also used for timestamping emails and alarm triggeringings
    sntp_setservername(0, "time.nist.gov");
    sntp_setservername(1, "time-c.nist.gov");
    sntp_set_timezone(TIMEZONE);
    sntp_init();

    // init stuff for the ook decoder
    gpio_init();
    gpio_intr_handler_register(ook_intr_handler, (void*) &unprocessedPackets);
    init_ook_decoder();

    // webserver-related initialisation
    init_web_server();
    attach_btn_clear(clearTriggeredSensors);
    attach_btn_arm_alarm(arm_alarm);
    attach_btn_disarm_alarm(disarm_alarm);
    // update so we don't just have a blank page on startup
    updateWebpage(); 
}
void loop() {
    light.read();
    voc.read();
    dust.read();
    if (nextTime > millis()) return;
    if(WiFi.ready()){
        char json_body[128];
        char body_out[128];
        sprintf(json_body, "{\"temperature\":%.2f, \"humidity\":%.2f, \"light\":%d , \"co2\":%d, \"voc\":%d, \"dust\":%.2f}", dht.readTemperature(false), dht.readHumidity(), light.read(), co2.read(), voc.read(), dust.read());
        Serial.println(json_body);
        aes_128_encrypt(json_body, KEY, body_out);
        memcpy(request.body, body_out, 128);
        http.post(request, response, headers);
        nextTime = millis() + 1000;
        Serial.print("Response status: ");
        Serial.println(response.status);
        if(response.status == -1){
            fix_connection();
        }
    }else{
        connect_wifi();
    }
}
Пример #6
0
static gboolean connect_call_back(gpointer user_data)
{
       char *dev;
       char * key=NULL;
       dev="eth0";
#if MY_PC_DEBUG == 0
       iwconfig_eth0_key(dev,"off");
#endif
       //if(net)
        //  g_free(net);
       /*else if (!strcmp(tag_key,"on")) 
       {     net=g_strdup(tag_essid);
             //GtkWidget *dialog_window_temp=popup_widow_password (applet->wifi_list_window);
             if (gtk_dialog_run(GTK_DIALOG(dialog_window_temp)) == GTK_RESPONSE_ACCEPT)
             {  printf("Connect_Button_Pressed-KEY\n");
                key = gtk_entry_get_text (GTK_ENTRY (g_object_get_data(G_OBJECT (dialog_window_temp), "entry")));
                printf("key=%s\n",key);
                printf("aaaaaaaaaaaaaaaaaaaaaaaaaaaa\n");
	        iwconfig_eth0_key(dev,key);
	        iwconfig_eth0_key(dev,"on");
                iwconfig_eth0_essid(dev,net);
		gtk_widget_destroy(dialog_window_temp); 
                g_idle_add(connect_wifi, applet);
                return FALSE;
             }
        }*/

	   //net=g_strdup(tag_essid);
#if MY_DEBUG_OUT == 1
	   g_print("dev=%s\n",dev);
	   g_print("selectEssid=%s\n",selectEssid);
	   g_print("selectPassword=%s\n",selectPassword);
#endif
	   //g_print("tag_key=%s\n",tag_key);
	   //如果是关闭密码状态
	   if(strcmp(selectPassword,"on"))
	   {
#if MY_PC_DEBUG == 0
		   iwconfig_eth0_essid(dev,selectEssid); 
#endif
		   //g_idle_add(connect_wifi, NULL);
		   connect_wifi(NULL);
	   } 
		gtk_button_set_label(GTK_BUTTON(Connect_Button), "Disconnect");
     /*else
       {  
	   GtkWidget *dialog_window_temp=popup_widow_password (applet->wifi_list_window);
           if (gtk_dialog_run(GTK_DIALOG(dialog_window_temp)) == GTK_RESPONSE_ACCEPT)
           {   printf("Connect_Button_Pressed-KEY\n");
               key = gtk_entry_get_text (GTK_ENTRY (g_object_get_data(G_OBJECT (dialog_window_temp), "entry")));
               printf("key=%s\n",key);
               printf("aaaaaaaaaaaaaaaaaaaaaaaaaaaa\n");
	       iwconfig_eth0_essid(dev,net);
	       iwconfig_eth0_key(dev,key);
	       iwconfig_eth0_key(dev,"on");
		gtk_widget_destroy(dialog_window_temp); 
               g_idle_add(connect_wifi, applet);
           }
          else        
           {
                gtk_widget_destroy(dialog_window_temp);
		GtkWidget * IP_Con_Button = glade_xml_get_widget(applet->wifi_list_window->windowXML, "IP_Button");
		GtkWidget * Scan_Button = glade_xml_get_widget(applet->wifi_list_window->windowXML, "Scan_Button");
		GtkWidget * Connect_Button = glade_xml_get_widget(applet->wifi_list_window->windowXML, "Connect_Button");
		gtk_widget_set_sensitive(IP_Con_Button, TRUE);
		gtk_widget_set_sensitive(Scan_Button, TRUE);
		gtk_widget_set_sensitive(Connect_Button, TRUE);
                nma_set_state (applet, NM_STATE_DISCONNECTED);
           }         
      }*/
	
   return FALSE;
}