top of page

Search Results

163 results found with an empty search

  • IoT Based RFID Access Control using Blynk app

    Here to learn how to make an IoT based RFID smart door lock system using NodeMCU ESP8266, RFID MF-RC522 Module, servomotor, and Blynk application. With the help of this project, You can remotely monitor your door access from anywhere in the world with your phone through internet. Circuit Diagram Components Required RC522 RFID Module - 1no ESP8266 12E- 1 no Servo 9G - 1 no Buzzer - 1no RC522 RFID Module The RC522 is a 13.56MHz RFID module that is based on the MFRC522 controller from NXP semiconductors. The module can supports I2C, SPI and UART and normally is shipped with a RFID card and key fob. It is commonly used in attendance systems and other person/object identification applications. Pin Configuration PIN PIN NAME NUMBER DESCRIPTION 1 Vcc Used to Power the module, typically 3.3V is used 2 RST Reset pin – used to reset or power down the module 3 Ground Connected to Ground of system 4 IRQ Used to wake up the module when a device comes into range 5 MISO/SCL/Tx MISO pin when used for SPI, acts as SCL for I2c and Tx for UART. 6 MOSI Master out slave in pin for SPI communication 7 SCK Serial Clock pin – used to provide clock source 8 SS/SDA/Rx Acts as Serial input (SS) for SPI, SDA for IIC and Rx during UART RC522 Features 13.56MHz RFID module Operating voltage: 2.5V to 3.3V Communication : SPI, I2C protocol, UART Maximum Data Rate: 10Mbps Read Range: 5cm Current Consumption: 13-26mA Power down mode consumption: 10uA (min) Where to use RC522 RFID Module The RC522 is a RF Module that consists of a RFID reader, RFID card and a key chain. The module operates 13.56MHz which is industrial (ISM) band and hence can be used without any license problem. The module operates at 3.3V typically and hence commonly used in 3.3V designs. It is normally used in application where certain person/object has to be identified with a unique ID. The keychain has 1kB memory in it which can be used to stored unique data. The RC522 reader module can both read and write data into these memory elements. The reader can read data only form passive tags that operate on 13.56MHz. How to use RC522 RFID Module The RC522 has an operating voltage between 2.5V to 3.3V and hence is normally powered by 3.3V and should be used with 3.3V communication lines. But, the communication pins of this module are 5V tolerant and hence it can be used with 5V microcontrollers also like Arduino without any additional hardware. The module supports SPI, IIC and UART communication but out of these SPI is often used since it is the fasted with a maximum data rate of 10Mbps. Since in application, most of the time reader module will be waiting for the tag to come into proximity. The Reader can be put into power down mode to save power in battery operated applications. This can be achieved by using the IRQ pin on the module. The minimum current consumed by the module during power down mode will be 10uA only. The module can be easily used with Arduino because of its readily available RC522 RFID Arduino library from Miguel Balboa. You can visit his GitHub page for more details on how to use it with Arduino. Applications Automatic billing systems Attendance systems Verification/Identification system Access control systems Blynk Here I have added two tabs. One for virtual monitor for user swipes a card log. And another tab is used for access control open and close. Configure Blynk App for IoT based RFID smart door lock. First, log in to your Blynk account. If you don’t have an account then signup with your Gmail. Open the app and create a new project, with the name IoT RFID. Click on the select device and Select NodeMCU. Set the connection Type to WiFi. Finally, click on the create button, an authentication token will be sent to your email. We need this token later. Click on the screen and search for tabs. We are going to add two tabs with the Name Live Monitoring and Remote Access Control. Now click on the live monitoring tab and tap anywhere in the blank space. add the terminal widget. set the terminal widget Virtual pin V2 and set the New Line to Yes. Now Select the Remote Access Control tab. Click on empty space and add three buttons. Click on the First Button, set the Name, and select the virtual Pin V3. Set the button Mode as Switch. You can also set the fonts as per your requirements. Now click on the second button. Set the name, select virtual pin V4, and select button mode as a switch. Similarly, do the same for the third button and set the virtual pin to v5. Installing the arduino Library Download RFID Library. BlynkDownload - Blynk Library can connect any hardware over Ethernet, WiFi, or GSM, 2G, 3G, LTE, etc. After downloading the .zip files, add the libraries in Arduino IDE by clicking on To install the library navigate to the Sketch > Include Library > Manage Libraries… Wait for Library Manager to download libraries index and update list of installed libraries. Subscribe and download code. Arduino Code: #include #include #define BLYNK_PRINT Serial #include #include #define SS_PIN 4 #define RST_PIN 5 MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. char auth[] ="xxxxxxxxxxxxxxxxxxxxxxxxxxx"; //replace with your Auth code here const char* ssid = "xxxxxxxxxx"; // replace with Your SSID const char* password = "xxxxxxxxxxx"; //replace with your wifi Password #include Servo myServo; //define servo name #define BUZZER 15 //buzzer pin SimpleTimer timer; int fflag = 0; int eflag = 0; int jflag = 0; WidgetTerminal terminal(V2); void setup() { Serial.begin(9600); // Initiate a serial communication Blynk.begin(auth, ssid, password); SPI.begin(); // Initiate SPI bus myServo.attach(2); //servo pin D4 myServo.write(0); //servo start position pinMode(BUZZER, OUTPUT); noTone(BUZZER); mfrc522.PCD_Init(); // Initiate MFRC522 Serial.println("Put your card to the reader..."); Serial.println(); timer.setInterval(1000L, iot_rfid); } void loop() { timer.run(); // Initiates SimpleTimer Blynk.run(); } void iot_rfid(){ // Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { return; } //Show UID on serial monitor Serial.print("UID tag :"); String content= ""; byte letter; for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], DEC); content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); content.concat(String(mfrc522.uid.uidByte[i], DEC)); } Serial.println(); if( (content.substring(1) == "185 48 97 193") && (fflag == 1)) { Serial.println("User A"); Blynk.virtualWrite(V2, "USER A" ); digitalWrite(BUZZER, HIGH); delay(250); digitalWrite(BUZZER, LOW); myServo.write(180); delay(3000); myServo.write(0); } if( (content.substring(1) == "41 80 176 178") && (eflag == 1)) { Serial.println("User B"); Blynk.virtualWrite(V2, "USER B" ); digitalWrite(BUZZER, HIGH); delay(250); digitalWrite(BUZZER, LOW); myServo.write(180); delay(3000); myServo.write(0); } if( (content.substring(1) == "121 014 172 178") && (jflag == 1)) { Serial.println("User C"); Blynk.virtualWrite(V2, "USER C" ); digitalWrite(BUZZER, HIGH); delay(250); digitalWrite(BUZZER, LOW); myServo.write(180); delay(3000); myServo.write(0); } else Serial.println("unregistered user"); digitalWrite(BUZZER, HIGH); delay(1500); digitalWrite(BUZZER, LOW); } // in Blynk app writes values to the Virtual Pin 3 BLYNK_WRITE(V3) { fflag = param.asInt(); // assigning incoming value from pin V3 to a variable // Blynk.virtualWrite(V2, fflag ); } // in Blynk app writes values to the Virtual Pin 4 BLYNK_WRITE(V4) { eflag = param.asInt(); // assigning incoming value from pin V4 to a variable } BLYNK_WRITE(V5) { jflag = param.asInt(); // assigning incoming value from pin V5 to a variable }

  • IoT Based Temperature, Altitude and Pressure Monitor using BMP180 and Ubidots IoT Platform

    In this tutorial, you will learn how to use the BMP180 sensor with NodeMCU ESP8266 wifi module, 4 line LCD display with the help of this project you can monitor the temperature, pressure, and Altitude values using Ubidots dashboard from anywhere around the world. Ubidots IoT cloud platforms can be used to manage, process, and transfers the information from IoT devices to cloud or from cloud to the connected device with the help of the Internet. Uploaded data can also be visualized on Ubidots Dashboard with the help of Widgets. Circuit Diagram Components Required NodeMCU ESP8266 BMP180 Sensor Jumper Wires BMP180 Sensor BMP180 is a high precision sensor designed for consumer applications. Barometric Pressure is nothing but weight of air applied on everything. The air has weight and wherever there is air its pressure is felt. BMP180 sensor senses that pressure and provides that information in digital output. Also the temperature affects the pressure and so we need temperature compensated pressure reading. To compensate, the BM180 also has good temperature sensor. BMP180 is available in two modules. One is Five pin module and other is Four pin module. With Five pin module we have additional +3.3V pin which is absent in four pin module. Other than that the functioning is same. The BMP180 barometric sensor uses I2C communication protocol. So, you need to use the SDA and SCL pins of the ESP8266 12E. Pin Name Description VCC- Connected to 3.3V GND- Connected to ground. SDA- Serial Data pin (I2C interface) SCL- Serial Clock pin (I2C interface) BMP180 MODULE Features Can measure temperature and altitude. Pressure range: 300 to 1100hPa High relative accuracy of ±0.12hPa Can work on low voltages 3.4Mhz I2C interface Low power consumption (3uA) Pressure conversion time: 5msec Potable size BMP180 MODULE Specifications Operating voltage of BMP180: 1.3V – 3.6V Input voltage of BMP180MODULE: 3.3V to 5.5V Peak current : 1000uA Consumes 0.1uA standby Maximum voltage at SDA , SCL : VCC + 0.3V Operating temperature: -40ºC to +80ºC BMP180 Equivalents BMP280, BMP085, etc Ubidots Setup Ubidots has become popular as an affordable, reliable, and most usable platform for building an IoT application enabled ecosystem within hardware, software, and embedded engineering industry. To send the data, first create an account on Ubidots. After completing the account setup, click on the user dropdown menu and click API documentation. Make a note of your Default Token as it will be write in Arduino code. NodeMCU NodeMCU ESP8266-12E MCU is a development board with one analogue and many general-purpose input output (GPIO) pins. It has 4MB flash memory, and can operate at a default clock frequency of 80MHz. In this project, digital pin D1, D2 of NodeMCU is connected to SCL, SDA pin of BMP180 Sensor and LCD display. Installing the BMP_085 Library Download BMP_085 library by Adafruit. This library is compatible with the BMP085 and the BMP180 sensors. Download Ubidots.h is used to send data to the Ubidots platform. Download Liquid crystal Library. After downloading the .zip files, add the libraries in Arduino IDE by clicking on To install the library navigate to the Sketch > Include Library > Manage Libraries… Wait for Library Manager to download libraries index and update list of installed libraries. Subscribe and download code. Arduino Code: #include #include #include #include #include Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085); // WiFi network Credentials ////const char* ssid = "TP-Link_3200"; // replace with your SSID //const char* password = "95001121379884265554"; //Replace with your WIFI Password #include "UbidotsMicroESP8266.h" #define TOKEN "BBFF-HYfUHivZQVJKjxO12FkQ6X7SWDpdiy" // replace with your Ubidots TOKEN here Ubidots client(TOKEN); #define WIFISSID "TP-Link_3200" // your SSID #define PASSWORD "95001121379884265554" // your wifi password #include LiquidCrystal_I2C lcd(0x27,20,4); void setup() { Serial.begin(9600); lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); delay(100); if (!bmp.begin()) { Serial.print("Ooops, no BMP085 detected ... Check your wiring or I2C ADDR!"); while (1) {} } Serial.print("Connecting to "); //Serial.println(ssid); //WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); client.wifiConnection(WIFISSID, PASSWORD); Serial.print("."); } Serial.println(""); Serial.println("WiFi is connected"); } void loop() { sensors_event_t event; bmp.getEvent(&event); if (event.pressure) { Serial.print("Pressure = "); Serial.print(event.pressure); Serial.println(" hPa"); float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA; Serial.print("Altitude = "); Serial.print(bmp.pressureToAltitude(seaLevelPressure, event.pressure)); Serial.println(" m"); Serial.println(""); float temperature; bmp.getTemperature(&temperature); Serial.print("Temperature: "); Serial.print(temperature); Serial.println(" C"); client.sendAll(true); } lcd.setCursor(0,0); lcd.print("Weather Monitor"); float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA; lcd.setCursor(0,1); lcd.print("Altitude m: "); lcd.print(bmp.pressureToAltitude(seaLevelPressure, event.pressure)); lcd.print(" "); float temperature; bmp.getTemperature(&temperature); lcd.setCursor(0,2); lcd.print("Temp "); lcd.print((char)223); lcd.print("C: "); lcd.print(temperature); lcd.print(" "); lcd.setCursor(0,3); lcd.print("Press mb: "); lcd.print(event.pressure); lcd.print(" "); delay(5000); }

  • Underground Piping (U/G) System for Oil & gas Indsustry

    The piping system is taken underground generally for the utility services like cooling water supply to various units and cooling water return to cooling tower for line sizes normally 18 inch NB and above, other water services with big pipeline sizes, big oil supply lines and various sewer systems in the process units of the chemical, petrochemical and refinery type of plants. The term “underground” applies to the piping – both buried or in trenches. The underground system consist of gravity flow drainage system carrying process waste, spillage, reclaimable hydrocarbons, sanitary and storm water, firewater and drinking water system. Good engineering practice, local code / regulations, specific client requirements shall govern the design of the underground piping system in the plant. The following are the common underground services in a chemical / petrochemical / refinery plants. Cooling water (line size normally ≥18″ NB) Fire Water Contaminated Rain Water Sewer from process catchment area.(CRWS) Oily Water Sewer (OWS) Liquid Effluent to the Effluent Treatment Plant. Closed Blow Down system (CBD) Sanitary system Storm Water Equipment drainage to slop tank Electrical cables Instrument cables Types of Underground system Depending on the service and the material that each system handles there are different system defined in the Underground system. Various underground systems can be described in the following way both for Utility system and sewer system. Cooling Water System (CWS & CWR) This is generally a buried system with protective wrapping and coating or with cathodic protection or both. Any valve for isolation of a part of the cooling water system shall be enclosed in a valve pit. The normal compacted earth cover shall be 1200 mm over the top of the pipeline. The earth cover over pipe (back-fill) shall be compacted to at least 95% Proctor compaction Index to protect the pipe from aboveground loadings as per ASTM D-698. Oily Water Sewer (OWS) This system collects waste, drips and leaks from equipment and piping in areas that contain process equipment in non-corrosive services. The layout engineer should consult the process engineer to fully identify all such equipment and provide a drain hub at each item. The piping engineer should locate the oily water drain hubs using the above ground piping studies, setting each invert elevation and routing the line with relevant components / fittings. Oily water sewer shall collect oily waste / drain from pump, equipment through funnel points and shall run with separate headers and manholes in the units. The regular oil contamination areas shall also be segregated and discharge from these areas shall be collected in catch basins to be joined in oily water sewer. Oily water sewer shall consist of carbon steel sewer, funnel points, clean outs, RCC catch basins, RCC manholes, vent pipes, flame arrestor etc. Contaminated Rainwater Sewer (CRWS) The areas which are contaminated due to floor wash drains etc. inside unit boundaries shall be demarcated. Contaminated areas collected in catch basin shall be drained through CRWS while un-contaminated areas, normally at periphery of the units shall be drained through ditches covered with grating. CRWS shall consist of underground carbon steel sewer with corrosion protection, funnel points, clean outs, RCC catch basins, RCC manholes, vent pipes, flame arrestor etc. Open ditches of units should have a bypass either to the CRWS or to storm water, drains of offsite. This system collects surface drainage from areas containing hydrocarbon – bearing equipment. This water must pass through a treatment facility before being discharged into an uncontaminated system or natural body of water e.g. river or a stream. Closed Blow Down (CBD) sewer This system picks up drains around boilers and steam drums and is run as a separate system preferably to the battery limit. The system shall be designed as per P&ID and the effluent collected from equipment through funnel points and underground piping system shall be connected to the underground CBD drum. Amine Blow Down (ABD) sewer The amine blow down system (ABD) shall be designed as per P&ID. The effluent shall be collected from equipment through above ground points into close funnels connected to underground system. The main header shall be connected to the underground Amine sump / drum. Fire Water System This system consists of a fire hydrant network around a process unit or equipment, with branches as required for hydrants or monitors to protect the unit in case of fire. This is a close loop system starting from Firewater storage and pump to the specific location of hydrants and monitors. This is always kept under a predetermined working pressure level. Potable Water System This water is used for drinking, emergency eye washes and safety shower facilities. Sanitary Sewer System Sanitary sewer system collects waste from all toilet facilities provided in various plants and non-plant buildings and shall be discharged to WWTP (Waste Water Treatment Plant) Acids, caustics, hydrocarbons, rainwater or other chemical waste shall not be discharged to this system. This system is routed to normally to a septic tank. Underground Electrical and Instrument ducts In the beginning of a project, the decision to route the major electrical and instrument conduits – above ground in the piperack or buried below grade shall be taken. In case underground route is selected, electrical and instrument engineers shall be consulted for the optimum layout of ducts by the plant layout engineer. Where conduits enter the unit through a pull box and cables come above ground for routing up to the terminal points, the space shall be kept free of piping, equipment or associated maintenance access. While developing &preparing the underground piping layout there are different components and terms that would be used and referred in the drawings. Some of the common terms used are explained below: 1. Catch Basin This device is used to collect surface drainage with an outlet liquid seal and sediment trap. The maximum area coverage of a catch basin is approx 150 sqm. ie. 12m x 12m or15mx10m. The area covered by a catch basin should be of square configuration, as far as possible. The catch basin should be located in the middle of the area as far as possible. Slope of pavement 1 in 100, e.g. HPP (Ridge of catch basin area = 100.00) and LPP (at catch basin peripheral drain = 99.85) No catch basins or manholes should be located within 15m radius of heaters. No vent pipes should be located within 15m of the heaters. Area drainage around heater areas shall be done by pavement sloping towards open ditches. Each catch basin shall be connected to manhole and shall be provided with fire seal. Fig 1. Catch Basin Fig 2. Plot subdivided into drainage areas 2. Sealed Manholes Sealed manholes shall be provided at a. Unit battery limit and b. Junction of sewers and at change in size of main header. These devices are provided so that the unit area is isolated from any fire in offsite area/sewer. Within the unit area, sealed manholes in main headers should be provided in such locations so that each sub-unit within the unit is isolated from the other areas. In case, this demarcation is difficult, one sealed manhole for every 30m length of main sewer in the unit shall be provided. Sealed manhole with bent pipes seal type shall be used for carbon steel pipes up to size16″ NB and for greater than dia 16″ NB and for all diameters of RCC pipes double compartment type manholes should be used. 3. Invert elevation This term, usually associated with any underground line, refers to the elevation of the inside bottom of the line. Because of the wide range of materials used in the underground piping system / drainage system with varying wall thickness, it is the constant that is used to set the elevation on construction drawings. The starting invert level of CRWS shall be normally 750mm below HPP (High Point of Paving) The invert level at outlet point of CRWS and OWS shall be normally 1500mm below FGL. 4. Cleanout A cleanout is a piping connection in a sewer system that is located at grade level for inspections or for cleaning the system. 5. Vent Pipes Vent pipes shall be located along piperack columns or building columns and should be taken 2m above the building parapet or last layer of pipes on a piperack. 6. Valve Pit / Maintenance pit for flanges and instruments. When the underground system needs valves for isolation and instruments for control, the normal practice is to enclose these valves and instruments in a RCC pit with cover. These valves and instruments in a pit can be operated as well as maintenance work can be done with ease. Piping arrangement-Underground Under piping are generally arranged based on the location of the consumers and the also depends upon the depth for the soil surface. Some of the guidelines for routing of the underground piping are stated below: 1. The overall Plot Plan allocates the space for the major underground services in the beginning of the project. The cooling water supply from cooling water pump discharge to the various units as well as the cooling water return from the various units to the top of cooling tower is routed in a simple, straight orientation at a suitable depth avoiding any major road crossings. 2. The potable water system supplies to various units and a branch is taken to the emergency eyewash and safety shower station. 3. Fire water system protects each piece of equipment by providing water through hydrants, monitors or deluge spray systems. Each process unit will have its own underground firewater piping loop system. 4. A typical hydrant and monitor installations and a typical fire- monitor installed. 5. Normally, chemical process units will have multiple drain systems designed to collect all corrosive or toxic chemical waste as well as surface drainage around the equipment. Drain / sewer system in a plant can be categorized as: Uncontaminated storm water Contaminated storm water Oily water sewer Chemical and process sewer Sanitary sewer Blowdown system Uncontaminated storm water system generally collects all service water from equipment areas, access ways, roadways to equipment. This collection is done through area drains, catch basins, roof rain water down comers. Contaminated storm water system collects surface drainage from areas containing hydrocarbon processing equipment. This system water must pass through a treatment facility before being discharged into an uncontaminated system or natural body of water viz. river or a stream connected to a river. Oily water sewer system collects waste, drips, leaks from equipment and piping in non-corrosive process equipment area. The designer should identify all the specific drain points in consultation with the process engineer. Chemical and process sewer system recovers acid or chemical drains from equipment / piping as well as surface drainage by providing curbing and drain sump around such equipment. Sanitary sewer system collects raw waste from lavatories and is either connected to the municipal battery limit or routed to a septic tank. Blowdown system picks up drains around boilers and steam drums and is run as a separate system. It is permissible to connect the blowdown system to a sewer box in oily water sewer system downstream of drainage from a furnace. 6. Trench Piping Occasionally, drain piping or process piping should be run below grade but not buried. The top of the trench is covered with grating but could be covered with RCC slab depending on the traffic load estimated in the area. The width of trench should allow adequate clearance to valves and drains as required. 7. A typical sewer box or manhole and A typical Dyke area drain sump is installed. 8. A process area for the purpose underground drainage is subdivided into block areas with high point ridge and low point catch basins / pits. The low point catch pits are connected to manholes. The manholes are interconnected by sloping piping and led to the battery limit valve pit and finally discharged into the treatment pond. 9.Closed drain system is installed. 10.The underground electrical and instrument cables passing under a road or paved area is taken through ducts embedded in lean concrete.

  • IoT Based Servo Control using MQTT

    Here to learn how to build an IoT system using ESP8266, myDevices Cayenne, and MQTT. In more detail, this IoT tutorial discovers how to use an ESP8266 to send data to Cayenne using the MQTT protocol. Moreover, this ESP8266 MQTT project investigates how to use MQTT to control remote peripheral devices using a web interface. This is a complete step-by-step tutorial on building an IoT system using Cayenne and ESP. On the other hand, Cayenne is an IoT cloud platform that provides several cloud services, such as: Data visualization IoT cloud Alerts Scheduling Events We will focus our attention on data visualization and on the IoT cloud services. Cayenne Cayenne IoT Platform accelerates the development of IoT-based solutions, including quick design, prototyping and other commercialized projects. It is a drag-and-drop IoT project builder that can help developers build complete, ready-to-use IoT solutions with little to no coding. Cayenne IoT Platform contains a vast catalog of certified IoT-ready devices and connectivity options. This allows users to easily add any device to the library utilizing MQTT API. All devices in Cayenne are interoperable and benefit from features such as rules engine, asset tracking, remote monitoring and control, and tools to visualize real-time and historical data. MQTT is a lightweight messaging protocol for sensors and mobile devices. NodeMCU NodeMCU ESP8266-12E MCU is a development board with one analogue and many general-purpose input output (GPIO) pins. It has 4MB flash memory, and can operate at a default clock frequency of 80MHz. In this project, digital pin D2 of NodeMCU is used to Signal Pin of Servo Motor. Servo Motor SG-90 A servo motor is a closed-loop system that uses position feedback to control its motion and final position.RC servo motor works on the same principal. It contains a small DC motor connected to the output shaft through the gears. A servo motor is controlled by sending a series of pulses through the signal line. The frequency of the control signal should be 50Hz or a pulse should occur every 20ms. The width of pulse determines angular position of the servo and these type of servos can usually rotate 180 degrees The control wire is used to communicate the angle. The angle is determined by the duration of a pulse that is applied to the control wire. This is called Pulse Coded Modulation. The servo expects to see a pulse every 20 milliseconds (.02 seconds). The length of the pulse will determine how far the motor turns. A 1.5 millisecond pulse, for example, will make the motor turn to the 90-degree position (often called as the neutral position). If the pulse is shorter than 1.5 milliseconds, then the motor will turn the shaft closer to 0 degrees. If the pulse is longer than 1.5 milliseconds, the shaft turns closer to 180 degrees. Black wire of servo motor to the GND pin of NodeMCU Red wire of servo motor to the 5V pin of NodeMCU Yellow wire of servo motor to the Gpio 4 of NodeMCU Installing the ESP8266_Arduino_Library The ESP32 Arduino Servo Library makes it easier to control a servo motor with your ESP8266, using the Arduino IDE. Follow the next steps to install the library in your Arduino IDE: Download the ESP32_Arduino_Servo_Library. You should have a .zip folder in your Downloads folder, Unzip the .zip folder and you should get ESP32-Arduino-Servo-Library. Download the Cayenne-MQTT-ESP-master library from this link. Click on Add ZIP Library and add Cayenne-MQTT-ESP-master zip file, or directly copy the folder (Cayenne-MQTT-ESP-master) and paste it in Libraries folder of Arduino IDE. After installing the library, go to your Arduino IDE. Make sure you have the Nodemcu 1.0 ESP-12E board selected, and then, Copy and Paste code in Arduino IDE. Circuit Diagram Arduino code #include #include #include char ssid[] = "TP-Link_3200"; // YOUR SSID char password[]="9500112137"; // YOUR PASSWORD char username[] = "2031dd30-5414-11eb-b767-3f1a8f1211ba"; //yours char mqtt_password[] = "f2ce829d98df3a768328ac6936eae9fd47d28289"; // yours char client_id[] = "86da2870-54b5-11eb-883c-638d8ce4c23d"; //yours Servo myservo; void setup() { myservo.attach(D2); Cayenne.begin(username,mqtt_password,client_id,ssid,password); } void loop() { Cayenne.loop(); } CAYENNE_IN(1) { myservo.write(getValue.asInt()); } Hardware interfacing with Cayenne IoT platform refer detail: https://www.dofbot.com/post/cayenne-iot-based-weather-monitor Click on Add new and then Device/Widget in Settings, Add New Device here and select Slider for Controlling Servo 0 to 180 angle by step 1 angle to desired step value. Configure device Generic ESP8266, MQTT username, password and client ID from Create App Paste these respective details under username, password and client ID in Arduino source code , along with your Wi-Fi name and password. After successfully compiling and uploading the code to NodeMCU, You will see ESP8266 connected to Wi-Fi. After the connection is established, the previous page is automatically updated on Cayenne. A new dashboard opens in the browser. Cayenne generates an ID and a device icon for your device. Click on Custom Widgets and then value, and populate all fields . The channel number should be 1. (Make sure the channel number is same as in code.) Now, click on Add Widget.

  • IoT Based DHT 11 Weather Monitor using MQTT

    Here to learn how to build an IoT system using ESP8266, myDevices Cayenne, and MQTT. In more detail, this IoT tutorial discovers how to use an ESP8266 to send data to Cayenne using the MQTT protocol. Moreover, this ESP8266 MQTT project investigates how to use MQTT to control remote peripheral devices using a web interface. This is a complete step-by-step tutorial on building an IoT system using Cayenne and ESP. On the other hand, Cayenne is an IoT cloud platform that provides several cloud services, such as: Data visualization IoT cloud Alerts Scheduling Events We will focus our attention on data visualization and on the IoT cloud services. Cayenne Cayenne IoT Platform accelerates the development of IoT-based solutions, including quick design, prototyping and other commercialized projects. It is a drag-and-drop IoT project builder that can help developers build complete, ready-to-use IoT solutions with little to no coding. Cayenne IoT Platform contains a vast catalogue of certified IoT-ready devices and connectivity options. This allows users to easily add any device to the library utilizing MQTT API. All devices in Cayenne are interoperable and benefit from features such as rules engine, asset tracking, remote monitoring and control, and tools to visualize real-time and historical data. MQTT is a lightweight messaging protocol for sensors and mobile devices. NodeMCU NodeMCU ESP8266-12E MCU is a development board with one analogue and many general-purpose input output (GPIO) pins. It has 4MB flash memory, and can operate at a default clock frequency of 80MHz. In this project, digital pin D1 of NodeMCU is used to read Data of Dht11 temperature sensor. DHT 11/22/AM2302 Connecting DHT11/DHT22/AM2302 sensor to ESP8266 NodeMCU is fairly simple. Connect VCC pin on the sensor to the 3.3V pin on the NodeMCU and ground to ground. Also connect Data pin on the sensor to D1 pin of the ESP8266 NodeMCU. Installing DHT Sensor Library https://www.dofbot.com/post/esp8266-server-dht-weather-station Circuit Diagram NodeMCU programming with Arduino IDE You need Arduino IDE software to program NodeMCU. Steps for adding NodeMCU ESP8266 board and library to Arduino IDE are given below. Open Arduino IDE. Go to File menu and select Preferences. Copy this package and paste in Additional Boards Manager URL. Go to Tools and select Boards Manager. Type esp8266 in search box and press Enter. Install the latest version. From Tools menu, select NodeMCU 1.0 (ESP-12E module) board. Select Include Library from Sketch menu. Download the library from this link. Click on Add ZIP Library and add Cayenne-MQTT-ESP-master zip file, or directly copy the folder (Cayenne-MQTT-ESP-master) and paste it in Libraries folder of Arduino IDE. Arduino Code #define CAYENNE_PRINT Serial // Comment this out to disable prints and save space #define DHTPIN 5 // D1 // Uncomment whatever type you're using! In this project we used DHT11 #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321 //#define DHTTYPE DHT21 // DHT 21, AM2301 #include #include //Make a wifi name and password as access point char ssid[] = "SSID"; // your SSID char wifiPassword[] = "PASSWORD"; // YOUR WIFI PASSWORD // Cayenne authentication info. This should be obtained from the Cayenne Dashboard. char username[] = "2031dd30-5414-11eb-b767-3f1a8f1211ba"; // YOURS char password[] = "f2ce829d98df3a768328ac6936eae9fd47d28289"; // YOURS char clientID[] = "138092f0-54b1-11eb-a2e4-b32ea624e442";// YOURS DHT dht(DHTPIN, DHTTYPE); //Variables for DHT11 values float h; float t; bool humidity = false; bool Temperature = false; void setup() { Serial.begin(9600); Serial.print("Setup"); Cayenne.begin(username, password, clientID, ssid, wifiPassword); humidity = false; Temperature = false; } void loop() { //Run Cayenne Functions Cayenne.loop(); } CAYENNE_OUT(V0){ //Serial.println("humidity"); //Check if read failed and try until success do { //Read humidity (percent) h = dht.readHumidity(); delay(1000); } while (isnan(h)); Serial.print("humidity: "); Serial.println(h); //Set Humidity to true so we know when to sleep humidity = true; //Write to Cayenne Dashboard` Cayenne.virtualWrite(V0, h); } CAYENNE_OUT(V1){ //Serial.println("temperature"); //Check if read failed and try until success do { //Read temperature as Celsius t = dht.readTemperature(); delay(1000); } while (isnan(t)); Serial.print("temperature: "); Serial.println(t); //Set Temperature to true so we know when to sleep //Temperature = true; //Write to Cayenne Dashboard Cayenne.virtualWrite(V1, t); } Hardware interfacing with Cayenne IoT platform To interface the circuit with the IoT platform, open this link on any browser. Click on Sign Up. Fill all the fields and click on Get Started Click on Add new and then Device/Widget in Settings, Add New Device here and select Generic ESP8266 for in this project. Configure device Generic ESP8266, MQTT username, password and client ID from Create App Paste these respective details under username, password and client ID in Arduino source code , along with your Wi-Fi name and password. After successfully compiling and uploading the code to NodeMCU, You will see ESP8266 connected to Wi-Fi. After the connection is established, the previous page is automatically updated on Cayenne. A new dashboard opens in the browser. Cayenne generates an ID and a device icon for your device. Click on Custom Widgets and then value, and populate all fields . The channel number should be 1. (Make sure the channel number is same as in code.) Now, click on Add Widget. When a connection is made, sensor data gets uploaded to Cayenne. Temperature and Humidity data on Cayenne. You can get a graphical representation of temperature and Humidity data by clicking on the Graph icon.

  • IoT Rangefinder

    Here to learn how to find distance and Plot the Sensor readings to Webserver in Real-Time Chart using the ESP8266 and ultrasonic sensor. The ESP8266 will host a web page with real-time graph that have new readings added every 1.5 seconds and to keep refreshing the page to read new readings. Circuit Diagram Components Required To make this project you need the following components: ESP8266 Development Board HC-SR04 Ultrasonic sensor Breadboard Jumper wires Ultrasonic HC-SR04 wiring to ESP8266 Ultrasonic HC-SR04 ESP8266 Vcc Pin Vin Pin Trig Pin D1 (GPIO 5) Echo Pin D2 (GPIO 4) GND Pin GND Install ESP8266 Board in Arduino IDE First of All, we’ll program ESP8266 using Arduino IDE. Filesystem Uploader Plugin Secondly, we are uploading an HTML file to ESP8266 flash memory. Hence, we’ll need a plugin for Arduino IDE called Filesystem uploader. Follow this -https://www.dofbot.com/post/esp8266-spiffs-uploader tutorial to install a filesystem uploader for ESP8266. Install FileSystem Uploader Plugin in Arduino IDE Installing Libraries Thirdly, to run the asynchronous web server, you need to install the following libraries. ESP8266 Board: you need to Download and install the ESPAsyncWebServer and the ESPAsyncTCP libraries. These libraries aren’t available on the Arduino Library Manager, so you need to download and copy the library files to the Arduino Installation folder. To get readings from the Ultrasonic HC-SR04 sensor module you need to have the next library installed: Download Ultrasonic Library Finally, to build the web server we need two different files. One is The Arduino sketch and the other is an HTML file. So, the HTML file should be saved inside a folder called data. It resides inside the Arduino sketch folder, as shown below: Creating the HTML File Create an index.html file with the following content. IOT RangeFinder The index.html file will contain web pages that will be displayed by the server along with JavaScript that will process the formation of graphics. While all server programs and sensor readings are in the .ino file. The code explains that a new Highcharts object was formed to be rendered to the tag with the chart-distance id in the HTML code. Then, the X-axis is defined as the time of reading the data, and the Y-axis is the value of the reading which is the distance in centimeters (cm). Then, the set Interval function will send data from the server every 1.5 seconds by accessing the “/ distance”endpoint provided by the server and sending the data to the chart object earlier. arduino code: #include #include #include #include #include #include // Instantiate trig and echo pins for ultrasonic sensors Ultrasonic ultrasonic (D1, D2); // Replace with your network credentials const char* ssid = "TP-Link_3200"; // your SSID const char* password = "9500112137"; // Your Wifi password // Create AsyncWebServer object on port 80 AsyncWebServer server(80); String getDistance() { // Read Distance float d = ultrasonic.read(); if (isnan(d)) { Serial.println("Failed to read from HC-SR04 sensor!"); return ""; } else { Serial.println(d); return String(d); } } void setup () { // Serial port for debugging purposes Serial.begin (115200); lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); // Initialize SPIFFS if (! SPIFFS.begin ()) { Serial.println ("An Error has occurred while mounting SPIFFS"); return; } // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); } // Print ESP32 Local IP Address Serial.println(WiFi.localIP()); // Route for web page server.on ("/", HTTP_GET, [] (AsyncWebServerRequest * request) { request-> send (SPIFFS, "/index.html"); }); server.on ("/distance", HTTP_GET, [] (AsyncWebServerRequest * request) { request-> send_P (200, "text / plain", getDistance(). c_str ()); }); // start server server.begin (); } void loop() { } Then, upload the code to your NodeMCU board. Make sure you have selected the right board and COM port. Also, make sure you’ve inserted your WiFi Credentials in the code. After a successful upload, open the Serial Monitor at a baud rate of 115200. Press the “EN/RST” button on the ESP8266 board. Now it should print its IP address. Result Open web browser and type the ESP8266 local IP address. Now you should see the Rangefinder plot meter.

  • ESP8266 SPIFFS Uploader

    NodeMCU ESP8266 contains a Serial Peripheral Interface Flash File System (SPIFFS). Here to shows how to easily upload files to the ESP8266 filesystem using a plugin for Arduino IDE. SPIFFS lets you access the flash chip memory like you would do in a normal filesystem in your computer, but simpler and more limited. You can read, write, close, and delete files. SPIFFS doesn’t support directories, so everything is saved on a flat structure. Using SPIFFS with the ESP8266 board is specially useful to: Create configuration files with settings; Save data permanently; Create files to save small amounts of data instead of using a microSD card; Save HTML and CSS files to build a web server; Save images, figures and icons; And much more. In most of our web server projects, we’ve written the HTML code for the web server as a String directly on the Arduino sketch. With SPIFFS, you can write the HTML and CSS in separated files and save them on the ESP8266 filesystem. Installing the ESP8266FS-0.4.0.zip ESP8266FS is a plugin for the Arduino IDE that allows you to upload files directly to the ESP8266 filesystem from a folder in your computer. Download Plugin here https://github.com/esp8266/arduino-esp8266fs-plugin/releases Go to the Arduino IDE directory, and open the Tools folder Unzip the downloaded .zip folder to the Tools folder. You should have a similar folder structure: Next, restart your Arduino IDE. To check if the plugin was successfully installed, open your Arduino IDE and select your ESP8266 board. In the Tools menu check that you have the option “ESP8266 Sketch Data Upload“. Then, open the sketch folder. You can go to Sketch > Show Sketch Folder. The folder where your sketch is saved should open. Inside the data folder is where you should put the files you want to be saved into the ESP8266 filesystem. As an example, create a .txt file with some text called test_spiff. Inside text file, the following text for serial Monitor print. It should be print the content of your .txt file on the Serial Monitor. arduino Code In the Arduino IDE, in the Tools menu, select the desired SPIFFS size (this will depend on the size of your files) Then, to upload the files, in the Arduino IDE, you just need to go to Tools > ESP8266 Sketch Data Upload You should get a similar message on the debugging window. The files were successfully uploaded to the ESP8266 filesystem. After uploading, open the Serial Monitor at a baud rate of 115200. Press the ESP8266 “RST” button. It should print the content of your .txt file on the Serial Monitor.

  • NodeMCU ESP8266 Web Server Control LED Brightness (PWM)

    Here to build an ESP8266 NodeMCU web server with a slider to control the LED brightness. You’ll learn how to add a slider to your web server projects, get its value and save it in a variable that the ESP8266 can use. We’ll use that value to control the duty cycle of a PWM signal and change the brightness of an LED. The ESP8266 hosts a web server that displays a web page with a slider; When you move the slider, you make an HTTP request to the ESP8266 with the new slider value; SLIDERVALUE is a number between 0 and 1023. You can modify your slider to include any other range; From the HTTP request, the ESP8266 gets the current value of the slider; The ESP8266 adjusts the PWM duty cycle accordingly to the slider value; This can be useful to control the brightness of an LED (as we’ll do in this example), a servo motor, setting up a threshold value or other applications. LED Connection with Node MCU. GND -> ESP8266 GND pin; Signal -> GPIO 5 (or any PWM pin). Arduino IDE We’ll program the ESP8266 NodeMCU board using Arduino IDE, so before proceeding with this tutorial, make sure you have the ESP8266 board installed in your Arduino IDE. Async Web Server Libraries We’ll build the web server using the following libraries: https://github.com/me-no-dev/ESPAsyncWebServer https://github.com/me-no-dev/ESPAsyncTCP These libraries aren’t available to install through the Arduino Library Manager, so you need to copy the library files to the Arduino Installation Libraries folder. Alternatively, in your Arduino IDE, you can go to Sketch > Include Library > Add .zip Library and select the libraries you’ve just downloaded. Code The following code controls the brightness of the ESP8266 built-in LED using a slider on a web server. In other words, you can change the PWM duty cycle with a slider. This can be useful to control the LED brightness or control a servo motor, for example. Copy the code to your Arduino IDE. Insert your network credentials and the code will work straight way. #include #include #include // Replace with your network credentials //WiFi Connection configuration const char *ssid = "SSID"; // your SSID const char *password = "PW"; // YOUR wifi PASSWORD const int output = 5; String sliderValue = "0"; const char* PARAM_INPUT = "value"; // Create AsyncWebServer object on port 80 AsyncWebServer server(80); const char index_html[] PROGMEM = R"rawliteral( ESP8266 Web PWM Control Server %SLIDERVALUE% )rawliteral"; // Replaces placeholder with button section in your web page String processor(const String& var){ //Serial.println(var); if (var == "SLIDERVALUE"){ return sliderValue; } return String(); } void setup(){ // Serial port for debugging purposes Serial.begin(115200); analogWrite(output, sliderValue.toInt()); // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); } // Print ESP Local IP Address Serial.println(WiFi.localIP()); // Route for root / web page server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); // Send a GET request to /slider?value= server.on("/slider", HTTP_GET, [] (AsyncWebServerRequest *request) { String inputMessage; // GET input1 value on /slider?value= if (request->hasParam(PARAM_INPUT)) { inputMessage = request->getParam(PARAM_INPUT)->value(); sliderValue = inputMessage; analogWrite(output, sliderValue.toInt()); } else { inputMessage = "No message sent"; } Serial.println(inputMessage); request->send(200, "text/plain", "OK"); }); // Start server server.begin(); } void loop() { } Upload the Code Now, upload the code to your ESP8266. Make sure you have the right board and COM port selected. After uploading, open the Serial Monitor at a baud rate of 115200. Press the ESP8266 reset button. The ESP8266 IP address should be printed in the serial monitor.

  • NodeMCU Wifi Controlled Servo

    In this tutorial NodeMCU, How to control Servo motor remotely in a WIFI network using a local web page connected in the same network. Refer Previous Post for Controlling servo using Web slider. https://www.dofbot.com/post/nodemcu-web-server-controlled-servo-motor After that, connect the servo motor with the Arduino. Make the connections of the servo motor with the Arduino as follows: Black wire of servo motor to the GND pin of NodeMCU Red wire of servo motor to the 5V pin of NodeMCU Yellow wire of servo motor to the Gpio 5 of NodeMCU Installing the ESP8266_Arduino_Servo_Library The ESP32 Arduino Servo Library makes it easier to control a servo motor with your ESP8266, using the Arduino IDE. Follow the next steps to install the library in your Arduino IDE: Download the ESP32_Arduino_Servo_Library. You should have a .zip folder in your Downloads folder, Unzip the .zip folder and you should get ESP32-Arduino-Servo-Library. After installing the library, go to your Arduino IDE. Make sure you have the Nodemcu 1.0 ESP-12E board selected, and then, Copy and Paste code in Arduino IDE. #include #include Servo servo; const char* ssid = "SSID"; //YOUR SSID const char* password = "PW"; //YOUR WIFI PSSWORD WiFiServer server(80); void setup() { Serial.begin(115200); delay(10); servo.attach(5); //D1 of nodemcu with pwm pin of servo motor // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); // Print the IP address on serial monitor Serial.print("Use this URL to connect: "); Serial.print("http://"); //URL IP to be typed in mobile/desktop browser Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()){ delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); int value = 0; // Match the request if (request.indexOf("/Req=0") != -1) { servo.write(0); //Moving servo to 0 degree value=0; } if (request.indexOf("/Req=90") != -1) { servo.write(90); //Moving servo to 90 degree value=90; } if (request.indexOf("/Req=180") != -1) { servo.write(180); //Moving servo to 180 degree value=180; } Serial.print("Servo Angle:"); Serial.println(value); // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // client.println(""); client.println(""); client.println("Node MCU ESP8266 Wifi Controlled Servo Motor"); client.print("Servo Current angle = "); client.print(value); client.println(""); client.println("Servo angle Set to = 0 degree"); client.println("Servo angle Set to= 90 degree"); client.println("Servo angle Set to= 180 degree"); client.println(""); delay(15); Serial.println("Client disonnected"); Serial.println(""); } Upload the Code Now, upload the code to your ESP8266. Make sure you have the right board and COM port selected. After uploading, open the Serial Monitor at a baud rate of 115200. Press the ESP8266 reset button. The ESP8266 IP address should be printed in the serial monitor.

  • AUTOCAD 2D TUTORIAL

    AutoCAD® is computer-aided design (CAD) software that architects, engineers and construction professionals rely on to create precise 2D and 3D drawings. Draft, annotate and design 2D geometry and 3D models with solids, surfaces and mesh objects Automate tasks such as comparing drawings, adding blocks, creating schedules and more Customize with add-on apps and APIs Features: AutoCAD® 2021 software includes industry-specific toolsets; improved workflows across desktop, web and mobile; and new features such as drawing history. Work faster with specialized toolsets AutoCAD includes industry-specific features and intelligent objects for architecture, mechanical engineering, electrical design and more. Automate floor plans, sections and elevations Draw piping, ducting and circuiting quickly with parts libraries Auto-generate annotations, layers, schedules, lists and tables Use a rules-driven workflow to accurately enforce industry standards Watch Video Here to learn Some Important Autocad Commands for job interviews. Commands Explained here are text, Mtxt, dimension, leaders, hatch, attributes,attdef, ddattxt, block attribute, data extraction, xref, attach, reload, detach, inload, bind, overlay, underlay, frame, clip, distance, angle, area, radius, purge, ltscale, xplode, scale, pedit, model space, paper space, zoom, scale and Border templates 2D drafting, drawing and annotation What's 2D drafting and drawing? Why 2D CAD software? 2D drafting and drawing is the process of creating and editing technical drawings, as well as annotating designs. Drafters use computer-aided design (CAD) software to develop floor plans, building permit drawings, building inspection plans and landscaping layouts. CAD software for 2D drafting can be used to draft designs more quickly and with greater precision, without using stencils and technical drawing instruments. 2D CAD software also allows users to document and annotate drawings with text, dimensions, leaders and tables. Collaboration Importing PDF Files: You can import the geometry, fills, raster images, and TrueType text from a PDF file into the current drawing. The visual fidelity along with some properties such as PDF scale, layers, line weights, and colors can be preserved. PDF files are a common way of publishing and sharing design data for review and markup. AutoCAD supports creating PDF files as a publishing output for AutoCAD drawings, and importing PDF data into AutoCAD using either of two options: PDF files can be attached to drawings as underlays, which can be used as a reference when collaborating on projects. PDF data can be imported as objects, in part or entirely, which can be used a reference and also modified. If you import PDF data, you can choose to specify a page from a PDF file or you can convert all or part of an attached PDF underlay into AutoCAD objects. How Objects are Translated When a PDF file is generated, all supported objects are translated into paths, fills, raster images, markups, and TrueType text. In PDF, paths are composed of line segments and cubic Bézier curves, either connected or independent. However, when a PDF file is imported into AutoCAD-based products, note the following: curves are converted into circles and arcs if they are within a reasonable tolerance to those shapes. Otherwise, they are converted into 2D polylines. Elliptical shapes can be converted into 2D polylines, splines, or ellipses depending on how they were stored in the PDF. As an option, each set of approximately collinear segments can be combined into a polyline with a dashed line type named PDF_Import. Compound objects such as dimensions, leaders, patterned hatches, and tables result in many separate objects as if these objects were exploded. Solid-filled areas are imported as 2D solids, or optionally as solid-filled hatches. They are assigned a 50% transparency to make sure that any text within the areas is visible. Text that used TrueType fonts is preserved, but text that originally used SHX fonts is imported as separate geometric objects. Raster images generate PNG format files that are attached to the drawing file as external references. These image files are saved in a folder specified by the PDFIMPORTIMAGEPATH system variable, which can also be specified in the Options dialog box, Files tab. Point objects are converted to zero-length polylines. Markups are not imported. Text Created with SHX Fonts After you import a PDF, you can use the PDFSHXTEXT command to convert the geometric representation of any SHX text into multiline text objects. The conversion process compares the selected geometry successively against the selected SHX fonts listed in the dialog box. When the geometry and an SHX font are a close enough match to pass the recognition threshold that you specify, the geometry is converted into multiline text objects. Note: Asian-language big fonts are not supported. You can then use the TXT2MTXT command to combine the multiline text objects that you select into a single multiline text object. Limitations When an AutoCAD DWG file is exported as a PDF file, both information and precision are unavoidably lost. It is important to be aware of the degree of visual fidelity that can be reasonably expected. The data in DWG files are stored as double-precision floating-point numbers, while the data in PDF files are only single precision. This reduction rounds off coordinate values, and the loss of precision is most noticeable in the following cases: Computed locations such as tangent points, the endpoints of arcs, and the endpoints of rotated lines Data with a large dynamic range from the largest to the smallest values Large coordinates in PDF files such as those found in maps PDF files that were generated with a low dpi (dots per inch) setting Note: The highest precision setting in a PDF exported from AutoCAD is 4800 dpi. Protecting a Design Design concepts often need to be shared with a wider collaborative team. However, the organization or professionals that originate the design can be concerned that the design files might be used or copied in an unauthorized way. Legal liability might also be a concern. When you work with someone else's PDFs, it's possible that the originator created the PDFs to communicate the design's visual aspects but with intentionally reduced precision or data portability. Here's what you might encounter: PDFs with the dpi deliberately set low to provide only a visual representation of the design at low precision. PDFs containing only a raster scan of a design. AutoCAD can import the raster image from a PDF, but it doesn't support raster-to-vector conversion. Converting raster images to vector data with specialized software cannot provide the same level of precision as objects created directly with AutoCAD. If you receive low dpi PDFs or PDFs containing only a raster image, you might want to consider the alternative of relying on a legal agreement with the originator that specifies terms of use and liability. https://www.autodesk.in/products/autocad/features?plc=ACDIST&term=1-YEAR&support=ADVANCED&quantity=1 Download Autocad: https://www.autodesk.in/products/autocad/free-trial?plc=ACDIST&term=1-YEAR&support=ADVANCED&quantity=1

  • Android Game using Parabolic Trajectory

    Projectile motion is a form of motion where an object moves in a bilaterally symmetrical, parabolic path. The path that the object follows is called its trajectory. Projectile motion only occurs when there is one force applied at the beginning on the trajectory, after which the only interference is from gravity. What are the Key Components of Projectile Motion? The key components that we need to remember in order to solve projectile motion problems are: Initial launch angle, θ Initial velocity, u Time of flight, T Acceleration, a Horizontal velocity, Vx Vertical velocity, Vy Displacement, d Maximum height, H Range, R Parabolic Trajectory We can use the displacement equations in the x and y direction to obtain an equation for the parabolic form of a projectile motion: Let in time t, horizontal distance travelled by object is x and vertical distance travelled is y.For horizontal motion: Since the velocity of object in horizontal direction is constant hence horizontal acceleration ax​ will also be zero. The position of object in horizontal direction at any time t is given by: x=x0​+ux​t+1/2ax​t2 where, x0​=0 (distance covered at t=0)  ax​=0 ux​=ucosθ Hence, x=0+ucosθt+1/2(0)t2=ucosθ t=x/(ucosθ) ..................eq(1) For vertical motion: Since, the velocity of object in vertical direction is decreasing due to gravity. Hence, vertical acceleration: ay​=−g The position of object in vertical direction at any time t is given by: y=y0​+uy​t+1/2ay​t2 where, y0​=0 (distance covered at t=0) ay​=−g uy​=usinθ Hence, y=0+usinθt+1/2(−g)t2 y=usinθt−1/2gt2 .........eq(2) This is the expression to calculate the height Y as a function of the distance X. g = 9.8 m / s The angle in degrees. We put the speed in km / h using the Slider, but then we divide it by 3.6 to pass it at m / s. If y <= 0, it is on the ground. For the Clock. The Ball moves in the X and Y coordinates. In addition, a trajectory line is drawn. - Notice that the Y ordinate evolves from top to bottom, that's why I have put [200 - Y] to draw its points. Try other values ​​with the dimensions of your mobile USING THE SLIDER. Creating the Android Application for the Parabolic equation is given below: Screen 1. Screen 1. Download app: https://drive.google.com/file/d/1miEvbpfcJEUb7KClsKyg8inaRYLdCvBP/view?usp=sharing Main page Math block for the equation ======================================================================= Creating the Android Application for the Parabolic SHOT GAME is given below: Scree1: Scree1: Main Page: Math block for the equation: Demo: Download app: https://drive.google.com/file/d/1XOrTwHwcMkoxmrYM-a460IzVYQhFW2eP/view?usp=sharing

  • Series RLC Circuit Analysis using Android application

    Series RLC circuits consist of a resistance, a capacitance and an inductance connected in series across an alternating supply. Calculate Inductive Reactance, XL.,Capacitive Reactance, XC, Circuit Impedance, Z, phase angle α. and the resonance frequency, fr in a RLC circuit. In a series RLC circuit there becomes a frequency point were the inductive reactance of the inductor becomes equal in value to the capacitive reactance of the capacitor. In other words, XL = XC. The point at which this occurs is called the Resonant Frequency point, ( ƒr ) of the circuit, and as we are analysing a series RLC circuit this resonance frequency produces a Series Resonance. Series Resonance circuits are one of the most important circuits used electrical and electronic circuits. They can be found in various forms such as in AC mains filters, noise filters and also in radio and television tuning circuits producing a very selective tuning circuit for the receiving of the different frequency channels. Consider the simple series RLC circuit below. formula: Inductive reactance, XL Capacitive reactance, XC Circuit Impedance, Z. The phase angle α The resonant frequency, ƒr Creating android Application: In design of android application, the output to be saved in label, refer below block for creating calculated output for above formula as applied.. The Input value to be varied by using slider control and default thump position also marked in the properties. Screen Example 1: Screen Example 2: Screen Example 3: Screen Example 4: Screen Example 5: Main Page First Iniatialize the Components and adding the slider for adjusting the value, refer below blocks. The below blocks for the calculation for Inductive Reactance, XL.,Capacitive Reactance, XC, Circuit Impedance, Z, phase angle α. and the resonance frequency, fr. Demo: Download App: https://drive.google.com/file/d/1kQcXisk9REOry9TOSjAYkRKBALlu1qKd/view?usp=sharing

bottom of page