Smart agri
Dependencies: MQTT WIZnetInterface mbed-src
Fork of MQTTw7500 by
Revision 13:a75b321700d6, committed 2018-07-28
- Comitter:
- Albinarackal
- Date:
- Sat Jul 28 04:33:27 2018 +0000
- Parent:
- 12:4f0489448955
- Commit message:
- Smart Agri
Changed in this revision
--- a/DHT.lib Sat Oct 03 10:54:52 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://developer.mbed.org/users/bangbh/code/DHT/#df22ddf10d75
--- a/WIZnetInterface.lib Sat Oct 03 10:54:52 2015 +0000 +++ b/WIZnetInterface.lib Sat Jul 28 04:33:27 2018 +0000 @@ -1,1 +1,1 @@ -http://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#bda61525ac71 +http://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#c91884bd2713
--- a/main.cpp Sat Oct 03 10:54:52 2015 +0000
+++ b/main.cpp Sat Jul 28 04:33:27 2018 +0000
@@ -1,77 +1,165 @@
+/* SMART AGRICULTURE PROJECT Applicatios
+# 3 phase detection
+# soil moisture detection
+# rfid access to enter the field (gate open and close)
+# fensing security for entire field
+# security alarm for unauthorised access (for RFID and Fensing)
+# Motor for water supply
+*/
#include "mbed.h"
-#include "DHT.h"
#include "MQTTEthernet.h"
#include "MQTTClient.h"
#define ECHO_SERVER_PORT 7
-
-int arrivedcount = 0;
-
+Serial uart(D1,D0);
+// wiznet wiz750SR pin configuration
+AnalogIn soilSensor(PC_8);
+DigitalIn p1(PC_13);
+DigitalIn p2(PC_12);
+DigitalIn p3(PC_9);
+float soil;
+char *msg;
+char uart_msg;
+char buffer[15];
+char *rf_on = "on";
+char *rf_off = "off";
+char *mot_on = "onmotor";
+char *mot_off = "offmotor";
+
+// call back function
void messageArrived(MQTT::MessageData& md)
{
+ strcpy(buffer,"");
MQTT::Message &message = md.message;
printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id);
printf("Payload %.*s\n", message.payloadlen, (char*)message.payload);
- ++arrivedcount;
+ sprintf(buffer,"%.*s",message.payloadlen,(char*)message.payload);
+ printf("buffer value is %s\n",buffer);
+
}
-void baud(int baudrate) {
+
+void baud(int baudrate)
+{
Serial s(USBTX, USBRX);
s.baud(baudrate);
}
int main (void)
{
- DHT sensor(D4, DHT11);
- baud(115200);
+
+ baud(9600);
+ char *topic1 = "rfiddata";
+ char *topic2 = "threephasebutton";
printf("Wait a second...\r\n");
- char* topic = "openhab/parents/command";
+
MQTTEthernet ipstack = MQTTEthernet();
-
+
MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack);
- char* hostname = "192.168.1.99";
+ // MQTT broker address and port no.
+ char* hostname = "iot.eclipse.org";
int port = 1883;
-
+
int rc = ipstack.connect(hostname, port);
- if (rc != 0)
+ if (rc == 0)
printf("rc from TCP connect is %d\n", rc);
-
- printf("Topic: %s\r\n",topic);
-
- MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
+
+
+
+ MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
data.MQTTVersion = 3;
data.clientID.cstring = "parents";
- if ((rc = client.connect(data)) != 0)
+ if ((rc = client.connect(data)) == 0)
printf("rc from MQTT connect is %d\n", rc);
-
- if ((rc = client.subscribe(topic, MQTT::QOS1, messageArrived)) != 0)
- printf("rc from MQTT subscribe is %d\n", rc);
-
+
+ if ((rc = client.subscribe(topic1, MQTT::QOS1, messageArrived)) == 0)
+ printf("rc from MQTT subscribe toppic is rfiddata %d\n", rc);
+
+
+ if ((rc = client.subscribe(topic2, MQTT::QOS1, messageArrived)) == 0)
+ printf("rc from MQTT subscribe toppic is threephasebutton %d\n", rc);
+
MQTT::Message message;
- char buf[100];
- int error = 0;
- float hum = 0.0f, temp = 0.0f;
- while (true)
- {
- error = sensor.readData();
- if (0 == error) {
- hum = sensor.ReadHumidity();
- temp = sensor.ReadTemperature(CELCIUS);
+
+ while (true) {
+
+ // reading the soil moisture content from soil moisture sensor
+ soil = soilSensor.read_u16();
+ printf(" soil val is : %f\n",soil);
+
+ // Data reading from arduino via UART
+ if (uart.readable()) {
+ printf("uart readable\n");
+ uart_msg = uart.getc();
+
+ if(uart_msg == 's') { // Authorised access data of RFID
+ msg = "Authorized Access";
+ printf(" msg : %s\n", msg);
+ }
+
+ if(uart_msg == 'n' || uart_msg =='f') { // unauthorised access data of RFID or Fensing
+ msg = "Unauthorized Access";
+ printf(" msg : %s\n", msg);
+
+ }
+ message.qos = MQTT::QOS0;
+ message.retained = false;
+ message.dup = false;
+ message.payload = (void*)msg;
+ message.payloadlen = strlen(msg);
+ rc = client.publish("rfid", message);
+ strcpy(msg,"");
+
+
+ }
+ // rfid command from mqtt "on"
+ if(strcmp(buffer, rf_on)==0 ) {
+ uart.putc('a'); //sending the data to arduino via UART
+ printf("rfid on data\n");
+ strcpy(buffer,"");
+
}
- sprintf(buf, "%3.1f", hum);
- message.qos = MQTT::QOS0;
- message.retained = false;
- message.dup = false;
- message.payload = (void*)buf;
- message.payloadlen = strlen(buf);
- rc = client.publish("openhab/parents/humidity", message);
- sprintf(buf, "%3.1f", temp);
- message.payload = (void*)buf;
- message.payloadlen = strlen(buf);
- rc = client.publish("openhab/parents/temperature", message);
-
- client.yield(60000);
+ // rfid command from mqtt "off"
+ if(strcmp(buffer,rf_off)==0) {
+ uart.putc('b'); //sending the data to arduino via UART
+ printf("rfid off data\n");
+ strcpy(buffer,"");
+
+ }
+ if(strcmp(buffer,mot_on)==0) {
+ uart.putc('c'); //sending the data to arduino via UART
+ printf("motor on data\n");
+ strcpy(buffer,"");
+
+ }
+
+ if(strcmp(buffer,mot_off)==0) {
+ uart.putc('d'); //sending the data to arduino via UART
+ printf("motor off data\n");
+ strcpy(buffer,"");
+ }
+
+ // soil moisture and 3 phase current checking
+ if(soil<250) {
+ if((p1==1)&&(p2==1)&&(p3==1)) { //three phase checking
+ printf("3 phase detected\n");
+ msg = "Low Moisture and 3 phase detected";
+ } else {
+ // printf("3 phase not detected\n");
+ msg = "Low Moisture but 3 phase not detected";
+ }
+
+
+ message.qos = MQTT::QOS0;
+ message.retained = false;
+ message.dup = false;
+ message.payload = (void*)msg;
+ message.payloadlen = strlen(msg);
+ rc = client.publish("threephase", message);
+ strcpy(msg,"");
+ }
+ client.yield(500);
}
}
--- a/mbed-src.lib Sat Oct 03 10:54:52 2015 +0000 +++ b/mbed-src.lib Sat Jul 28 04:33:27 2018 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed-src/#2d5fc5624619 +http://mbed.org/users/mbed_official/code/mbed-src/#a11c0372f0ba
