Beispiel #1
0
void bringUpMqtt()
{
    unsigned brokerConnectionTryLimit = 10;
    unsigned count = 0;
    // if we lost wifiConnectivity, we need to break out and
    // go back to bringing up wifi
    debugSerial.println("ARDUINO: Inside bringUpMqtt()");


    if( !mqttClient.init() )
    {
        debugSerial.println("ARDUINO: Bad news, mqtt client failed to initialize correctly");
        return;
    }

    while(!MqttClient::connected && (count < brokerConnectionTryLimit) )
    {
        debugSerial.println("ARDUINO: Connecting mqttClient");
        mqttClient.connect(SERVER_NAME, SERVER_PORT, false);
        // process 10 times
        espMultipleProcess(10);
        delay(100);
        espMultipleProcess(10);

        ++count;
    }
    debugSerial.println("ARDUINO: Leaving bringUpMqtt()");

    return;
}
Beispiel #2
0
void GizWits_DevStatusUpgrade(uint8_t * P0_Buff, uint32_t Time, uint8_t flag, uint8_t ConfigFlag)
{
	uint8_t i = 0;
	uint8_t Report_Flag = 0;
	Pro_HeadPartP0CmdTypeDef *Pro_D2W_ReportStatusStruct = (Pro_HeadPartP0CmdTypeDef *)g_DevStatus;
	
    //等待上一次主动上报后判断ACK的状态,flg = 1:放弃主动上报 flg = 0:可以主动上报
  	if( ConfigFlag == 1 || Wait_AckStruct.Flag == 1)
	{
        return; 
	}
    if(flag == 1) 
    {
        Report_Flag = 1;
        goto Report; 
    }
	
    //设备的状态的变化是由于用户触发或环境变化所产生的, 其发送的频率不能快于2秒每次
    if((2 * 1000) < (SystemTimeCount - Last_ReportTime)) 
    {
        if(memcmp(g_DevStatus + sizeof(Pro_HeadPartP0CmdTypeDef), P0_Buff, g_P0DataLen) != 0)
        {
            Report_Flag = 1;
        }
    }

    //每隔十分钟定时主动上报
    if((Time * 6 * 10) < (SystemTimeCount - Last_Report_10_Time)) 
	{
        mySerial.println("%%%%%%%%%%%%%%%10 minutes regular reporting%%%%%%%%%%%%%%%"); 
		Report_Flag = 1;
        Last_Report_10_Time = SystemTimeCount; 
	}
	
Report:
	if(Report_Flag == 1)
	{
        memcpy(g_DevStatus + sizeof(Pro_HeadPartP0CmdTypeDef), P0_Buff, g_P0DataLen);

        Pro_D2W_ReportStatusStruct->Pro_HeadPart.Len = exchangeBytes(sizeof(Pro_HeadPartP0CmdTypeDef) + 1 + g_P0DataLen - 4);
        Pro_D2W_ReportStatusStruct->Pro_HeadPart.Cmd = Pro_D2W_P0_Cmd;
        Pro_D2W_ReportStatusStruct->Pro_HeadPart.SN = SN++;
        Pro_D2W_ReportStatusStruct->Action = P0_D2W_ReportDevStatus_Action;
        g_DevStatus[sizeof(Pro_HeadPartP0CmdTypeDef) + g_P0DataLen] = CheckSum(g_DevStatus, sizeof(Pro_HeadPartP0CmdTypeDef) + g_P0DataLen + 1);
        Pro_UART_SendBuf((uint8_t *)Pro_D2W_ReportStatusStruct, sizeof(Pro_HeadPartP0CmdTypeDef) + g_P0DataLen + 1, 1);//最后一位为 4.3/4.4/4.9 的重发机制开关

        Last_ReportTime = SystemTimeCount;

#if(DEBUG==1)
		mySerial.print("[");mySerial.print(SystemTimeCount,DEC);mySerial.print("]");mySerial.print(" MCU   :");
		for(i = 0; i < (sizeof(Pro_HeadPartP0CmdTypeDef) + g_P0DataLen + 1); i++)
		{
		  mySerial.print(" "); mySerial.print(g_DevStatus[i],HEX);
		}
		mySerial.println("");
#endif

	}
	return;
}
Beispiel #3
0
void ICACHE_FLASH_ATTR GlobalsClass::begin()
{
	//serveron("/probesave", handleProbeSave);	
	//MyWebServer.ServerON("/test", &TestCallback);
    //MyWebServer.CurServer->on("/test", TestCallback);
	server.on("/flashavr", FlashHM);
	server.on("/hm/curinfo", sendHMJsonweb);
	server.on("/hm/set", setHMweb);
	server.on("/testgz", testgz);
	
	MyWebServer.jsonSaveHandle = &JsonSaveCallback;  //server on jsonsave file we hook into it to see which one and process....

#ifdef SoftSerial
#include <SoftwareSerial.h>
	qCon.begin(HM_COM_BAUDRATE);
	delay(20);
//	qCon.enableRx(true);
	delay(20);
#endif

#ifdef HardSerial
		#ifdef HardSerialSwap
			Serial.swap();  //toggle between use of GPIO13/GPIO15 or GPIO3/GPIO(1/2) as RX and TX
		#endif
#endif

	if (WiFi.status() == WL_CONNECTED)
	{
		// ... print IP Address to HM
		qCon.println("/set?tt=WiFi Connected,"+ (String)WiFi.localIP()[0] + "." + (String)WiFi.localIP()[1] + "." + (String)WiFi.localIP()[2] + "." + (String)WiFi.localIP()[3]);
	} else qCon.println("/set?tt=WiFi NOT, Connected!!"); 
	
}
Beispiel #4
0
void ICACHE_FLASH_ATTR GlobalsClass::ConfigAlarms(String msgStr)
{   //format is $ALARM,10,20,30,40,50,60,70,80   (lo/hi pairs);  send to comport;
	msgStr.replace("$ALARM,", "");  //remove the alarm command and send rest to HM
	qCon.println("/set?al="+msgStr); delay(comdelay);
	DebugPrintln("setting new alarms " + msgStr);
	qCon.println("/set?tt=Web Alarms,Updated.."); delay(comdelay);
}
Beispiel #5
0
void setup()
{
  gprsSerial.begin(9600);
  Serial.begin(9600);

  Serial.println("Config SIM900...");
  delay(2000);
  Serial.println("Done!...");
  gprsSerial.flush();
  Serial.flush();

  // attach or detach from GPRS service 
  gprsSerial.println("AT+CGATT?");
  delay(100);
  toSerial();


  // bearer settings
  gprsSerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
  delay(2000);
  toSerial();

  // bearer settings
  gprsSerial.println("AT+SAPBR=3,1,\"APN\",\"airtelgprs.com\"");
  delay(2000);
  toSerial();

  // bearer settings
  gprsSerial.println("AT+SAPBR=1,1");
  delay(2000);
  toSerial();
}
void sensor_setup(){  
  temp_sensor.begin();//initialize one wire sensor
  temp_sensor.setResolution(insideThermometer, 9);  //configure sensor parameters 
  
   
#ifdef DEBUG_SENS
  // report on finding the devices on the bus or not
  if (!temp_sensor.getAddress(insideThermometer, 0)) softdebug.println("Unable to find address for Device 0");
  else{  
    
    // report parasite power requirements
    softdebug.print("Parasite power is: "); 
    if (temp_sensor.isParasitePowerMode()) softdebug.println("ON");
    else softdebug.println("OFF");
    
    sensors_temperature(); //print temperature for debugging
    
  }
  
  //print voltage sensor value for debugging
  softdebug.print("Vin=");
  softdebug.println(sensors_vin());
  
#endif //DEBUG_SENS
}
Beispiel #7
0
void GlobalsClass::SendProbesToHM(String fname) {   //sends Probes info to HM
	String values = "";
	String hmsg;
	File f = SPIFFS.open(fname, "r");
	if (f) { // we could open the file 
		values = f.readStringUntil('\n');  //read json         
		f.close();

		//WRITE CONFIG TO HeaterMeter

		DynamicJsonBuffer jsonBuffer;

		JsonObject& root = jsonBuffer.parseObject(values);  //parse json data
		if (!root.success())
		{
			DebugPrintln("parseObject() failed");
			return;
		}
		//const char* sensor    = root["sensor"];
		//long        time      = root["time"];
		//double      latitude  = root["data"][0];
		//double      longitude = root["data"][1];           }

		qCon.println(String("/set?pn0=") + root["p0name"].asString()); delay(comdelay);
		qCon.println(String("/set?pn1=") + root["p1name"].asString()); delay(comdelay);
		qCon.println(String("/set?pn2=") + root["p2name"].asString()); delay(comdelay);
		qCon.println(String("/set?pn3=") + root["p3name"].asString()); delay(comdelay);

		//Set offsets
		hmsg = String("/set?po=") + root["p0off"].asString() + "," + root["p1off"].asString() + "," + root["p2off"].asString() + "," + root["p3off"].asString();
		qCon.println(hmsg); delay(comdelay);
		DebugPrintln(hmsg);



		//Set Probe coeff.
		hmsg = String("/set?pc0=") + root["p0a"].asString() + "," + root["p0b"].asString() + "," + root["p0c"].asString() + "," + root["p0r"].asString() + "," + root["p0trm"].asString();
		qCon.println(hmsg); delay(comdelay);
		DebugPrintln(hmsg);
		hmsg = String("/set?pc1=") + root["p1a"].asString() + "," + root["p1b"].asString() + "," + root["p1c"].asString() + "," + root["p1r"].asString() + "," + root["p1trm"].asString();
		qCon.println(hmsg); delay(comdelay);
		DebugPrintln(hmsg);
		hmsg = String("/set?pc2=") + root["p2a"].asString() + "," + root["p2b"].asString() + "," + root["p2c"].asString() + "," + root["p2r"].asString() + "," + root["p2trm"].asString();
		qCon.println(hmsg); delay(comdelay);
		DebugPrintln(hmsg);
		hmsg = String("/set?pc3=") + root["p3a"].asString() + "," + root["p3b"].asString() + "," + root["p3c"].asString() + "," + root["p3r"].asString() + "," + root["p3trm"].asString();
		qCon.println(hmsg); delay(comdelay);
		DebugPrintln(hmsg);

		//Set Alarm offsets
		hmsg = String("/set?al=") + root["p0all"].asString() + "," + root["p0alh"].asString() + "," + root["p1all"].asString() + "," + root["p1alh"].asString() + "," + root["p2all"].asString() + "," + root["p2alh"].asString() + "," + root["p3all"].asString() + "," + root["p3alh"].asString();
		qCon.println(hmsg); delay(comdelay);
		DebugPrintln(hmsg);
		qCon.println("/set?tt=Web Settings,Updated!!"); delay(comdelay);
		qCon.println("/save?"); delay(comdelay);

	}  //open file success

}
Beispiel #8
0
void ICACHE_FLASH_ATTR GlobalsClass::SetTemp(int sndTemp)   //send temperature to HM via serial....
{	
	if (sndTemp>0)
		{
			qCon.println(String("/set?sp=") + String(sndTemp));
			qCon.println(String("/set?tt=Remote Temp,Set to ") + String(sndTemp));
			DebugPrintln(String("Setting Remote Temp ") + String(sndTemp));
			hmSetPoint = String(sndTemp);
		}
	
}
Beispiel #9
0
int main(){
    init();

    setup();

    while(1){
//        uint32_t tt = micros();
        Serial.write('A');
        
        uint16_t i;
        pkt a;
        readPkt((char *) &a);
        // mySerial.println(micros() - tt);
        // mySerial.println("---");
        // mySerial.println(a.cmd);
        // mySerial.println(a.laser);
        // mySerial.println(a.steps);
        // delay(1000);

        digitalWrite(LASER, a.laser ? HIGH : LOW);
        
        if(a.cmd < 4){
            // uint16_t deli = DELAY + 10 * analogRead(KNOB);
            for(i=0;i+1<a.steps;i++){
                step(a.cmd);
                // delayMicroseconds(DELAY + 5*analogRead(KNOB));
                // delayMicroseconds(deli);
                delayMicroseconds(DELAY);
            }
            step(a.cmd);
            // uint32_t del_corrected = analogRead(KNOB);
            delayMicroseconds(DEL_CORRECTED);
            // delayMicroseconds(deli - 2400);
            // mySerial.println(deli);
            // mySerial.println(del_corrected);          
        }
        else if(a.cmd == 4){
            digitalWrite(ENABLE, LOW);
            delay(100);
        }
        else if(a.cmd == 5){
            digitalWrite(ENABLE, HIGH);
            digitalWrite(LASER, LOW); // just in case
            mySerial.println("Finished");
            delay(1000);
        }
        else {
            mySerial.println("?");
        }
    }

    return 0;
}
Beispiel #10
0
void Log_UART_SendBuf(uint8_t *Buf, uint16_t PackLen)
{
	uint16_t i;

	#if(DEBUG==1)
		mySerial.println("MCU   :");
		for(i = 0; i < PackLen; i++)
		{
		  mySerial.print(" "); mySerial.print(Buf[i],HEX);
		}
		mySerial.println("");
	#endif
}
String checkAndReleaseConnection() {
	debugSerial2.print(F("Current Status: "));
	String status = wifi.getIPStatus();
	debugSerial2.println(status);
	if (status.indexOf("STATUS:3") != -1) {
		if (wifi.releaseTCP()) {
			debugSerial2.print(F("release tcp ok\r\n"));
		} else {
			debugSerial2.print(F("release tcp err\r\n"));
		}
	} else {
		debugSerial2.println(F("no connection to release"));
	}
	return status;
}
int sensors_temperature(){
    
// call temp_sensor.requestTemperatures() to issue a global temperature request to all devices on the bus
  temp_sensor.requestTemperatures(); // Send the command to get temperatures
// call temp_sensor.getTempC to read temperature in degrees Celsius from the device
  int temperature =(int) temp_sensor.getTempC(insideThermometer);
 
#ifdef DEBUG_SENS  
  softdebug.println();
  softdebug.print("Temp C: ");
  softdebug.println(temperature);
#endif
    
  return temperature;
}
Beispiel #13
0
void bringUpWifi()
{
    unsigned triesBeforeChipReset = 2000;
    unsigned count = 0;
    while(!wifiConnected)
    {
        // Start by putting chip in known state
        esp.enable();
        delay(500);
        hardResetEspChip();
        delay(1000);
        esp.reset();
        delay(500);
        while(!esp.ready())
        {
            digitalWrite(HEART_BEAT_LED, HIGH);
            delay(1000);
            digitalWrite(HEART_BEAT_LED, LOW);
            delay(1000);
            if(count >= 3)
            {
                debugSerial.println("ARDUINO: Resetting ESP chip");
                esp.enable();
                delay(500);
                hardResetEspChip();
                delay(1000);
                esp.reset();
                delay(500);
                count = 0;
            }

            count++;
        }


        /*setup wifi*/
        debugSerial.println("ARDUINO: Setting up wifi");
        esp.wifiConnect(SSID,PASSWORD);
        // We should chill here until we get a wifi connection
        while(!wifiConnected && (count < triesBeforeChipReset) )
        {
            esp.process();
            delay(100);
            ++count;
        }
        count = 0;
    }
}
Beispiel #14
0
void loop()
{
  if (Serial.available())
    if (mySerial.available())
      mySerial.println(Serial.read());
      Serial.write(mySerial.read());
}
Beispiel #15
0
/*******************************************************************************
* Function Name  : Pro_GetMcuInfo
* Description    : WiFi模组请求设备信息
* Input          : None
* Output         : None
* Return         : None
* Attention		   : None
*******************************************************************************/
void Pro_W2D_GetMcuInfo(void)
{
	Pro_CommonCmdTypeDef Pro_CommonCmdStruct;
	uint8_t i = 0;
	memcpy(&Pro_CommonCmdStruct, UART_HandleStruct.Message_Buf, sizeof(Pro_CommonCmdStruct));

	Pro_M2W_ReturnInfoStruct.Pro_HeadPart.SN = Pro_CommonCmdStruct.Pro_HeadPart.SN;
	Pro_M2W_ReturnInfoStruct.Sum = CheckSum((uint8_t *)&Pro_M2W_ReturnInfoStruct, sizeof(Pro_M2W_ReturnInfoStruct));
	Pro_UART_SendBuf((uint8_t *)&Pro_M2W_ReturnInfoStruct,sizeof(Pro_M2W_ReturnInfoStruct), 0);

#if(DEBUG==1)
	mySerial.print("[");mySerial.print(SystemTimeCount,DEC);mySerial.print("]");mySerial.print(" MCU   :");
	for(i = 0; i < sizeof(Pro_M2W_ReturnInfoStruct); i++)
	{
	  mySerial.print(" "); mySerial.print(*((uint8_t *)&Pro_M2W_ReturnInfoStruct + i),HEX);
	}
	mySerial.println("");
#endif

// 	Log_UART_SendBuf((uint8_t *)&Pro_M2W_ReturnInfoStruct,sizeof(Pro_M2W_ReturnInfoStruct));
// 	
//  /******************************????*********************************************/	
// 	printf("W2D_GetMcuInfo...\r\n");
// 	printf("PRO_VER:"); 		printf(PRO_VER); 			printf("\r\n");
// 	printf("P0_VER:");			printf(P0_VER);				printf("\r\n");
// 	printf("P0_VER:");      printf(HARD_VER);			printf("\r\n");
// 	printf("SOFT_VER:");    printf(SOFT_VER);			printf("\r\n");
// 	printf("PRODUCT_KEY:"); printf(PRODUCT_KEY);  printf("\r\n");
// /***********************************************************************************/	   
}
Beispiel #16
0
void GizWits_D2WConfigCmd(uint8_t WiFi_Mode)
{
	uint8_t i = 0;
	Pro_D2W_ConfigWifiTypeDef Pro_D2WConfigWiFiMode;
	
	Pro_D2WConfigWiFiMode.Pro_HeadPart.Head[0] = 0xFF;
	Pro_D2WConfigWiFiMode.Pro_HeadPart.Head[1] = 0xFF;
	Pro_D2WConfigWiFiMode.Pro_HeadPart.Len = exchangeBytes(sizeof(Pro_D2W_ConfigWifiTypeDef) - 4);
	Pro_D2WConfigWiFiMode.Pro_HeadPart.Cmd = Pro_D2W_ControlWifi_Config_Cmd;
    Pro_D2WConfigWiFiMode.Pro_HeadPart.SN = SN++;
	Pro_D2WConfigWiFiMode.Pro_HeadPart.Flags[0] = 0x00;
	Pro_D2WConfigWiFiMode.Pro_HeadPart.Flags[1] = 0x00;
	Pro_D2WConfigWiFiMode.Config_Method = WiFi_Mode;
	Pro_D2WConfigWiFiMode.Sum = CheckSum((uint8_t *)&Pro_D2WConfigWiFiMode, sizeof(Pro_D2W_ConfigWifiTypeDef));
	Pro_UART_SendBuf((uint8_t *)&Pro_D2WConfigWiFiMode, sizeof(Pro_D2W_ConfigWifiTypeDef), 1); //最后一位为 4.3/4.4/4.9 的重发机制开关
	
#if(DEBUG==1)
	mySerial.print("[");mySerial.print(SystemTimeCount,DEC);mySerial.print("]");mySerial.print(" MCU   :");
	for(i = 0; i < (sizeof(Pro_D2W_ConfigWifiTypeDef)); i++)
	{
	  mySerial.print(" "); mySerial.print(*((uint8_t *)&Pro_D2WConfigWiFiMode + i),HEX);
	}
	mySerial.println("");
#endif
}
void MqttsClientApplication::runLoop(){

    while(true){
        int rc = execMsgRequest();
        if ((rc != MQTTS_ERR_NO_ERROR || getMsgRequestCount() != 0) &&
                getMsgRequestStatus() != MQTTS_MSG_REQUEST){
                clearMsgRequest();
                #ifdef DEBUG_MQTTS
                debug.print(" ErrCode=");
                debug.println(rc,DEC);
                #endif
        }
        blinkIndicator(1);

        // interrupt Event
       if (MQ_intStat == INT0_LL){
           MQ_intStat = INT0_WAIT_HL;
           interruptHandler();
           setInterrupt();
       }

       // WDT event
       if (_sleepMode == MQ_MODE_NOSLEEP){
           if (MQ_wdtStat == INT_WDT){
               _wdTimer.wakeUp();
               _wdTimer.start();
           }
       }else{
           sleepXB();
           sleepApp();
           wakeupXB();
       }
    }
}
void loop()
{
    sendMsg = "";
    recvMsg = "";
    while (Serial.available()) {
        sendMsg += (char)Serial.read();
        delay(2);
    }

    if(sendMsg.length() > 0)
    {
        mySerial1.println(sendMsg);
        Serial.print("I send: ");
        Serial.println(sendMsg);
    }
    while (mySerial2.available()) {
        recvMsg += (char)mySerial2.read();
        delay(2);
    }
    if(recvMsg.length() > 0)
    {
        Serial.print("I recv: ");
        Serial.println(recvMsg);
    }
    //delay(20);
}
//---------------------------------------------------------------------
void loop() 
{
  // comming from wake-up?
  //pinMode(DALLAS_SENSOR_PIN, OUTPUT);
  LaCrosse.setTxPinMode(OUTPUT);
  
  power_adc_enable();
  delay(500); // ms, needed for settling DS18B20
  
  //--- [0] Betriebsspannung auslesen  
  lngVcc          = getVcc();   // as long
  controller_VCC  = (lngVcc/1000.0);  // as float in Volt, not millivolts (sent as HUM !
  
  //--- [2] read Dallas-Sensor
  float theta = ReadSingleOneWireSensor(dallas);

  #ifdef USE_SOFT_SERIAL_FOR_DEBUG
    //--- debug-output-block
    //softSerial.print("Vcc: ");
    //softSerial.print( (float) controller_VCC, 1);
    //softSerial.print("   Vcc_read: ");
    //softSerial.print((long) lngVcc);
    //softSerial.print("   ");  
    softSerial.print("Feuchte: ");
    softSerial.print( (float) bodenfeuchte, 1);
    softSerial.print("    ");
    softSerial.print("Temp: ");
    softSerial.println( (float) theta, 1);
  #endif 
  
  //--- transfer measured values to LaCrosse-instance
  LaCrosse.bSensorId = SENSOR_ID;
  LaCrosse.t = theta;    //--- alias temperature;  
  LaCrosse.sendTemperature();
  
  LaCrosse.sleep(1);        /* 1 second, no power-reduction! */

  #ifdef USE_SEPARATE_BATTERIE_ID 
    LaCrosse.bSensorId = SENSORID_BATTERIE;
  #endif 
  
  //LaCrosse.h = bodenfeuchte/1000; //   controller_VCC;    
  //LaCrosse.sendHumidity();
  //LaCrosse.sleep(1);        /* 1 second, no power-reduction! */


  //--- preserve more power during sleep phase 
  pinMode(DALLAS_SENSOR_PIN, INPUT);  
  LaCrosse.setTxPinMode(INPUT);

  //--- switch AD-converter off
  power_adc_disable(); 

  //--- fall to deep powersave-sleep, see notes in comments and 
  Narcoleptic.delay_minutes(DEEP_SLEEP_MINUTES);

  //--- deep sleep or test?
  //delay(10000); // 10 Sec 
}
Beispiel #20
0
void phone::acceptCall()
{
#if PHONESOFTSERIAL
    mySerial.println("ATA");
#else
    Serial.println("ATA");
#endif
}
Beispiel #21
0
// hand up a call
void phone::handUpCall()   
{
#if PHONESOFTSERIAL
    mySerial.println("ATH");
#else
    Serial.println("ATH");
#endif
}
int getTgs4161(byte tgsPin) {

	//digitalWrite(figaroCircuit, LOW); // disconect R12 of the circuit (only for tgs2442)

	currentMillis = millis();
	previousMillis = currentMillis;

	while (currentMillis - previousMillis < heatTime) { //read during heater Time

		currentMillis = millis();
		//Serial.println(currentMillis - previousMillis);

//		figaroCO2Val = getAverage(tgsPin, 32, 1000); // take average measurement here every 1ms

//		incEmc = computeVolts((computeAdc(TGS4161_350) - figaroCO2Val)) * 1000;
//		incEmc = computeVolts((figaroCO2Val)) * 1000;
		if (incEmc < 0)
			incEmc = 0;

		ppm = pow(10, ((incEmc + 158.631) / 62.877));
		debugSerial2.print("PPM RAW: ");
		debugSerial2.print(ppm);
		if (ppm > 10000)
			ppm = 10000;

		ppm = (alphaTgs * ppm_last + (1 - alphaTgs) * ppm); //smoothing
		ppm_last = ppm;

		debugSerial2.print(" RAW CO2: ");
//		debugSerial2.print(computeVolts(figaroCO2Val), 4);
		debugSerial2.print("  AEMC: ");
		debugSerial2.print(incEmc);
		debugSerial2.print("  ADC: ");
		debugSerial2.print(computeAdc(TGS4161_350));
		debugSerial2.print("  PPM: ");
		debugSerial2.println(ppm);
	}

	//digitalWrite(figaroCO2Heater, HIGH); // turn OFF heater VCC

	debugSerial2.print("Final PPM: ");
	debugSerial2.println(ppm);

	return ((int) ppm);

}
void loop() {
	mySerial.println("SCANEND");
	Serial.println("SCANEND");
	if(ardfinder.find("SCAN")){
		Serial.println("Start Scan:");
		scan(ranges);
		report(ranges);
	}
}
Beispiel #24
0
void DinoSerial::process(int cmd, char *message) {
  switch(cmd) {
    case 0:  setPins(message);            break;
    case 1:  begin(message);              break;
    case 2:  softSerial.print(message);   break;
    case 3:  softSerial.println(message); break;
    default:                              break;
  }
}
Beispiel #25
0
bool wificmd(String cmd, String verify) {
    ESPserial.println("AT+"+cmd);
    if(verify != "") {
        if(ESPserial.find("OK")) {
            return true;
        }
        return false;
    }
    return true;
}
Beispiel #26
0
bool sendCmd(Cmd cmd)
{
    static const char* itemCurtains = "curtains";
    static const char* itemLights = "overHeadLights";
    static const char* itemPixels = "pixelWall";
    static const char* itemFan = "fan";

    // figure out which itemName we are talking to
    const char* itemName = 0;
    switch(cmd)
    {
    case e_cmdButton1:
        itemName = itemCurtains;
        break;
    case e_cmdButton2:
        itemName = itemLights;
        break;
    case e_cmdButton3:
        itemName = itemPixels;
        break;
    case e_cmdButton4:
        itemName = itemFan;
        break;
    default:
        debugSerial.println("ARDUINO: Bad cmd passed to sendCmd()\n");
        itemName = "";
        return false;
    }
    char topic[32] = {0};
    sprintf(topic, "/%s/%s", "bedroom1", itemName);

    char mesg[64] = {0};
    sprintf(mesg, "{\"command\":\"toggle\"}");
    debugSerial.println("");
    debugSerial.println(topic);
    debugSerial.println(mesg);

    // Send out command over mqtt protocol
    mqttClient.publish(topic, mesg);

    return true;
}
Beispiel #27
0
void serialEvent(void)
{
	uint8_t value = 0;
	value = (unsigned char)Serial.read();
	if(rb_can_write(&u_ring_buff) > 0)
	{
		rb_write(&u_ring_buff, &value, 1);
	}

	mySerial.println(value, HEX);//不加这句容易出BUG
}
Beispiel #28
0
 bool S4::writeData()
 {
     bool wait = true;
     int command;
     if(S4GPS.getGPS(gps))
     {   
         sensorData += "</sensor>";
        
        
         Serial.print("<gps>");
         Serial.print(deviceName);
         Serial.print(",");  
         Serial.print(gps);
         Serial.println("</gps>");
         Serial.println(sensorData);
         
         
         microSerial.print("<gps>");
         microSerial.print(deviceName);
         microSerial.print(",");
         microSerial.print(gps);
         microSerial.println("</gps>");
         microSerial.println(sensorData);
         
         if(WiFiIsOn)
         {
             SpiSerial.print("<gps>");
             SpiSerial.print(deviceName);
             SpiSerial.print(",");  
             SpiSerial.print(gps);
             SpiSerial.println("</gps>");
             SpiSerial.println(sensorData);
             
             command = getIncommingMessage(); 
         }
         sensorData = "<sensor>";
         sensorData += deviceName;
         wait = false;
     }
     return wait;
   } 
Beispiel #29
0
void TinyServo::write(uint8_t servoNumber, float angle)
{
  uint16_t count = 900 + (1200.0f * angle / 180.0f);
  mySerial.print("count "); mySerial.println(count);
  if (count < 900) {
    count = 900;
  }
  if (count > 2100) {
    count = 2100;
  }
  servopwm[servoNumber] = count;
}
Beispiel #30
0
void GPS_setup()  
{
  //Serial.begin(115200);
  Serial.println("Adafruit GPS library basic test!");
  GPS.begin(9600);
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);   // 1 Hz update rate
  GPS.sendCommand(PGCMD_ANTENNA);
  useInterrupt(true);
  delay(1000);
  mySerial.println(PMTK_Q_RELEASE);
}