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; }
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; }
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!!"); }
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); }
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 }
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 }
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); } }
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; }
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; }
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; } }
void loop() { if (Serial.available()) if (mySerial.available()) mySerial.println(Serial.read()); Serial.write(mySerial.read()); }
/******************************************************************************* * 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"); // /***********************************************************************************/ }
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 }
void phone::acceptCall() { #if PHONESOFTSERIAL mySerial.println("ATA"); #else Serial.println("ATA"); #endif }
// 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); } }
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; } }
bool wificmd(String cmd, String verify) { ESPserial.println("AT+"+cmd); if(verify != "") { if(ESPserial.find("OK")) { return true; } return false; } return true; }
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; }
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 }
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; }
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; }
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); }