Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
BeagleBone Home Automation Blueprints
BeagleBone Home Automation Blueprints

BeagleBone Home Automation Blueprints: Automate and control your home using the power of the BeagleBone Black with practical home automation projects

Arrow left icon
Profile Icon Rodolfo Giometti
Arrow right icon
Can$61.99
Paperback Feb 2016 378 pages 1st Edition
eBook
Can$12.99 Can$49.99
Paperback
Can$61.99
Subscription
Free Trial
Arrow left icon
Profile Icon Rodolfo Giometti
Arrow right icon
Can$61.99
Paperback Feb 2016 378 pages 1st Edition
eBook
Can$12.99 Can$49.99
Paperback
Can$61.99
Subscription
Free Trial
eBook
Can$12.99 Can$49.99
Paperback
Can$61.99
Subscription
Free Trial

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

BeagleBone Home Automation Blueprints

Chapter 1. Dangerous Gas Sensors

In this chapter, we will learn how to use the BeagleBone Black to monitor some dangerous gases in a room, such as CO, methane, LPG, and so on, and then enabling an acoustic and visive alarm in case of danger. Also, by using a GSM module, the user will be able to send an SMS message to a predefined phone number to alert, for instance, a relative.

Also, the user will be able to control, log, and display the measured concentrations from the system console/terminal by using a command-line interface (this to keep the code simple).

We'll see how to build the circuitry to manage the sensors and how to get the gas concentration from them. Then, we'll take a look at how to manage a GSM module in order to send SMS messages.

The basic of functioning

In this project, our BeagleBone Black will periodically read the environmental data from the sensors, comparing them with user selectable ranges, and then generate an alarm in case one (or more) data read is out of that range.

The sensors will be connected to the BeagleBone Black ADCs with a dedicated circuitry, while the alarms will be enabled with dedicated GPIO lines. Then a GSM module will be connected to our BeagleBone Black's serial port in order to send other alarm messages via SMS.

Setting up the hardware

As just stated, all devices are connected with the BeagleBone Black, which is the real core of the system, as shown in the following screenshot:

Setting up the hardware

The data flow is from the sensors to the alarm actuators (LED, buzzer, and GSM module) and the user will be able to send commands to the system, or check the system status and the collected data, by using the system console.

Connecting the gas sensors

The gas sensors are used to monitor the environment and we can choose different kinds of such devices. I decided to use the ones shown in the following screenshot due to the fact they act as a variable resistor according to the gas concentration, so they can be easily read with a normal ADC:

Connecting the gas sensors

In the prototype presented here, the gas sensors are actually four, but the ones named MQ-2 (smoke detector), MQ-4 (methane detector), and MQ-7 (LPG detector) look very similar to each other (except the label on each sensor), so I reported only one of them in the preceding screenshot, while the carbon monoxide detector is the red device labeled with MQ-7.

Looking carefully at the datasheet of the gas sensors, we can see exactly how these sensors' class varies their internal resistance according to the gas concentration (in reality, it depends on environment humidity and temperature too; but for an indoor functioning, we can consider these values as constants). So, if we put it in series with a resistor and apply a constant voltage). We can get an output voltage that is proportional to the actual gas concentration.

