Introduction

Bring your ideas to life without considering that how to program a server to create a host for web communication using TheAmplituhedron.com..


Tags



Share

How to use the cloud system of TheAmplituhedron to improve IoT projects?

Advertisement:


read_later

Read Later



read_later

Read Later

Introduction

Bring your ideas to life without considering that how to program a server to create a host for web communication using TheAmplituhedron.com..

Tags

Share





Advertisement

Advertisement



    Components :
  • Arduino Uno[1]
  • Arduino Ethernet Shield 2[1]
  • DHT11 Temperature and Humidity Sensor[1]
  • Photo Resistor[1]
  • MQ4 Gas Sensor[1]
  • Flame Sensor[1]
  • Hygrometer Sensor[1]
  • 2-Way Relay[3]
  • Compatible Devices
  • SparkFun ESP8266 Thing[1]
  • NodeMCU ESP8266 Breakout Board[1]
  • Raspberry Pi 3 Model B[1]
  • ESP8266[1]

Description

TheAmplituhedron.com is my personal website I post some of my ideas on under three main section, which are Projects, Tools, Articles and I had been working on a free cloud system for approximately two months for sending and getting data over the Internet by communicating the devices such as Arduino Ethernet Shield 2, Raspberry Pi, ESP8266, NodeMCU or any device that is capable of making an HTTP request. Now, the cloud system of TheAmplituhedron.com is ready to run and this page guides you to create IoT projects with it.

What is the cloud system of TheAmplitu
hedron.com?

The cloud system of TheAmplituhedron.com is a free service that handles server-side programming for web communication and its main purpose is to improve IoT projects. Furthermore, to manage your data packets is uncomplicated by using TheAmplituhedron.com as a host because of the unique path created by the cloud system of TheAmplituhedron.com for you.

Start using the cloud system of TheAmplituhedron.com by taking the following steps.

Sign Up

Please sign up for TheAmplituhedron.com to create your cloud page.

project-image
Figure - 7.1

Go to your Dashboard

Please sign in and go to your dashboard.

project-image
Figure - 7.2


project-image
Figure - 7.3



project-image
Figure - 7.4

Cloud Information Page

Cloud Information Page gives you more details to use the cloud system, please read it before going to your cloud page.

project-image
Figure - 7.5

Program your device

If you need to get help to program your device, please go to Cloud Code Generator.

project-image-slide project-image-slide project-image-slide
Slide


Open your cloud page to manage your data packets

project-image-slide project-image-slide project-image-slide project-image-slide
Slide


Enter your personal cloud information

project-image
Figure - 7.6


project-image-slide project-image-slide
Slide


project-image-slide project-image-slide
Slide


Now, TheAmplitu
hedron.com is ready to send and get data over the Internet :)

project-image
Figure - 7.7


project-image
Figure - 7.8

If you have issues to recall the last data packet you send to give a command to your devices, you can try the recovery system which is ready to save your commands permanently in the database.

project-image
Figure - 7.9

Test Project

The code of the test project is created by Cloud Code Generator and modified using Arduino IDE.

Board --> Arduino Uno

Device --> Arduino Ethernet Shield 2

Communication Type --> Multi-Channel

Request Method --> Post


Schematics

Test Project

Download


project-image

Codes

Test Project Code.ino

Download




//  TESTING THE CLOUD SYSTEM OF THEAMPLITUHEDRON.COM 
//
//-TheAmplituhedron.com
//-Cloud System
//-Sending data to TheAmplituhedron.com
//-Getting data from TheAmplituhedron.com
//
//-By Kutluhan Aktar

//
// * For more information, please go to https://www.theamplituhedron.com/dashboard/cloud/
// * This is an example code file for Arduino Ethernet Shield 2 or ENC28J60.
//  * Do not forget to use percent-encoding reserved characters for the header. 
//  * Circuit:
//  * Ethernet shield attached to pins 10, 11, 12, 13
//
// CONNECTIONS:
//
// DHT11 Module
// Pin 2   -------------------------
//
// 2 Way Relay (1)
// Pin 3   -------------------------
// Pin 4   -------------------------
//
// 2 Way Relay (2)
// Pin 5   -------------------------
// Pin 6   -------------------------
//
// 2 Way Relay (3)
// Pin 7   -------------------------
// Pin 8   -------------------------
//
// Arduno Ethernet Shield
// Pin 10  --------------------------
// Pin 11  --------------------------
// Pin 12  --------------------------
// Pin 13  --------------------------
//
// LDR
// AO      -------------------------- 
//                             
// Flame Sensor 
// A1      --------------------------
//
// MQ4   Sensor
// A2      --------------------------
//
// Hygrometer Module
// A3      -------------------------- 
 
#include <SPI.h>
#include <Ethernet.h>
//Initial DHT11 library and create an object named dht to communicate with the sensor.
#include "DHT.h"
DHT dht;

byte mac[] = {
    0xDE,0xAD,0xBE,0xEF,0xFE,0xED  // Your MAC address has to be here.
};
IPAddress ip(192,168,1,21); // A valid IP address to make an HTTP request.

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

// Define the sensors variables and types.
float Sensor_1;
float Sensor_2;
int   Sensor_3;
int   Sensor_4;
int   Sensor_5;
int   Sensor_6;

/////////////////////////////////////////////////////////////
// Define the relays variables.
int Device_1 = 3;
int Device_2 = 4;
int Device_3 = 5;
int Device_4 = 6;
int Device_5 = 7;
int Device_6 = 8;
////////////////////////////////////////////////////////////

// Determine a string to collect the commands came from TheAmplituhedron.com.
String readString ;


void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  // Start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());

/////////////////////////////////////////////////////////////
// Determine the relay module s pins.
pinMode(Device_1,OUTPUT);
pinMode(Device_2,OUTPUT);
pinMode(Device_3,OUTPUT);
pinMode(Device_4,OUTPUT);
pinMode(Device_5,OUTPUT);
pinMode(Device_6,OUTPUT);
// Give HIGH value for the default.
digitalWrite(Device_1,HIGH);
digitalWrite(Device_2,HIGH);
digitalWrite(Device_3,HIGH);
digitalWrite(Device_4,HIGH);
digitalWrite(Device_5,HIGH);
digitalWrite(Device_6,HIGH);
//Connect Dht11 to data pin 2.
   dht.setup(2); 
////////////////////////////////////////////////////////////
}

void loop() {
 // It makes Arduino wait until the temperature and the humidity values are accurate.
 delay(dht.getMinimumSamplingPeriod());
 
  // Attach whatever data you want to send TheAmplituhedron.com
  Sensor_1 =  dht.getHumidity();
  Sensor_2 =  dht.getTemperature();
  Sensor_3 =  analogRead(A0); 
  Sensor_4 =  analogRead(A1);
  Sensor_5 =  analogRead(A2);
  Sensor_6 =  analogRead(A3);
   
  // Listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // An http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
		
        // Add each data came from TheAmplituhedron.com to a string named readString.
        if (readString.length() < 110) {
          readString += c;
          //Serial.print(c);
         }        
        Serial.println(readString);
		
		        // If the line ends, initial a HTTP Request.
        if (c ==  '\n') {
		  
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");;
          client.println("Content-Type:text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html style=""background-color:#002699;"">");
          client.println("<head>");
          client.println("<title>DeviceSide</title>"); // Header for the web page.
          client.println("<link rel=""icon"" href=""https://www.theamplituhedron.com/images/favicon.ico""></link>"); // Describe the name and icon of DeviceSide.
          client.println("</head>");
          client.println("<body>");
          // The hedron must be send with the get method.
                    client.println("<form action="" https://www.theamplituhedron.com/dashboard/cloud/test.php?hedron=The hedron is here"" method=""post"" target=""_parent"">"); // Enter your cloud page address. *Hedron here when the post method is active.
                    			   
	                client.println("<button type=""submit"" style=""position:absolute;top:5px;width:100%;height:200px;background-color:#eb2e00;color:white;"">DeviceSide</button>"); // When the DeviceSide button is clicked, the information is sent to TheAmplituhedron.com by the valid IP address. 
                    client.println("<input type=""hidden""  name=""Sensor-1"" value="" ");
                    client.println(Sensor_1);
                    client.println(" ""><br> ");
                    client.println("<input type=""hidden""  name=""Sensor-2"" value="" ");
                    client.println(Sensor_2);
                    client.println(" ""><br> ");
                    client.println("<input type=""hidden""  name=""Sensor-3"" value="" ");
                    client.println(Sensor_3);
                    client.println(" ""><br> ");
                    client.println("<input type=""hidden""  name=""Sensor-4"" value="" ");
                    client.println(Sensor_4);
                    client.println(" ""><br> ");
                    client.println("<input type=""hidden""  name=""Sensor-5"" value="" ");
                    client.println(Sensor_5);
                    client.println(" ""><br> ");
                    client.println("<input type=""hidden""  name=""Sensor-6"" value="" ");
                    client.println(Sensor_6);
                    client.println(" ""><br> ");
          client.println("</form>");
          client.println("</body>");
          client.println("</html>");
          
          break;
        }

      }
    }
    delay(1);
    // Close the connection:
    client.stop();

    // Define conditions for your system.
      //  Device-1, Device-2, Device-3, Device-4, Device-5 are the constant on or off type.
        if (readString.indexOf("?Device-1=ON") >0){ 
          // Condition here;
          digitalWrite(Device_1,LOW);
          }
        else if (readString.indexOf("?Device-1=OFF") >0){ 
          // Condition here;
          digitalWrite(Device_1,HIGH);
          }
        if (readString.indexOf("&Device-2=ON") >0){ 
          //  Condition here;
          digitalWrite(Device_2,LOW);
          }
        else if (readString.indexOf("&Device-2=OFF") >0){
          // Condition here;
          digitalWrite(Device_2,HIGH);
          }
        
        if (readString.indexOf("&Device-3=ON") >0){ 
          // Condition here;
          digitalWrite(Device_3,LOW);
          }
        else if (readString.indexOf("&Device-3=OFF") >0){  
          // Condition here;
          digitalWrite(Device_3,HIGH);
          }  
        if (readString.indexOf("&Device-4=ON") >0){
         // Condition here;
         digitalWrite(Device_4,LOW);
          }
        else if (readString.indexOf("&Device-4=OFF") >0){ 
          // Condition here;
          digitalWrite(Device_4,HIGH);
          }
        if (readString.indexOf("&Device-5=ON") >0){ 
          // Condition here;
          digitalWrite(Device_5,LOW);
          }
        else if (readString.indexOf("&Device-5=OFF") >0){
          // Condition here;
          digitalWrite(Device_5,HIGH);
          }
        
      //  Device-6 is the limitless text type.
        if (readString.indexOf("&Device-6=Hello") >0){ 
          // Condition here;
          digitalWrite(Device_6,LOW);
          }
        else if (readString.indexOf("&Device-6=By") >0){ 
          // Condition here;
          digitalWrite(Device_6,HIGH);
          }

        readString=""; // Start a new string.
  }
}



1 ) DHT11 Temperature and Humidity Sensor Module

2 ) MQ-4 Methane and Natural Gas (CNG) Analog Sensor

3 ) IR Flame Sensor Module Detector

4 ) Hygrometer Humidity Detection Module Kit

5 ) 2 Channel DC 5V Relay Module

6 ) ESP8266 NodeMCU LUA