using websocket to dynamic display sensor data on webpage; sends alert email from mbed.

Dependencies:   BroadcastSend EthernetInterface OneWire2 SimpleSMTPClient mbed-rpc mbed-rtos

Committer:
cryptoc
Date:
Thu Feb 18 20:04:08 2016 +0000
Revision:
3:26beaa8b94ce
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cryptoc 3:26beaa8b94ce 1 /**Author: Zhongying Qiao
cryptoc 3:26beaa8b94ce 2 Date: 02/03/2014*/
cryptoc 3:26beaa8b94ce 3 #include "mbed.h"
cryptoc 3:26beaa8b94ce 4 #include "rtos.h"
cryptoc 3:26beaa8b94ce 5 #include "OneWire.h"
cryptoc 3:26beaa8b94ce 6 #include "Network.h"
cryptoc 3:26beaa8b94ce 7 #include "DS1920.h"
cryptoc 3:26beaa8b94ce 8
cryptoc 3:26beaa8b94ce 9 Serial pc(USBTX, USBRX);
cryptoc 3:26beaa8b94ce 10
cryptoc 3:26beaa8b94ce 11 DigitalOut led1(LED1);
cryptoc 3:26beaa8b94ce 12 DigitalOut led2(LED2);
cryptoc 3:26beaa8b94ce 13 DigitalOut led3(LED3);
cryptoc 3:26beaa8b94ce 14 DigitalOut led4(LED4);
cryptoc 3:26beaa8b94ce 15
cryptoc 3:26beaa8b94ce 16 Timeout t;
cryptoc 3:26beaa8b94ce 17 float temperature=0.0;
cryptoc 3:26beaa8b94ce 18
cryptoc 3:26beaa8b94ce 19 // one wire ONE
cryptoc 3:26beaa8b94ce 20 OneWire owi(p21);
cryptoc 3:26beaa8b94ce 21 OneWire_Instruction owtrans;
cryptoc 3:26beaa8b94ce 22 OneWire_ROM rom;
cryptoc 3:26beaa8b94ce 23 onewire::ds1920::scratchpad_t scratchpad;
cryptoc 3:26beaa8b94ce 24 TransportSearchPersist search;
cryptoc 3:26beaa8b94ce 25 osThreadId controlthread;
cryptoc 3:26beaa8b94ce 26
cryptoc 3:26beaa8b94ce 27
cryptoc 3:26beaa8b94ce 28 char readbuffer[16];
cryptoc 3:26beaa8b94ce 29
cryptoc 3:26beaa8b94ce 30
cryptoc 3:26beaa8b94ce 31 //led1 flashing at incresing speed
cryptoc 3:26beaa8b94ce 32
cryptoc 3:26beaa8b94ce 33 void device_detect(OneWire * which){
cryptoc 3:26beaa8b94ce 34 osSignalSet(controlthread, 1);
cryptoc 3:26beaa8b94ce 35 }
cryptoc 3:26beaa8b94ce 36
cryptoc 3:26beaa8b94ce 37 void reset_thread() {
cryptoc 3:26beaa8b94ce 38 wait(3.0);
cryptoc 3:26beaa8b94ce 39 //owi.detecthandle = &device_detect;
cryptoc 3:26beaa8b94ce 40 //controlthread = Thread::gettid();
cryptoc 3:26beaa8b94ce 41 //Thread::signal_wait(0);
cryptoc 3:26beaa8b94ce 42 //osSignalSet(controlthread, 0);
cryptoc 3:26beaa8b94ce 43 led4 = 1;
cryptoc 3:26beaa8b94ce 44 search.clear();
cryptoc 3:26beaa8b94ce 45 while(!search.done){
cryptoc 3:26beaa8b94ce 46 OWNetwork::search(&owtrans, &search);
cryptoc 3:26beaa8b94ce 47 OWNetwork::no_transport(&owtrans);
cryptoc 3:26beaa8b94ce 48 if(owi.send(&owtrans, 1)){
cryptoc 3:26beaa8b94ce 49 if(owi.error == NO_PRESENCE) puts("device might have been removed\r");
cryptoc 3:26beaa8b94ce 50 else if(owi.error == CRC_ERROR) puts("results may have been comprimised by a transmission error\r");
cryptoc 3:26beaa8b94ce 51 else puts("UNEXPECTED ERROR\r");
cryptoc 3:26beaa8b94ce 52 break;
cryptoc 3:26beaa8b94ce 53 }
cryptoc 3:26beaa8b94ce 54 else{
cryptoc 3:26beaa8b94ce 55 if((uint64_t)search.rom == 0){
cryptoc 3:26beaa8b94ce 56 puts("the line was grounded\r");
cryptoc 3:26beaa8b94ce 57 break;
cryptoc 3:26beaa8b94ce 58 }
cryptoc 3:26beaa8b94ce 59 printf("detected device %llX\r\n", (uint64_t)search.rom);
cryptoc 3:26beaa8b94ce 60 rom = search.rom;
cryptoc 3:26beaa8b94ce 61 OWNetwork::match(&owtrans, &rom);
cryptoc 3:26beaa8b94ce 62 onewire::ds1920::convert_temperature(&owtrans);
cryptoc 3:26beaa8b94ce 63 if(owi.send(&owtrans, 1)){
cryptoc 3:26beaa8b94ce 64 puts("an error occured sending measure temperature transaction\r");
cryptoc 3:26beaa8b94ce 65 break;
cryptoc 3:26beaa8b94ce 66 }
cryptoc 3:26beaa8b94ce 67 Thread::wait(1000);
cryptoc 3:26beaa8b94ce 68 onewire::ds1920::read_scratchpad(&owtrans, &scratchpad);
cryptoc 3:26beaa8b94ce 69 if(owi.send(&owtrans, 1)){
cryptoc 3:26beaa8b94ce 70 puts("an error occured reading the scratchpad\r");
cryptoc 3:26beaa8b94ce 71 break;
cryptoc 3:26beaa8b94ce 72 }
cryptoc 3:26beaa8b94ce 73
cryptoc 3:26beaa8b94ce 74 temperature= scratchpad.temperature_accurate();
cryptoc 3:26beaa8b94ce 75 printf("Temperature measured at %f degrees C.\r\n", temperature);
cryptoc 3:26beaa8b94ce 76
cryptoc 3:26beaa8b94ce 77 }
cryptoc 3:26beaa8b94ce 78 }
cryptoc 3:26beaa8b94ce 79 }