The following diagram shows a possible schematics where the gas sensor is connected to 5V power supply and the RL resistor is formed by two resistors (R1 & R2) due to the fact we cannot put more than 1.8V at a BeagleBone Black's ADC pin. So, by choosing these two resistors in such a way that R1 ≥ 2*R2, we can be sure we have no more than 5.0V/3 ≈ 1.67V at the ADC input pin on every possible functioning condition, even if the sensor's internal resistance is shorted. However, to be completely sure we can add a Zener diode (Z) with a reverse threshold on 1.8V (but I didn't use it on my prototype).

The following diagram shows the circuitry I used to connect each sensor:

Connecting the gas sensors

Tip

Note that the GAS sensors have six pins labeled in pairs as A, B, and H; while the A and B pair pins are shortened, the H labeled pairs must be connected at one end to the input voltage (5V in our case) and the other end to the GND (see the datasheet for further information).

Another important issue regarding these sensors is the calibration we should perform before using them. This last adjustment is very important; as reported in the MQ-2 datasheet, we read the following recommendation:

We recommend that you calibrate the detector for 1000 ppm liquefied petroleum gas (LPG), or 1000ppm iso-butane (i-C4H10) concentration in air and use value of load resistance that (RL) about 20K (5K to 47K).

This step can be done by replacing resistors R1 or R2 with a varistor and then fine tuning its resistance. However, I decided to use normal resistors (R1 = 15KΩ, R2 = 6.8KΩ in such a way that RL = R1 + R2 ≈ 20KΩ, as suggested by the datasheet) and then implemented a little translation in software (see the following section), that is, we can translate raw data from the ADCs into a ppm (part-per-million) value in such a way the user can work with physic data.

This translation can be done using a gain and an offset value in the following formula for each sensor:

  • ppm = raw * gain + offset

During the calibration procedure, we just need to use two known points (ppm1 and ppm2), read the corresponding raw data (raw1 and raw2), and then apply the following formulas:

  • gain = (ppm1 – ppm2) / (raw1 – raw2)
  • offset = ppm1 – raw1 * gain

Of course, we need four gain/offset couples, one per sensor (the calibration procedure is quite long!)

Once we have fixed the input circuits, we simply have to connect each Vout to the BeagleBone Black's ADC input pins. Our board has 8 ADCs inputs, so we can use the following connections:

Pin

Gas sensor

P9.39 - AIN0

Vout @MQ-2

P9.37 - AIN2

Vout @MQ-4

P9.35 - AIN6

Vout @MQ-5

P9.33 - AIN4

Vout @MQ-7

To enable them, we use the following command:

root@beaglebone:~# echo cape-bone-iio > /sys/devices/bone_capemgr.9/slots

If everything works well, we should get the following kernel messages:

part_number 'cape-bone-iio', version 'N/A'
slot #7: generic override
bone: Using override eeprom data at slot 7
slot #7: 'Override Board Name,00A0,Override Manuf,cape-bone-iio'
slot #7: Requesting part number/version based 'cape-bone-iio-00A0.dtbo
slot #7: Requesting firmware 'cape-bone-iio-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
slot #7: dtbo 'cape-bone-iio-00A0.dtbo' loaded; converting to live tree
slot #7: #1 overlays
helper.12: ready
slot #7: Applied #1 overlays.

Then, the files AIN0, AIN1, …, AIN7 should become available as follows:

root@beaglebone:~# find /sys -name '*AIN*'
/sys/devices/ocp.3/helper.12/AIN0
/sys/devices/ocp.3/helper.12/AIN1
/sys/devices/ocp.3/helper.12/AIN2
/sys/devices/ocp.3/helper.12/AIN3
/sys/devices/ocp.3/helper.12/AIN4
/sys/devices/ocp.3/helper.12/AIN5
/sys/devices/ocp.3/helper.12/AIN6
/sys/devices/ocp.3/helper.12/AIN7

Note

These settings can be done using the bin/load_firmware.sh script in the book's example code repository, as follows:

root@beaglebone:~# ./load_firmware.sh adc

Then, we can read the input data by using the cat command:

root@beaglebone:~# cat /sys/devices/ocp.3/helper.12/AIN0
1716

Tip

Note that the ADC can also be read by using other files still into the sysfs filesystem. The following command, for instance, reads from AIN0 input pin:

root@beaglebone:~# cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw

Connecting the alarm actuators

Now, we have to connect the alarm actuators in such a way the user can have a visual and acoustic feedback of any possible dangerous gas concentration. Also, we have to connect the GSM module to a serial port to communicate with it.

LED and buzzer

The LED and buzzer connections are very simple. The LEDs can be directly connected (with a resistor) with the BeagleBone Black's GPIO pins without problems, while the buzzer needs a little more work due to the fact that it needs a higher current than the LED to work. However, we can resolve the problem by using a transistor as shown in the following diagram to manage the buzzer with a higher current.

Tip

Note that the buzzer can't be a simple piezo without an internal oscillator, otherwise an external oscillator circuit or a PWM signal must be used!

LED and buzzer

In my circuitry, I used an R (470Ω) resistor for the LED (L), an R (2KΩ), Rd (4.7KΩ) resistors for the buzzer, and a BC546 transistor (T). Note that, regarding the LEDs, an R = 100Ω resistor can result in a higher brightness, so you may change it according to the LED color to have different results.

Note also that the resistor Rd in the buzzer circuitry is needed to pull-down the GPIO during the boot. In fact, during this stage it is set as input, and even in such configuration the current that flows out from the pin can turn on the buzzer!

The BeagleBone Black has a lot of GPIOs lines, so we can use the following connections:

Pin

Actuator

P8.9 - GPIO69

R @LED

P8.10 - GPIO68

R @Buzzer

Now, to test the connections, we can set up the GPIOs by exporting them and then setting these lines as outputs with the following commands:

root@beaglebone:~# echo 68 > /sys/class/gpio/export
root@beaglebone:~# echo out > /sys/class/gpio/gpio68/direction
root@beaglebone:~# echo 0 > /sys/class/gpio/gpio68/value     
root@beaglebone:~# echo 69 > /sys/class/gpio/export
root@beaglebone:~# echo out > /sys/class/gpio/gpio69/direction
root@beaglebone:~# echo 0 > /sys/class/gpio/gpio69/value

Note

Note that it will be a good idea to use blinking LEDs to do this job. However, for this first chapter I'm going to use normal GPIO lines, leaving this topic for the following chapters.

Now, to turn on and off both the LED and the buzzer, we simply write 1 or 0 into the proper files, as follows:

root@beaglebone:~# echo 1 > /sys/class/gpio/gpio68/value     
root@beaglebone:~# echo 0 > /sys/class/gpio/gpio68/value
root@beaglebone:~# echo 1 > /sys/class/gpio/gpio69/value
root@beaglebone:~# echo 0 > /sys/class/gpio/gpio69/value

Note

These settings can be done by using the bin/gpio_set.sh script in the book's example code repository, as follows:

root@beaglebone:~# ./gpio_set 68 out
root@beaglebone:~# ./gpio_set 69 out

GSM module

As stated in the introduction of this chapter, we wish to add a GSM module to be able to alert the user remotely too. In order to do this, we can connect this device with a normal serial port with TTL level signals. In this case, we have only to choose one of the serial ports available on our BeagleBone Black.

The following screenshot shows the GSM module I decided to use:

GSM module

Note

The device can be purchased at the following link (or by surfing the Internet):

http://www.cosino.io/product/serial-gsmgprs-module

The user manual con be retrieved at http://www.mikroe.com/downloads/get/1921/gsm_click_manual_v101c.pdf.

The BeagleBone Black has four available serial ports. By deciding to use the device /dev/ttyO1, we can use the following connections:

Pin

GSM module

P9.24 - TX-O1

RX

P9.26 - RX-O1

TX

P9.1 - GND

GND

P9.3 - 3.3V

3.3V

P9.5 - 3.3V

5V

To enable the serial port, we have to use the following command:

root@beaglebone:~# echo BB-UART1 > /sys/devices/bone_capemgr.9/slots

If everything works well, we should get the following kernel messages:

part_number 'BB-UART1', version 'N/A'
slot #8: generic override
bone: Using override eeprom data at slot 8
slot #8: 'Override Board Name,00A0,Override Manuf,BB-UART1'
slot #8: Requesting part number/version based 'BB-UART1-00A0.dtbo
slot #8: Requesting firmware 'BB-UART1-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
slot #8: dtbo 'BB-UART1-00A0.dtbo' loaded; converting to live tree
slot #8: #2 overlays
48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
slot #8: Applied #2 overlays.

The device file /dev/ttyO1 should now become available.

Note

These settings can be done by using the bin/load_firmware.sh script in the book's example code repository, as follows:

root@beaglebone:~# ./load_firmware.sh ttyO1

To verify that the new device is ready, we can use the ls command as follows:

root@beaglebone:~# ls -l /dev/ttyO1
crw-rw---T 1 root dialout 248, 1 Apr 23 22:25 /dev/ttyO1

Note

The reader can take a look at the book BeagleBone Essentials, Packt Publishing, which was written by the author of this book, in order to have more information regarding how to activate and use the GPIO lines and the serial ports available on the system.

Now, we can test whether we actually talk with the modem by using the screen command as follows:

root@beaglebone:~# screen /dev/ttyO1 115200

Note

The screen command can be installed by using the aptitude command as follows:

root@beaglebone:~# aptitude install screen

After pressing the ENTER key, you should get a blank terminal where, if you enter the ATZ string, you should get the string OK as answer, as shown in the following code:

ATZ
OK

It's the GSM module that answers that it's okay and fully functional. To quit from the screen command, you have to enter the CTRL + A + \ keys sequence and then answer yes by pressing the y key when the program asks you to Really quit and kill all your windows [y/n].

The final picture

Well, now we have to put it all together! The following image shows the prototype I made to implement this project and to test the software:

The final picture

Note that we need an external power supplier due to the fact that the external circuitry (and especially the GSM module) needs the 5V power supply.

Left arrow icon Right arrow icon

Key benefits

  • Build, set up, and develop your circuits via step-by-step tutorial of practical examples, from initial board setup to device driver management
  • Get access to several kinds of computer peripherals to monitor and control your domestic environment using this guide
  • This book is spread across 10 chapters all focused on one practical home automation project

Description

BeagleBone is a microboard PC that runs Linux. It can connect to the Internet and can run OSes such as Android and Ubuntu. BeagleBone is used for a variety of different purposes and projects, from simple projects such as building a thermostat to more advanced ones such as home security systems. Packed with real-world examples, this book will provide you with examples of how to connect several sensors and an actuator to the BeagleBone Black. You’ll learn how to give access to them, in order to realize simple-to-complex monitoring and controlling systems that will help you take control of the house. You will also find software examples of implementing web interfaces using the classical PHP/HTML pair with JavaScript, using complex APIs to interact with a Google Docs account, WhatsApp, or Facebook. This guide is an invaluable tutorial if you are planning to use a BeagleBone Black in a home automation project.

Who is this book for?

This book is for developers who know how to use BeagleBone and are just above the “beginner” level. If you want to learn to use embedded machine learning capabilities, you should have some experience of creating simple home automation projects.

What you will learn

  • Build a CO (and other gas) sensor with a buzzer/LED alarm to signal high concentrations
  • Log environment data and plot it in a fancy manner
  • Develop a simple web interface with a LAMP platform
  • Prepare complex web interfaces in JavaScript and get to know how to stream video data from a webcam
  • Use APIs to get access to a Google Docs account or a WhatsApp/Facebook account to manage a home automation system
  • Add custom device drivers to manage an LED with different blinking frequencies
  • Discover how to work with electronic components to build small circuits
  • Use an NFS, temperature sensor, relays, and other peripherals to monitor and control your surroundings
Estimated delivery fee Deliver to Canada

Economy delivery 10 - 13 business days

Can$24.95

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Feb 03, 2016
Length: 378 pages
Edition : 1st
Language : English
ISBN-13 : 9781783986026
Vendor :
BeagleBoard.org
Category :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to Canada

Economy delivery 10 - 13 business days

Can$24.95

Product Details

Publication date : Feb 03, 2016
Length: 378 pages
Edition : 1st
Language : English
ISBN-13 : 9781783986026
Vendor :
BeagleBoard.org
Category :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just Can$6 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just Can$6 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total Can$ 111.98
Building a Home Security System with Raspberry Pi
Can$49.99
BeagleBone Home Automation Blueprints
Can$61.99
Total Can$ 111.98 Stars icon
Banner background image

Table of Contents

12 Chapters
1. Dangerous Gas Sensors Chevron down icon Chevron up icon
2. Ultrasonic Parking Assistant Chevron down icon Chevron up icon
3. Aquarium Monitor Chevron down icon Chevron up icon
4. Google Docs Weather Station Chevron down icon Chevron up icon
5. WhatsApp Laundry Room Monitor Chevron down icon Chevron up icon
6. Baby Room Sentinel Chevron down icon Chevron up icon
7. Facebook Plant Monitor Chevron down icon Chevron up icon
8. Intrusion Detection System Chevron down icon Chevron up icon
9. Twitter Access Control System with Smart Card and RFID Chevron down icon Chevron up icon
10. A Lights Manager with a TV Remote Controller Chevron down icon Chevron up icon
11. A Wireless Home Controller with Z-Wave Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela