ハイパー・マイコン mbedでインターネット 電子工作 2章 リスト2-2 InformEmailのプログラム

Dependencies:   EthernetInterface NTPClient SimpleSMTPClient TextLCD mbed-rtos mbed

Files at this revision

API Documentation at this revision

Comitter:
sunifu
Date:
Wed Jul 09 13:42:34 2014 +0000
Commit message:
InformEmail
;

Changed in this revision

EthernetInterface.lib Show annotated file Show diff for this revision Revisions of this file
NTPClient.lib Show annotated file Show diff for this revision Revisions of this file
SimpleSMTPClient.lib Show annotated file Show diff for this revision Revisions of this file
TextLCD.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r cf3bc27b895f EthernetInterface.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetInterface.lib	Wed Jul 09 13:42:34 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/EthernetInterface/#a0ee3ae75cfa
diff -r 000000000000 -r cf3bc27b895f NTPClient.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NTPClient.lib	Wed Jul 09 13:42:34 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/donatien/code/NTPClient/#881559865a93
diff -r 000000000000 -r cf3bc27b895f SimpleSMTPClient.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SimpleSMTPClient.lib	Wed Jul 09 13:42:34 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/sunifu/code/SimpleSMTPClient/#0847fa2294a0
diff -r 000000000000 -r cf3bc27b895f TextLCD.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.lib	Wed Jul 09 13:42:34 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/TextLCD/#44f34c09bd37
diff -r 000000000000 -r cf3bc27b895f main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jul 09 13:42:34 2014 +0000
@@ -0,0 +1,149 @@
+// -- InformEmail --
+#include "mbed.h"
+#include "EthernetInterface.h"
+#include "NTPClient.h"
+#include "SimpleSMTPClient.h"
+#include "TextLCD.h"
+
+#define DOMAIN "mbed"
+#define SERVER "smtp.mail.yahoo.co.jp"
+#define PORT "587" //25 or 587(OutBound Port25 Blocking )
+
+#define USER "yahoo-japan-ID" 
+#define PWD "password"
+#define FROM_ADDRESS "yahoo-japan-ID@yahoo.co.jp"
+// TO_ADDRESS (Of some address is possible.)
+// to-user1@domain, to-user2@domain, to-user3@domain ....
+// The TO_ADDRESS are less than 128 characters.
+#define TO_ADDRESS "to-address@domain" 
+
+#define SUBJECT "Notice of the detection log"
+
+#define INIT 5.0
+#define NOISE 3.0
+#define DELAY 10.0
+#define INTERVAL 3600
+
+TextLCD lcd(p24, p26, p27, p28, p29, p30);
+DigitalOut led1(LED1); 
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalIn msensor(p20);
+int cnt,flag,flag1;
+
+void emailsendInterval(void const *args)
+{
+   while (true) {
+        led1 = !led1;
+        Thread::wait(1000);
+        cnt++; 
+        if ( cnt == INTERVAL ){ 
+            cnt = 0;
+            flag = 1;
+        }    
+    }
+}
+
+void lcdUpdate(void const *args)
+{
+    char lcdMsg[16];
+    while(true){    
+        Thread::wait(30000);
+        time_t ctTime = time(NULL)+32400; 
+        strftime(lcdMsg,16,"%y/%m/%d %H:%M",localtime(&ctTime));
+        lcd.locate(0,0);
+        lcd.printf("[%s]",lcdMsg);
+    }   
+}
+
+void flip(void const *args) {
+   while (true) {
+        led1 = !led1;
+        Thread::wait(200);
+    }
+}
+
+int main()
+{
+    SimpleSMTPClient smtp;
+    EthernetInterface eth;
+    
+    char sendMsg[512]="";
+    char strTimeMsg[16];
+    int ret;
+    flag1 = 0;
+    
+    lcd.cls();
+    printf("\n\n/* Inform Email System */\n");
+
+    printf("Setting up ...\n");
+    eth.init();    
+    eth.connect();
+
+    printf("Connected OK\n");    
+    
+    printf("IP Address is %s\n", eth.getIPAddress());
+    lcd.locate(0,1);
+    lcd.printf("%s", eth.getIPAddress());    
+
+    printf("NTP setTime...\n");
+    NTPClient ntp;
+    ntp.setTime("ntp.nict.jp");
+    
+    time_t ctTime = time(NULL)+32400;   
+    printf("\nTime is now (JST):%s\n", ctime(&ctTime));
+    strftime(strTimeMsg,16,"%y/%m/%d %H:%M",localtime(&ctTime));
+    lcd.locate(0,0);
+    lcd.printf("[%s]",strTimeMsg);    
+ 
+    led1 = 1;    
+    Thread thread0(flip);
+    wait(INIT);    
+    thread0.terminate();    
+    led1=0;
+   
+   
+    Thread thread(emailsendInterval);
+    Thread thread1(lcdUpdate);
+         
+    smtp.setFromAddress(FROM_ADDRESS);
+    smtp.setToAddress(TO_ADDRESS);
+    smtp.setMessage(SUBJECT,sendMsg);  
+    
+    while(1)
+    {
+        led2 = msensor;
+        if ( led2 == 1 ){
+            wait( NOISE );
+            led2 = msensor;
+
+            while ( led2 == 1 ){    
+                led3 = 1;                     
+                wait( DELAY ) ;
+                led2 = msensor;
+                if ( flag1 == 0 ){
+                    ctTime = time(NULL)+32400; // JST
+                    strftime(strTimeMsg,16,"%m/%d %H:%M\r\n",localtime(&ctTime));
+                    smtp.addMessage(strTimeMsg);
+                    printf("[%s]",strTimeMsg);
+                }
+                flag1 = 1;
+            }
+            flag1 = 0;
+            led3 = 0;
+        }
+        if ( flag == 1 ) {      
+            if ( smtp.msgLength() != 0 ){
+                ret = smtp.sendmail(SERVER, USER, PWD, DOMAIN, PORT,SMTP_AUTH_LOGIN);
+                smtp.clearMessage();
+                if (ret) {       
+                    printf("E-mail Transmission Error\r\n");
+                } else {
+                    printf("E-mail Transmission OK\r\n");  
+                }
+            }
+            flag = 0;        
+        }              
+    }
+}
+
diff -r 000000000000 -r cf3bc27b895f mbed-rtos.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Wed Jul 09 13:42:34 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#88a1a9c26ae3
diff -r 000000000000 -r cf3bc27b895f mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Jul 09 13:42:34 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/b60934f96c0c
\ No newline at end of file